38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
import { api } from './client';
|
|
import type { WhatsAppTemplateRecord, WhatsAppVariableBindings } from './types';
|
|
|
|
export const whatsappTemplatesApi = {
|
|
list(params?: { sync?: boolean; status?: string }) {
|
|
const sp = new URLSearchParams();
|
|
if (params?.sync) sp.set('sync', '1');
|
|
if (params?.status) sp.set('status', params.status);
|
|
const q = sp.toString();
|
|
return api.get<{ templates: WhatsAppTemplateRecord[] }>(`/whatsapp-templates${q ? `?${q}` : ''}`);
|
|
},
|
|
|
|
get(id: string, params?: { sync?: boolean }) {
|
|
const sp = new URLSearchParams();
|
|
if (params?.sync) sp.set('sync', '1');
|
|
const q = sp.toString();
|
|
return api.get<WhatsAppTemplateRecord>(`/whatsapp-templates/${id}${q ? `?${q}` : ''}`);
|
|
},
|
|
|
|
create(payload: {
|
|
name: string;
|
|
language: string;
|
|
category: 'MARKETING' | 'UTILITY' | 'AUTHENTICATION';
|
|
components: Record<string, unknown>[];
|
|
variableBindings?: WhatsAppVariableBindings;
|
|
}) {
|
|
return api.post<WhatsAppTemplateRecord>('/whatsapp-templates', payload);
|
|
},
|
|
|
|
sync(id: string) {
|
|
return api.post<WhatsAppTemplateRecord>(`/whatsapp-templates/${id}/sync`, {});
|
|
},
|
|
|
|
remove(id: string) {
|
|
return api.delete<unknown>(`/whatsapp-templates/${id}`);
|
|
},
|
|
};
|