projects
/
arvados-workbench2.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix panel sorting
[arvados-workbench2.git]
/
src
/
common
/
api
/
common-resource-service.ts
diff --git
a/src/common/api/common-resource-service.ts
b/src/common/api/common-resource-service.ts
index 93fc000e19cf2d1edb8ad9057dd70d6dc1f52f68..2541feab026989228c2cf14521c762c78be97d5c 100644
(file)
--- a/
src/common/api/common-resource-service.ts
+++ b/
src/common/api/common-resource-service.ts
@@
-3,25
+3,14
@@
// SPDX-License-Identifier: AGPL-3.0
import * as _ from "lodash";
// 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";
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 {
export interface ListArguments {
- limit: number;
- offset: number;
+ limit
?
: number;
+ offset
?
: number;
filters?: FilterBuilder;
order?: OrderBuilder;
select?: string[];
filters?: FilterBuilder;
order?: OrderBuilder;
select?: string[];
@@
-37,7
+26,7
@@
export interface ListResults<T> {
itemsAvailable: 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)
static mapResponseKeys = (response: any): Promise<any> =>
CommonResourceService.mapKeys(_.camelCase)(response.data)
@@
-68,8
+57,10
@@
export default class CommonResourceService<T extends Resource> {
this.resourceType = '/' + resourceType + '/';
}
this.resourceType = '/' + resourceType + '/';
}
- create() {
- throw new Error("Not implemented");
+ create(data: Partial<T>) {
+ return this.serverApi
+ .post<T>(this.resourceType, CommonResourceService.mapKeys(_.snakeCase)(data))
+ .then(CommonResourceService.mapResponseKeys);
}
delete(uuid: string): Promise<T> {
}
delete(uuid: string): Promise<T> {
@@
-84,12
+75,12
@@
export default class CommonResourceService<T extends Resource> {
.then(CommonResourceService.mapResponseKeys);
}
.then(CommonResourceService.mapResponseKeys);
}
- list(args: ListArguments): Promise<ListResults<T>> {
+ list(args: ListArguments
= {}
): Promise<ListResults<T>> {
const { filters, order, ...other } = args;
const params = {
...other,
const { filters, order, ...other } = args;
const params = {
...other,
- filters: filters ? filters.
get
() : undefined,
- order: order ? order.get() : undefined
+ filters: filters ? filters.
serialize
() : undefined,
+ order: order ? order.get
Order
() : undefined
};
return this.serverApi
.get(this.resourceType, {
};
return this.serverApi
.get(this.resourceType, {
@@
-101,6
+92,5
@@
export default class CommonResourceService<T extends Resource> {
update(uuid: string) {
throw new Error("Not implemented");
}
update(uuid: string) {
throw new Error("Not implemented");
}
-
}
}