69 lines
2.3 KiB
TypeScript

import { LeadItem, LeadCountItem, AddLeadPayload, AddLeadResponse, UpdateLeadResponse } from '@interfaces';
import { api } from '@utils';
export const getLeadsApi = async (
leadId: string | null,
staffId: string,
): Promise<LeadItem[]> => {
const url = `/api/leads/${leadId}/${staffId}`;
return await api.get<LeadItem[]>(url);
};
export const getLeadCountListApi = async (
staffId: string,
): Promise<LeadCountItem[]> => {
const url = `/api/leadcountlist/${staffId}`;
return await api.get<LeadCountItem[]>(url);
};
export const addLeadApi = async (
payload: AddLeadPayload,
): Promise<AddLeadResponse> => {
const formData = new FormData();
formData.append('staff_id', payload.staff_id);
formData.append('name', payload.name);
if (payload.company) formData.append('company', payload.company);
if (payload.email) formData.append('email', payload.email);
if (payload.phonenumber) formData.append('phonenumber', payload.phonenumber);
if (payload.website) formData.append('website', payload.website);
if (payload.source) formData.append('source', payload.source);
if (payload.status) formData.append('status', payload.status);
if (payload.address) formData.append('address', payload.address);
if (payload.city) formData.append('city', payload.city);
if (payload.state) formData.append('state', payload.state);
if (payload.zip) formData.append('zip', payload.zip);
if (payload.country) formData.append('country', payload.country);
return await api.post<AddLeadResponse>('/api/leads', formData);
};
export const updateLeadApi = async (
lead: LeadItem,
newStatusId: string,
): Promise<UpdateLeadResponse> => {
const body = {
source: lead.source || '0',
status: newStatusId,
name: lead.name || '',
assigned: lead.assigned || '',
tags: '',
title: lead.title || '',
email: lead.email || '',
website: lead.website || '',
phonenumber: lead.phonenumber || '',
company: lead.company || '',
address: lead.address || '',
city: lead.city || '',
state: lead.state || '',
country: lead.country || '0',
default_language: lead.default_language || '',
description: lead.description || '',
is_public: lead.is_public || '',
zip: lead.zip || '',
};
const url = `/api/leads/${lead.id}`;
return await api.put<UpdateLeadResponse>(url, body);
};