// SPDX-License-Identifier: AGPL-3.0
import * as _ from "lodash";
-import FilterBuilder from "./filter-builder";
-import OrderBuilder from "./order-builder";
+import { FilterBuilder } from "./filter-builder";
+import { OrderBuilder } from "./order-builder";
import { AxiosInstance } from "axios";
-
-export interface Resource {
- uuid: string;
- ownerUuid: string;
- createdAt: string;
- modifiedByClientUuid: string;
- modifiedByUserUuid: string;
- modifiedAt: string;
- href: string;
- kind: string;
- etag: string;
-}
+import { Resource } from "../../models/resource";
export interface ListArguments {
limit?: number;
itemsAvailable: number;
}
-export default class CommonResourceService<T extends Resource> {
+export class CommonResourceService<T extends Resource> {
static mapResponseKeys = (response: any): Promise<any> =>
CommonResourceService.mapKeys(_.camelCase)(response.data)
create(data: Partial<T>) {
return this.serverApi
- .post<T>(this.resourceType, data)
+ .post<T>(this.resourceType, CommonResourceService.mapKeys(_.snakeCase)(data))
.then(CommonResourceService.mapResponseKeys);
}
const { filters, order, ...other } = args;
const params = {
...other,
- filters: filters ? filters.get() : undefined,
+ filters: filters ? filters.serialize() : undefined,
order: order ? order.getOrder() : undefined
};
return this.serverApi
update(uuid: string) {
throw new Error("Not implemented");
}
-
}