mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-03 20:48:07 +00:00
* Added one more endpoint to attach tempfile and get logo * Added one more endpoint to attach tempfile and get logo * spec fixes * Upload file for articles irrespective of the association * Upload file for articles irrespective of the association * Add multiple images with different keys * feat: Adds image attachment for help center articles * Adds validation for file upload * Fixes space above image after adding to doc * chore: Removed svg from file upload type * Update app/javascript/dashboard/components/widgets/WootWriter/FullEditor.vue Co-authored-by: Shivam Mishra <scm.mymail@gmail.com> * Update app/javascript/dashboard/components/widgets/WootWriter/FullEditor.vue Co-authored-by: Shivam Mishra <scm.mymail@gmail.com> * Removes caption for the image * Fixes woot prosemirror package version * Update yarn.lock * Update yarn.lock --------- Co-authored-by: Tejaswini Chile <tejaswini@chatwoot.com> Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com> Co-authored-by: iamsivin <iamsivin@gmail.com> Co-authored-by: Shivam Mishra <scm.mymail@gmail.com> Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
66 lines
1.6 KiB
JavaScript
66 lines
1.6 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}`);
|
|
}
|
|
|
|
uploadImage({ portalSlug, file }) {
|
|
let formData = new FormData();
|
|
formData.append('background_image', file);
|
|
return axios.post(
|
|
`${this.url}/${portalSlug}/articles/attach_file`,
|
|
formData,
|
|
{
|
|
headers: {
|
|
'Content-Type': 'multipart/form-data',
|
|
},
|
|
}
|
|
);
|
|
}
|
|
}
|
|
|
|
export default new ArticlesAPI();
|