// 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
+}