Merge branch 'master'
[arvados.git] / src / common / api / common-resource-service.ts
index 3e147b224772257b75967d33e4ccf9286037399a..4c05392389b3288a5f28f7cd5d8a9c5a30d72578 100644 (file)
@@ -6,18 +6,7 @@ import * as _ from "lodash";
 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;
@@ -70,7 +59,7 @@ export default class CommonResourceService<T extends Resource> {
 
     create(data: Partial<T>) {
         return this.serverApi
-            .post<T>(this.resourceType, data)
+            .post<T>(this.resourceType, CommonResourceService.mapKeys(_.snakeCase)(data))
             .then(CommonResourceService.mapResponseKeys);
     }
 
@@ -90,8 +79,8 @@ export default class CommonResourceService<T extends Resource> {
         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.getOrder() : undefined
         };
         return this.serverApi
             .get(this.resourceType, {