X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/2daa121d2affffc715d28653ce9802e7f1ee7644..b2fd743a3acb8d301adab2d1bf2cb0eca573f31a:/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 6c8c397f..8df179cd 100644 --- a/src/common/api/common-resource-service.ts +++ b/src/common/api/common-resource-service.ts @@ -20,8 +20,8 @@ export interface Resource { } export interface ListArguments { - limit: number; - offset: number; + limit?: number; + offset?: number; filters?: FilterBuilder; order?: OrderBuilder; select?: string[]; @@ -68,8 +68,10 @@ export default class CommonResourceService { this.resourceType = '/' + resourceType + '/'; } - create() { - throw new Error("Not implemented"); + create(data: Partial) { + return this.serverApi + .post(this.resourceType, CommonResourceService.mapKeys(_.snakeCase)(data)) + .then(CommonResourceService.mapResponseKeys); } delete(uuid: string): Promise { @@ -84,11 +86,11 @@ export default class CommonResourceService { .then(CommonResourceService.mapResponseKeys); } - list(args: ListArguments): Promise> { + list(args: ListArguments = {}): Promise> { 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