diff --git a/frontend/src/api/scripts.ts b/frontend/src/api/scripts.ts index 27e11d6a..07961cf8 100644 --- a/frontend/src/api/scripts.ts +++ b/frontend/src/api/scripts.ts @@ -6,6 +6,8 @@ import type { ScriptGenerateRequest, ScriptGenerateResponse, ScriptGenerationRecord, + ScriptTemplateCreateRequest, + ScriptTemplateUpdateRequest, } from '@/types' export const scriptsApi = { @@ -38,6 +40,39 @@ export const scriptsApi = { const response = await apiClient.get('/scripts/generations') return response.data }, + + async getManagedTemplates(params?: { + category_slug?: string + search?: string + }): Promise { + const response = await apiClient.get('/scripts/templates', { + params: { ...params, managed: true }, + }) + return response.data + }, + + async createTemplate(data: ScriptTemplateCreateRequest): Promise { + const response = await apiClient.post('/scripts/templates', data) + return response.data + }, + + async updateTemplate(id: string, data: ScriptTemplateUpdateRequest): Promise { + const response = await apiClient.put(`/scripts/templates/${id}`, data) + return response.data + }, + + async deleteTemplate(id: string): Promise { + await apiClient.delete(`/scripts/templates/${id}`) + }, + + async shareTemplate(id: string, shared: boolean): Promise { + const response = await apiClient.patch( + `/scripts/templates/${id}/share`, + null, + { params: { shared } }, + ) + return response.data + }, } export default scriptsApi