51 lines
1.3 KiB
JavaScript
51 lines
1.3 KiB
JavaScript
/* global axios */
|
|
|
|
import PortalsAPI from './portals';
|
|
|
|
class ArticlesAPI extends PortalsAPI {
|
|
constructor() {
|
|
super('articles', { accountScoped: true });
|
|
}
|
|
|
|
getArticles({
|
|
pageNumber,
|
|
portalSlug,
|
|
locale,
|
|
status,
|
|
author_id,
|
|
category_slug,
|
|
}) {
|
|
let baseUrl = `${this.url}/${portalSlug}/articles?page=${pageNumber}&locale=${locale}`;
|
|
if (status !== undefined) baseUrl += `&status=${status}`;
|
|
if (author_id) baseUrl += `&author_id=${author_id}`;
|
|
if (category_slug) baseUrl += `&category_slug=${category_slug}`;
|
|
return axios.get(baseUrl);
|
|
}
|
|
|
|
getArticle({ id, portalSlug }) {
|
|
return axios.get(`${this.url}/${portalSlug}/articles/${id}`);
|
|
}
|
|
|
|
updateArticle({ portalSlug, articleId, articleObj }) {
|
|
return axios.patch(
|
|
`${this.url}/${portalSlug}/articles/${articleId}`,
|
|
articleObj
|
|
);
|
|
}
|
|
|
|
createArticle({ portalSlug, articleObj }) {
|
|
const { content, title, author_id, category_id } = articleObj;
|
|
return axios.post(`${this.url}/${portalSlug}/articles`, {
|
|
content,
|
|
title,
|
|
author_id,
|
|
category_id,
|
|
});
|
|
}
|
|
|
|
deleteArticle({ articleId, portalSlug }) {
|
|
return axios.delete(`${this.url}/${portalSlug}/articles/${articleId}`);
|
|
}
|
|
}
|
|
|
|
export default new ArticlesAPI();
|