import { IApi } from 'lemans-api/libs/Api/api.types'; import { IStudioOrder, IStudioOrderFilters, IStudioOrderPart } from "../../models/StudioOrder/studioOrder.types"; import { ISearchResults } from '../types/search.types'; export const StudioOrderService = (api:IApi) => ({ create: ():Promise => api.post(`studioOrder`, {}) .then(api.getResults), delete: (id:number):Promise => api.delete(`studioOrder/${id}`) .then(api.getResults), getById: (id:number):Promise => api.get(`studioOrder/${id}`) .then(api.getResults) .catch(api.handleError), parts: { create: (studioOrderId: number, payload: any):Promise => api.post(`studioOrder/${studioOrderId}/part`, payload) .then(api.getResults), getByStudioOrderId: (id:number):Promise => api.get(`studioOrder/${id}/part`) .then(api.getResults) .catch(api.handleError), }, search: (filters:IStudioOrderFilters):Promise => api.get(`studioOrder`) .query(api.processMultiFilters(filters)) .then(api.getResults), searchWithMeta: (filters:IStudioOrderFilters):Promise> => api.get(`studioOrder`) .query(api.processMultiFilters(filters)) .then( (response:any) => response.body), update: (id:number, values:Partial):Promise => api.put(`studioOrder/${id}`, values) .then(api.getResults), });