mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-11-04 13:07:55 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			78 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* global axios */
 | 
						|
 | 
						|
import PortalsAPI from './portals';
 | 
						|
import { getArticleSearchURL } from 'dashboard/helper/URLHelper.js';
 | 
						|
 | 
						|
class ArticlesAPI extends PortalsAPI {
 | 
						|
  constructor() {
 | 
						|
    super('articles', { accountScoped: true });
 | 
						|
  }
 | 
						|
 | 
						|
  getArticles({
 | 
						|
    pageNumber,
 | 
						|
    portalSlug,
 | 
						|
    locale,
 | 
						|
    status,
 | 
						|
    authorId,
 | 
						|
    categorySlug,
 | 
						|
    sort,
 | 
						|
  }) {
 | 
						|
    const url = getArticleSearchURL({
 | 
						|
      pageNumber,
 | 
						|
      portalSlug,
 | 
						|
      locale,
 | 
						|
      status,
 | 
						|
      authorId,
 | 
						|
      categorySlug,
 | 
						|
      sort,
 | 
						|
      host: this.url,
 | 
						|
    });
 | 
						|
 | 
						|
    return axios.get(url);
 | 
						|
  }
 | 
						|
 | 
						|
  searchArticles({ portalSlug, query }) {
 | 
						|
    const url = getArticleSearchURL({
 | 
						|
      portalSlug,
 | 
						|
      query,
 | 
						|
      host: this.url,
 | 
						|
    });
 | 
						|
    return axios.get(url);
 | 
						|
  }
 | 
						|
 | 
						|
  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, authorId, categoryId, locale } = articleObj;
 | 
						|
    return axios.post(`${this.url}/${portalSlug}/articles`, {
 | 
						|
      content,
 | 
						|
      title,
 | 
						|
      author_id: authorId,
 | 
						|
      category_id: categoryId,
 | 
						|
      locale,
 | 
						|
    });
 | 
						|
  }
 | 
						|
 | 
						|
  deleteArticle({ articleId, portalSlug }) {
 | 
						|
    return axios.delete(`${this.url}/${portalSlug}/articles/${articleId}`);
 | 
						|
  }
 | 
						|
 | 
						|
  reorderArticles({ portalSlug, reorderedGroup, categorySlug }) {
 | 
						|
    return axios.post(`${this.url}/${portalSlug}/articles/reorder`, {
 | 
						|
      positions_hash: reorderedGroup,
 | 
						|
      category_slug: categorySlug,
 | 
						|
    });
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
export default new ArticlesAPI();
 |