Newer
Older
async function fetch_article(article_id) {
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))
})
}
async function fetch_article_by_title(article_title) {
const form_data = new FormData();
form_data.append("title", article_title);
return new Promise((resolve, reject) => {
fetch(`/article-by-title/`, {
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
body: new URLSearchParams(form_data),
}).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))
})
}
async function fetch_articles_by_category(category) {
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))
})
}
async function fetch_post_article(article_data) {
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();
const json = await res.json();
resolve(json);
}
})
.catch(err => reject(err))
})
}
async function fetch_update_article(article_data) {
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();
const json = await res.json();
resolve(json);
}
})
.catch(err => reject(err))
})
}
async function fetch_delete_article(article_id) {
return new Promise((resolve, reject) => {
fetch(`/delete-article/${article_id}`, {
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))
});
}
module.exports = {
fetch_article,
fetch_article_by_title,
fetch_articles_by_category,
fetch_post_article,
fetch_update_article,
fetch_delete_article,
}