/* global axios */ import ApiClient from './ApiClient'; export const buildContactParams = (page, sortAttr, label, search) => { let params = `include_contact_inboxes=false&page=${page}&sort=${sortAttr}`; if (search) { params = `${params}&q=${search}`; } if (label) { params = `${params}&labels[]=${label}`; } return params; }; class ContactAPI extends ApiClient { constructor() { super('contacts', { accountScoped: true }); } get(page, sortAttr = 'name', label = '') { let requestURL = `${this.url}?${buildContactParams( page, sortAttr, label, '' )}`; return axios.get(requestURL); } getConversations(contactId) { return axios.get(`${this.url}/${contactId}/conversations`); } getContactableInboxes(contactId) { return axios.get(`${this.url}/${contactId}/contactable_inboxes`); } getContactLabels(contactId) { return axios.get(`${this.url}/${contactId}/labels`); } updateContactLabels(contactId, labels) { return axios.post(`${this.url}/${contactId}/labels`, { labels }); } search(search = '', page = 1, sortAttr = 'name', label = '') { let requestURL = `${this.url}/search?${buildContactParams( page, sortAttr, label, search )}`; return axios.get(requestURL); } } export default new ContactAPI();