EventBuzz_Console/src/services/api/whatsappTemplates.ts

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}`);
},
};