// SPDX-License-Identifier: AGPL-3.0
import * as _ from "lodash";
-import { CommonResourceService, ListResults } from "~/common/api/common-resource-service";
+import { CommonResourceService, ListResults, ListArguments } from '~/services/common-service/common-resource-service';
import { AxiosInstance } from "axios";
import { CollectionResource } from "~/models/collection";
import { ProjectResource } from "~/models/project";
import { ProcessResource } from "~/models/process";
-import { TrashResource } from "~/models/resource";
+import { TrashableResource } from "~/models/resource";
+import { TrashableResourceService } from "~/services/common-service/trashable-resource-service";
export interface ContentsArguments {
limit?: number;
includeTrash?: boolean;
}
+export interface SharedArguments extends ListArguments {
+ include?: string;
+}
+
export type GroupContentsResource =
CollectionResource |
ProjectResource |
ProcessResource;
-export class GroupsService<T extends TrashResource = TrashResource> extends CommonResourceService<T> {
+export class GroupsService<T extends TrashableResource = TrashableResource> extends TrashableResourceService<T> {
constructor(serverApi: AxiosInstance) {
super(serverApi, "groups");
.then(CommonResourceService.mapResponseKeys);
}
- trash(uuid: string): Promise<T> {
+ shared(params: SharedArguments = {}): Promise<ListResults<GroupContentsResource>> {
return this.serverApi
- .post(this.resourceType + `${uuid}/trash`)
+ .get(this.resourceType + 'shared', { params })
.then(CommonResourceService.mapResponseKeys);
}
-
- untrash(uuid: string): Promise<T> {
- const params = {
- ensure_unique_name: true
- };
- return this.serverApi
- .post(this.resourceType + `${uuid}/untrash`, {
- params: CommonResourceService.mapKeys(_.snakeCase)(params)
- })
- .then(CommonResourceService.mapResponseKeys);
- }
-
}
export enum GroupContentsResourcePrefix {