X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/b6ac7fe88d347582d39fffa002e300af222c578f..d918b7408326b3d1193fc49c8049b5dbbc93a767:/src/services/api-client-authorization-service/api-client-authorization-service.ts diff --git a/src/services/api-client-authorization-service/api-client-authorization-service.ts b/src/services/api-client-authorization-service/api-client-authorization-service.ts index 386c9747..7c985dbb 100644 --- a/src/services/api-client-authorization-service/api-client-authorization-service.ts +++ b/src/services/api-client-authorization-service/api-client-authorization-service.ts @@ -5,10 +5,39 @@ import { AxiosInstance } from "axios"; import { ApiActions } from 'services/api/api-actions'; import { ApiClientAuthorization } from 'models/api-client-authorization'; -import { CommonService } from 'services/common-service/common-service'; +import { CommonService, ListResults } from 'services/common-service/common-service'; +import { extractUuidObjectType, ResourceObjectType } from "models/resource"; +import { FilterBuilder } from "services/api/filter-builder"; export class ApiClientAuthorizationService extends CommonService { constructor(serverApi: AxiosInstance, actions: ApiActions) { super(serverApi, "api_client_authorizations", actions); } -} \ No newline at end of file + + createCollectionSharingToken(uuid: string): Promise { + if (extractUuidObjectType(uuid) !== ResourceObjectType.COLLECTION) { + throw new Error(`UUID ${uuid} is not a collection`); + } + return this.create({ + scopes: [ + `GET /arvados/v1/collections/${uuid}`, + `GET /arvados/v1/collections/${uuid}/`, + `GET /arvados/v1/keep_services/accessible`, + ] + }); + } + + listCollectionSharingTokens(uuid: string): Promise> { + if (extractUuidObjectType(uuid) !== ResourceObjectType.COLLECTION) { + throw new Error(`UUID ${uuid} is not a collection`); + } + return this.list({ + filters: new FilterBuilder() + .addEqual("scopes", [ + `GET /arvados/v1/collections/${uuid}`, + `GET /arvados/v1/collections/${uuid}/`, + "GET /arvados/v1/keep_services/accessible" + ]).getFilters() + }); + } +} \ No newline at end of file