//
// SPDX-License-Identifier: AGPL-3.0
-import LinkService from "../link-service/link-service";
-import GroupsService, { GroupContentsResource } from "../groups-service/groups-service";
+import { LinkService } from "../link-service/link-service";
+import { GroupsService, GroupContentsResource } from "../groups-service/groups-service";
import { LinkResource, LinkClass } from "../../models/link";
-import FilterBuilder from "../../common/api/filter-builder";
+import { FilterBuilder } from "../../common/api/filter-builder";
import { ListArguments, ListResults } from "../../common/api/common-resource-service";
+import { OrderBuilder } from "../../common/api/order-builder";
-export default class FavoriteService {
+export interface FavoriteListArguments extends ListArguments {
+ filters?: FilterBuilder<LinkResource>;
+ order?: OrderBuilder<LinkResource>;
+}
+export class FavoriteService {
constructor(
private linkService: LinkService,
private groupsService: GroupsService
results.items.map(item => this.linkService.delete(item.uuid))));
}
- list(userUuid: string, args: ListArguments = {}): Promise<ListResults<GroupContentsResource>> {
+ list(userUuid: string, args: FavoriteListArguments = {}): Promise<ListResults<GroupContentsResource>> {
const listFilter = FilterBuilder
.create<LinkResource>()
.addEqual('tailUuid', userUuid)
return this.groupsService.contents(userUuid, {
limit: args.limit,
offset: args.offset,
- filters: FilterBuilder.create<GroupContentsResource>().addIn('uuid', uuids)
+ filters: FilterBuilder.create<GroupContentsResource>().addIn('uuid', uuids),
+ recursive: true
});
});
}