/* eslint-disable @typescript-eslint/no-unused-vars */ import { generateNestParams, handleError, handleSuccess } from '.'; import axios from '../lib/axios'; import { IAdmin } from '../system/type'; import { removeFalsyValues } from '../utils'; export const getAdmins = async (params: Record) => { return await axios({ url: 'admins', params: generateNestParams(params), withCredentials: true, method: 'GET', }); }; export const updateAdmin = async (admin: Partial) => { const { email, fullname, permissions } = removeFalsyValues(admin); try { const { data } = await axios({ url: 'admins/' + admin.id, withCredentials: true, method: 'PUT', data: { email, fullname, permissions }, }); handleSuccess(data); return data; } catch (error) { handleError(error); } }; export const grantNewPasswordAdmin = async (admin: Partial) => { const { password } = removeFalsyValues(admin); try { const { data } = await axios({ url: 'admins/grant-new-password/' + admin.id, withCredentials: true, method: 'POST', data: { password }, }); handleSuccess(data); return data; } catch (error) { handleError(error); } }; export const createAdmin = async (admin: Omit) => { const {permissions , ...newData} = removeFalsyValues(admin); try { const { data } = await axios({ url: 'admins', withCredentials: true, method: 'POST', data: newData, }); handleSuccess(data); return data; } catch (error) { handleError(error); } }; export const deleteAdmin = async (admin: IAdmin) => { try { const { data } = await axios({ url: 'admins/' + admin.id, withCredentials: true, method: 'DELETE', }); handleSuccess(data); return data; } catch (error) { handleError(error); } }; export const deletesAdmin = async (admins: IAdmin[]) => { const ids = admins.reduce((prev, cur) => { prev.push(cur.id); return prev; }, [] as number[]); try { const { data } = await axios({ url: 'admins/deletes', withCredentials: true, method: 'POST', data: { ids, }, }); handleSuccess(data); return data; } catch (error) { handleError(error); } };