69 lines
2.3 KiB
TypeScript
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);
|
|
};
|
|
|