Merge remote-tracking branch 'origin/main' into 18169-cancel-button-not-working
[arvados-workbench2.git] / src / services / tag-service / tag-service.ts
index 78c930d2e742dd47bdd87b2d844b73e895f36baa..9ea4650aedb276f1a5ba98151b2878646d8f0b80 100644 (file)
@@ -3,35 +3,42 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import { LinkService } from "../link-service/link-service";
-import { LinkResource, LinkClass, TailType } from "../../models/link";
-import { FilterBuilder } from "../../common/api/filter-builder";
+import { LinkClass } from "models/link";
+import { FilterBuilder } from "services/api/filter-builder";
+import { TagTailType, TagResource } from "models/tag";
+import { OrderBuilder } from "services/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>()
-            .addEqual("headUuid", uuid)
-            .addEqual("tailUuid", TailType.COLLECTION)
-            .addEqual("linkClass", LinkClass.TAG);
+        const filters = new FilterBuilder()
+            .addEqual("head_uuid", uuid)
+            .addEqual("tail_uuid", TagTailType.COLLECTION)
+            .addEqual("link_class", LinkClass.TAG)
+            .getFilters();
+
+        const order = new OrderBuilder<TagResource>()
+            .addAsc('createdAt')
+            .getOrder();
 
         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
+}