|
| 1 | +import http from "@/api/http-client" |
| 2 | +import { |
| 3 | + type FiltersOptions, |
| 4 | + type Policy, |
| 5 | + type QueryOptions, |
| 6 | + type WhereOptions, |
| 7 | +} from "@/api/base-api" |
| 8 | + |
| 9 | +/** Keep in sync with api/src/models/travel-desk-travel-agency.ts */ |
| 10 | +export type TravelDeskTravelAgency = { |
| 11 | + id: number |
| 12 | + agencyName: string |
| 13 | + contactName: string | null |
| 14 | + contactEmail: string | null |
| 15 | + contactPhoneNumber: string | null |
| 16 | + agencyInfo: string | null |
| 17 | +} |
| 18 | + |
| 19 | +export type TravelDeskTravelAgencyWhereOptions = WhereOptions< |
| 20 | + TravelDeskTravelAgency, |
| 21 | + "id" | "agencyName" | "contactName" | "contactEmail" | "contactPhoneNumber" |
| 22 | +> |
| 23 | + |
| 24 | +/** must match model scopes */ |
| 25 | +export type TravelDeskTravelAgencyFiltersOptions = FiltersOptions<Record<never, never>> |
| 26 | + |
| 27 | +export type TravelDeskTravelAgenciesQueryOptions = QueryOptions< |
| 28 | + TravelDeskTravelAgencyWhereOptions, |
| 29 | + TravelDeskTravelAgencyFiltersOptions |
| 30 | +> |
| 31 | + |
| 32 | +export const travelDeskTravelAgenciesApi = { |
| 33 | + async list(params: TravelDeskTravelAgenciesQueryOptions = {}): Promise<{ |
| 34 | + travelDeskTravelAgencies: TravelDeskTravelAgency[] |
| 35 | + totalCount: number |
| 36 | + }> { |
| 37 | + const { data } = await http.get("/api/travel-desk-travel-agencies", { |
| 38 | + params, |
| 39 | + }) |
| 40 | + return data |
| 41 | + }, |
| 42 | + |
| 43 | + async get(travelDeskTravelAgencyId: number): Promise<{ |
| 44 | + travelDeskTravelAgency: TravelDeskTravelAgency |
| 45 | + policy: Policy |
| 46 | + }> { |
| 47 | + const { data } = await http.get(`/api/travel-desk-travel-agencies/${travelDeskTravelAgencyId}`) |
| 48 | + return data |
| 49 | + }, |
| 50 | + |
| 51 | + async create(attributes: Partial<TravelDeskTravelAgency>): Promise<{ |
| 52 | + travelDeskTravelAgency: TravelDeskTravelAgency |
| 53 | + }> { |
| 54 | + const { data } = await http.post("/api/travel-desk-travel-agencies", attributes) |
| 55 | + return data |
| 56 | + }, |
| 57 | + |
| 58 | + async update( |
| 59 | + travelDeskTravelAgencyId: number, |
| 60 | + attributes: Partial<TravelDeskTravelAgency> |
| 61 | + ): Promise<{ |
| 62 | + travelDeskTravelAgency: TravelDeskTravelAgency |
| 63 | + }> { |
| 64 | + const { data } = await http.patch( |
| 65 | + `/api/travel-desk-travel-agencies/${travelDeskTravelAgencyId}`, |
| 66 | + attributes |
| 67 | + ) |
| 68 | + return data |
| 69 | + }, |
| 70 | + |
| 71 | + async delete(travelDeskTravelAgencyId: number): Promise<void> { |
| 72 | + await http.delete(`/api/travel-desk-travel-agencies/${travelDeskTravelAgencyId}`) |
| 73 | + }, |
| 74 | +} |
| 75 | + |
| 76 | +export default travelDeskTravelAgenciesApi |
0 commit comments