mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-11-04 04:57:51 +00:00 
			
		
		
		
	Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com> Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Co-authored-by: iamsivin <iamsivin@gmail.com> Co-authored-by: Shivam Mishra <scm.mymail@gmail.com>
		
			
				
	
	
		
			110 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* global axios */
 | 
						|
 | 
						|
import Cookies from 'js-cookie';
 | 
						|
import endPoints from './endPoints';
 | 
						|
import {
 | 
						|
  clearCookiesOnLogout,
 | 
						|
  deleteIndexedDBOnLogout,
 | 
						|
} from '../store/utils/api';
 | 
						|
 | 
						|
export default {
 | 
						|
  validityCheck() {
 | 
						|
    const urlData = endPoints('validityCheck');
 | 
						|
    return axios.get(urlData.url);
 | 
						|
  },
 | 
						|
  logout() {
 | 
						|
    const urlData = endPoints('logout');
 | 
						|
    const fetchPromise = new Promise((resolve, reject) => {
 | 
						|
      axios
 | 
						|
        .delete(urlData.url)
 | 
						|
        .then(response => {
 | 
						|
          deleteIndexedDBOnLogout();
 | 
						|
          clearCookiesOnLogout();
 | 
						|
          resolve(response);
 | 
						|
        })
 | 
						|
        .catch(error => {
 | 
						|
          reject(error);
 | 
						|
        });
 | 
						|
    });
 | 
						|
    return fetchPromise;
 | 
						|
  },
 | 
						|
  hasAuthCookie() {
 | 
						|
    return !!Cookies.get('cw_d_session_info');
 | 
						|
  },
 | 
						|
  getAuthData() {
 | 
						|
    if (this.hasAuthCookie()) {
 | 
						|
      const savedAuthInfo = Cookies.get('cw_d_session_info');
 | 
						|
      return JSON.parse(savedAuthInfo || '{}');
 | 
						|
    }
 | 
						|
    return false;
 | 
						|
  },
 | 
						|
  profileUpdate({
 | 
						|
    password,
 | 
						|
    password_confirmation,
 | 
						|
    displayName,
 | 
						|
    avatar,
 | 
						|
    ...profileAttributes
 | 
						|
  }) {
 | 
						|
    const formData = new FormData();
 | 
						|
    Object.keys(profileAttributes).forEach(key => {
 | 
						|
      const hasValue = profileAttributes[key] === undefined;
 | 
						|
      if (!hasValue) {
 | 
						|
        formData.append(`profile[${key}]`, profileAttributes[key]);
 | 
						|
      }
 | 
						|
    });
 | 
						|
    formData.append('profile[display_name]', displayName || '');
 | 
						|
    if (password && password_confirmation) {
 | 
						|
      formData.append('profile[password]', password);
 | 
						|
      formData.append('profile[password_confirmation]', password_confirmation);
 | 
						|
    }
 | 
						|
    if (avatar) {
 | 
						|
      formData.append('profile[avatar]', avatar);
 | 
						|
    }
 | 
						|
    return axios.put(endPoints('profileUpdate').url, formData);
 | 
						|
  },
 | 
						|
 | 
						|
  updateUISettings({ uiSettings }) {
 | 
						|
    return axios.put(endPoints('profileUpdate').url, {
 | 
						|
      profile: { ui_settings: uiSettings },
 | 
						|
    });
 | 
						|
  },
 | 
						|
 | 
						|
  updateAvailability(availabilityData) {
 | 
						|
    return axios.post(endPoints('availabilityUpdate').url, {
 | 
						|
      profile: { ...availabilityData },
 | 
						|
    });
 | 
						|
  },
 | 
						|
 | 
						|
  updateAutoOffline(accountId, autoOffline = false) {
 | 
						|
    return axios.post(endPoints('autoOffline').url, {
 | 
						|
      profile: { account_id: accountId, auto_offline: autoOffline },
 | 
						|
    });
 | 
						|
  },
 | 
						|
 | 
						|
  deleteAvatar() {
 | 
						|
    return axios.delete(endPoints('deleteAvatar').url);
 | 
						|
  },
 | 
						|
 | 
						|
  resetPassword({ email }) {
 | 
						|
    const urlData = endPoints('resetPassword');
 | 
						|
    return axios.post(urlData.url, { email });
 | 
						|
  },
 | 
						|
 | 
						|
  setActiveAccount({ accountId }) {
 | 
						|
    const urlData = endPoints('setActiveAccount');
 | 
						|
    return axios.put(urlData.url, {
 | 
						|
      profile: {
 | 
						|
        account_id: accountId,
 | 
						|
      },
 | 
						|
    });
 | 
						|
  },
 | 
						|
  resendConfirmation() {
 | 
						|
    const urlData = endPoints('resendConfirmation');
 | 
						|
    return axios.post(urlData.url);
 | 
						|
  },
 | 
						|
  resetAccessToken() {
 | 
						|
    const urlData = endPoints('resetAccessToken');
 | 
						|
    return axios.post(urlData.url);
 | 
						|
  },
 | 
						|
};
 |