Merge branch 'main' into 19482-wf-panel refs #19482
[arvados.git] / src / services / groups-service / groups-service.ts
index 1e9078d9382ecb508c36100a2c7246a0396f74d3..a36ddba894c84a987f8f672c1a370a627f89b13c 100644 (file)
@@ -2,7 +2,8 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { snakeCase, camelCase } from 'lodash';
+import { CancelToken } from 'axios';
+import { snakeCase, camelCase } from "lodash";
 import { CommonResourceService } from 'services/common-service/common-resource-service';
 import {
   ListResults,
@@ -45,27 +46,27 @@ export class GroupsService<
     super(serverApi, 'groups', actions);
   }
 
-  async contents(
-    uuid: string,
-    args: ContentsArguments = {},
-    session?: Session
-  ): Promise<ListResults<GroupContentsResource>> {
+async contents(uuid: string, args: ContentsArguments = {}, session?: Session, cancelToken?: CancelToken): Promise<ListResults<GroupContentsResource>> {
     const { filters, order, ...other } = args;
     const params = {
-      ...other,
-      filters: filters ? `[${filters}]` : undefined,
-      order: order ? order : undefined,
+        ...other,
+        filters: filters ? `[${filters}]` : undefined,
+        order: order ? order : undefined
     };
     const pathUrl = uuid ? `/${uuid}/contents` : '/contents';
-
     const cfg: AxiosRequestConfig = {
       params: CommonResourceService.mapKeys(snakeCase)(params),
     };
+
     if (session) {
       cfg.baseURL = session.baseUrl;
       cfg.headers = { Authorization: 'Bearer ' + session.token };
     }
 
+    if (cancelToken) {
+      cfg.cancelToken = cancelToken;
+    }
+
     const response = await CommonResourceService.defaultResponse(
       this.serverApi.get(this.resourceType + pathUrl, cfg),
       this.actions,