50 lines
1.1 KiB
JavaScript
50 lines
1.1 KiB
JavaScript
import { http } from './http.js';
|
|
|
|
/**
|
|
* Company-scoped carriers / Versandarten.
|
|
* Shape: Carrier = { id, name, sort, hasPackages, isReverse }
|
|
*/
|
|
export const carrier = {
|
|
/** GET /api/carrier → { carriers: Carrier[] } */
|
|
list() {
|
|
return http('/api/carrier');
|
|
},
|
|
|
|
/**
|
|
* POST /api/carrier
|
|
* Body: { name, sort?, hasPackages?, isReverse? }
|
|
* → 201 { carrier: Carrier }
|
|
*/
|
|
create(body) {
|
|
return http('/api/carrier', { method: 'POST', body });
|
|
},
|
|
|
|
/** GET /api/carrier/:id → 200 { carrier: Carrier } */
|
|
get(id) {
|
|
return http(`/api/carrier/${id}`);
|
|
},
|
|
|
|
/**
|
|
* PATCH /api/carrier/:id
|
|
* Body: { name?, sort?, hasPackages?, isReverse? }
|
|
* → 200 { carrier: Carrier }
|
|
*/
|
|
update(id, body) {
|
|
return http(`/api/carrier/${id}`, { method: 'PATCH', body });
|
|
},
|
|
|
|
/**
|
|
* PUT /api/carrier/order
|
|
* Body: { carrierIds: number[] }
|
|
* → 200 { carrierIds: number[] }
|
|
*/
|
|
order(body) {
|
|
return http('/api/carrier/order', { method: 'PUT', body });
|
|
},
|
|
|
|
/** DELETE /api/carrier/:id → 204 · 409 Conflict if in use */
|
|
delete(id) {
|
|
return http(`/api/carrier/${id}`, { method: 'DELETE' });
|
|
},
|
|
};
|