import apiClient from './clients/api-client'; import { AxiosResponse } from 'axios'; import { Child, ChildIndexFilter } from '../models/child'; import ApiLib from '../lib/api'; export default class ChildAPI { static async index (filters: ChildIndexFilter): Promise> { const res: AxiosResponse> = await apiClient.get(`/api/children${ApiLib.filtersToQuery(filters)}`); return res?.data; } static async get (id: number): Promise { const res: AxiosResponse = await apiClient.get(`/api/children/${id}`); return res?.data; } static async create (child: Child): Promise { const data = ApiLib.serializeAttachments(child, 'child', ['supporting_document_files_attributes']); const res: AxiosResponse = await apiClient.post('/api/children', data, { headers: { 'Content-Type': 'multipart/form-data' } }); return res?.data; } static async update (child: Child): Promise { const data = ApiLib.serializeAttachments(child, 'child', ['supporting_document_files_attributes']); const res: AxiosResponse = await apiClient.put(`/api/children/${child.id}`, data, { headers: { 'Content-Type': 'multipart/form-data' } }); return res?.data; } static async destroy (childId: number): Promise { const res: AxiosResponse = await apiClient.delete(`/api/children/${childId}`); return res?.data; } static async validate (child: Child): Promise { const res: AxiosResponse = await apiClient.patch(`/api/children/${child.id}/validate`, { child }); return res?.data; } }