Merge branch '19079-search-results-open-newtab' into main. Closes #19079
[arvados-workbench2.git] / src / services / permission-service / permission-service.ts
index 95666de0b8c22f7cac38e99325e6ee29ec1ca822..3a3c1ace2a6db51f40f69f08c12f47fc85aa2bd9 100644 (file)
@@ -2,22 +2,22 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { LinkService } from "~/services/link-service/link-service";
-import { PermissionResource } from "~/models/permission";
-import { ListArguments, ListResults } from '~/services/common-service/common-resource-service';
-import { joinFilters, FilterBuilder } from '../api/filter-builder';
+import { LinkService } from "services/link-service/link-service";
+import { PermissionResource } from "models/permission";
+import { CommonResourceService } from 'services/common-service/common-resource-service';
 import { LinkClass } from '../../models/link';
+import { ListArguments, ListResults } from 'services/common-service/common-service';
 
 export class PermissionService extends LinkService<PermissionResource> {
 
-    list(args: ListArguments = {}): Promise<ListResults<PermissionResource>> {
-        const { filters, ...other } = args;
-        const classFilter = new FilterBuilder().addEqual('class', LinkClass.PERMISSION).getFilters();
-        const newArgs = {
-            ...other,
-            filters: joinFilters(filters, classFilter),
-        };
-        return super.list(newArgs);
+    permissionListService = new CommonResourceService(this.serverApi, 'permissions', this.actions);
+    create(data?: Partial<PermissionResource>) {
+        return super.create({ ...data, linkClass: LinkClass.PERMISSION });
+    }
+
+    listResourcePermissions(uuid: string, args: ListArguments = {}): Promise<ListResults<PermissionResource>> {
+        const service = new CommonResourceService<PermissionResource>(this.serverApi, `permissions/${uuid}`, this.actions);
+        return service.list(args);
     }
 
 }