Merge changes from webdav-service
[arvados-workbench2.git] / src / services / tag-service / tag-service.ts
index 78c930d2e742dd47bdd87b2d844b73e895f36baa..084603eb0833a9f64211598acc899e2d96a95288 100644 (file)
@@ -3,35 +3,43 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import { LinkService } from "../link-service/link-service";
-import { LinkResource, LinkClass, TailType } from "../../models/link";
+import { LinkClass } from "../../models/link";
 import { FilterBuilder } from "../../common/api/filter-builder";
+import { TagTailType, TagResource } from "../../models/tag";
+import { OrderBuilder } from "../../common/api/order-builder";
 
 export class TagService {
 
     constructor(private linkService: LinkService) { }
 
     create(uuid: string, data: { key: string; value: string } ) {
-        return this.linkService.create({
-            headUuid: uuid,
-            tailUuid: TailType.COLLECTION,
-            linkClass: LinkClass.TAG,
-            name: '',
-            properties: data
-        });
+        return this.linkService
+            .create({
+                headUuid: uuid,
+                tailUuid: TagTailType.COLLECTION,
+                linkClass: LinkClass.TAG,
+                name: '',
+                properties: data
+            })
+            .then(tag => tag as TagResource );
     }
 
     list(uuid: string) {
         const filters = FilterBuilder
-            .create<LinkResource>()
+            .create()
             .addEqual("headUuid", uuid)
-            .addEqual("tailUuid", TailType.COLLECTION)
+            .addEqual("tailUuid", TagTailType.COLLECTION)
             .addEqual("linkClass", LinkClass.TAG);
 
+        const order = OrderBuilder
+            .create<TagResource>()
+            .addAsc('createdAt');
+
         return this.linkService
-            .list({ filters })
+            .list({ filters, order })
             .then(results => {
-                return results.items;
+                return results.items.map((tag => tag as TagResource ));
             });
     }
 
-}
\ No newline at end of file
+}