//
// SPDX-License-Identifier: AGPL-3.0
-import * as _ from "lodash";
+import { camelCase, isPlainObject, isArray, snakeCase } from "lodash";
import { AxiosInstance, AxiosPromise } from "axios";
-import * as uuid from "uuid/v4";
+import uuid from "uuid/v4";
import { ApiActions } from "services/api/api-actions";
-import * as QueryString from "query-string";
+import QueryString from "query-string";
interface Errors {
status: number;
}
static mapResponseKeys = (response: { data: any }) =>
- CommonService.mapKeys(_.camelCase)(response.data)
+ CommonService.mapKeys(camelCase)(response.data)
static mapKeys = (mapFn: (key: string) => string) =>
(value: any): any => {
switch (true) {
- case _.isPlainObject(value):
+ case isPlainObject(value):
return Object
.keys(value)
.map(key => [key, mapFn(key)])
...newValue,
[newKey]: (key === 'items') ? CommonService.mapKeys(mapFn)(value[key]) : value[key]
}), {});
- case _.isArray(value):
+ case isArray(value):
return value.map(CommonService.mapKeys(mapFn));
default:
return value;
create(data?: Partial<T>, showErrors?: boolean) {
return CommonService.defaultResponse(
this.serverApi
- .post<T>(`/${this.resourceType}`, data && CommonService.mapKeys(_.snakeCase)(data)),
+ .post<T>(`/${this.resourceType}`, data && CommonService.mapKeys(snakeCase)(data)),
this.actions,
true, // mapKeys
showErrors
list(args: ListArguments = {}): Promise<ListResults<T>> {
const { filters, order, ...other } = args;
const params = {
- ...CommonService.mapKeys(_.snakeCase)(other),
+ ...CommonService.mapKeys(snakeCase)(other),
filters: filters ? `[${filters}]` : undefined,
order: order ? order : undefined
};
this.validateUuid(uuid);
return CommonService.defaultResponse(
this.serverApi
- .put<T>(`/${this.resourceType}/${uuid}`, data && CommonService.mapKeys(_.snakeCase)(data)),
+ .put<T>(`/${this.resourceType}/${uuid}`, data && CommonService.mapKeys(snakeCase)(data)),
this.actions
);
}