Files
homebox/frontend/lib/api/classes/maintenance.ts
mcarbonne a85c42b539 Implement maintenance view (#235)
* implement backend to query maintenances

* improve backend API for maintenances

* add itemId and itemName (v1/maintenances)

* fix remaining todo in backend (/v1/maintenances)

* refactor: extract MaintenanceEditModal

* first draft (to be cleaned)

* revert dependency updates (not required)

* translation + fix deletion

* fix main menu css issues

* fix main menu "create" button (css)

* enhancement: make item name clickable

* fix: add page title (+ translate existing ones)

* fix: missing toast translation (when updating)

* bug fix: missing group check in backend (for new endpoint)

* backport from following PR (to avoid useless changes)

* maintenances => maintenance
2024-09-23 13:07:27 -04:00

31 lines
798 B
TypeScript

import { BaseAPI, route } from "../base";
import type {
MaintenanceEntry,
MaintenanceEntryWithDetails,
MaintenanceEntryUpdate,
MaintenanceFilterStatus,
} from "../types/data-contracts";
export interface MaintenanceFilters {
status?: MaintenanceFilterStatus;
}
export class MaintenanceAPI extends BaseAPI {
getAll(filters: MaintenanceFilters) {
return this.http.get<MaintenanceEntryWithDetails[]>({
url: route(`/maintenance`, { status: filters.status?.toString() }),
});
}
delete(id: string) {
return this.http.delete<void>({ url: route(`/maintenance/${id}`) });
}
update(id: string, data: MaintenanceEntryUpdate) {
return this.http.put<MaintenanceEntryUpdate, MaintenanceEntry>({
url: route(`/maintenance/${id}`),
body: data,
});
}
}