Pour tout problème contactez-nous par mail : support@froggit.fr | La FAQ :grey_question: | Rejoignez-nous sur le Chat :speech_balloon:

Skip to content
Snippets Groups Projects
xhr.js 3.35 KiB
Newer Older
  • Learn to ignore specific revisions
  • Peter Rabbit's avatar
    Peter Rabbit committed
    function fetch_article(article_id) {
    
    Pierre Jarriges's avatar
    Pierre Jarriges committed
        return new Promise((resolve, reject) => {
            fetch(`/article/${article_id}`).then(async res => {
                if (res.status >= 400 && res.status < 600) {
                    const text = await res.text();
                    reject(text);
                } else {
                    resolve(await res.json());
                }
            }).catch(e => reject(e))
        })
    }
    
    
    Peter Rabbit's avatar
    Peter Rabbit committed
    function fetch_articles_by_category(category) {
    
    Pierre Jarriges's avatar
    Pierre Jarriges committed
        return new Promise((resolve, reject) => {
            fetch(`/articles/${category}`).then(async res => {
                if (res.status >= 400 && res.status < 600) {
                    const text = await res.text();
                    reject(text);
                } else {
                    resolve(await res.json());
                }
            }).catch(e => reject(e))
        })
    }
    
    
    Peter Rabbit's avatar
    Peter Rabbit committed
    function fetch_post_article(article_data) {
    
    Pierre Jarriges's avatar
    Pierre Jarriges committed
        return new Promise((resolve, reject) => {
            fetch("/post-article", {
                credentials: 'include',
                method: "POST",
                headers: {
                    "Content-Type": "application/json"
                },
                body: JSON.stringify(article_data),
            })
                .then(async res => {
                    if (res.status >= 400 && res.status < 600) {
    
                        const text = await res.text();
    
    Pierre Jarriges's avatar
    Pierre Jarriges committed
                        reject(text)
                    } else {
    
                        const json = await res.json();
                        resolve(json);
    
    Pierre Jarriges's avatar
    Pierre Jarriges committed
                    }
                })
                .catch(err => reject(err))
        })
    }
    
    
    Peter Rabbit's avatar
    Peter Rabbit committed
    function fetch_update_article(article_data) {
    
    Pierre Jarriges's avatar
    Pierre Jarriges committed
        return new Promise((resolve, reject) => {
            fetch(`/update-article/${article_data._id.$oid}`, {
                credentials: 'include',
                method: "PUT",
                headers: {
                    "Content-Type": "application/json"
                },
                body: JSON.stringify(article_data),
            })
                .then(async res => {
                    if (res.status >= 400 && res.status < 600) {
    
                        const text = await res.text();
    
    Pierre Jarriges's avatar
    Pierre Jarriges committed
                        reject(text)
                    } else {
    
                        const json = await res.json();
                        resolve(json);
    
    Pierre Jarriges's avatar
    Pierre Jarriges committed
                    }
                })
                .catch(err => reject(err))
        })
    }
    
    
    Peter Rabbit's avatar
    Peter Rabbit committed
    function fetch_delete_article(article_id) {
    
    Pierre Jarriges's avatar
    Pierre Jarriges committed
        return new Promise((resolve, reject) => {
    
            fetch(`/delete-article/${article_id}`, {
    
    Pierre Jarriges's avatar
    Pierre Jarriges committed
                credentials: 'include',
                method: "DELETE"
            })
                .then(async res => {
                    const text = await res.text();
                    if (res.status >= 400 && res.status < 600) {
                        reject(text)
                    } else {
                        resolve(text);
                    }
                })
                .catch(err => reject(err))
        });
    }
    
    
    Peter Rabbit's avatar
    Peter Rabbit committed
    function fetch_all_articles() {
    
        return new Promise((resolve, reject) => {
            fetch(`/articles`)
                .then(async res => {
                    if (res.status >= 400 && res.status < 600) {
                        const text = await res.text();
                        reject(text)
                    } else {
                        const json = await res.json();
                        resolve(json);
                    }
                })
                .catch(err => reject(err))
        });
    }
    
    
    Pierre Jarriges's avatar
    Pierre Jarriges committed
    
    module.exports = {
        fetch_article,
        fetch_articles_by_category,
        fetch_post_article,
        fetch_update_article,
        fetch_delete_article,
    
        fetch_all_articles,
    
    Pierre Jarriges's avatar
    Pierre Jarriges committed
    }