import { GroupsService } from "../groups-service/groups-service";
import { ProjectResource } from "~/models/project";
import { GroupClass } from "~/models/group";
-import { ListArguments } from "~/services/common-service/common-resource-service";
+import { ListArguments } from "~/services/common-service/common-service";
import { FilterBuilder, joinFilters } from "~/services/api/filter-builder";
-import { TrashableResourceService } from '~/services/common-service/trashable-resource-service';
-import { snakeCase } from 'lodash';
export class ProjectService extends GroupsService<ProjectResource> {
create(data: Partial<ProjectResource>) {
return super.create(projectData);
}
- update(uuid: string, data: Partial<ProjectResource>) {
- if (uuid && data && data.properties) {
- const { properties } = data;
- const mappedData = {
- ...TrashableResourceService.mapKeys(snakeCase)(data),
- properties,
- };
- return TrashableResourceService
- .defaultResponse(
- this.serverApi
- .put<ProjectResource>(this.resourceType + uuid, mappedData),
- this.actions,
- false
- );
- }
- return TrashableResourceService
- .defaultResponse(
- this.serverApi
- .put<ProjectResource>(this.resourceType + uuid, data && TrashableResourceService.mapKeys(snakeCase)(data)),
- this.actions
- );
- }
-
list(args: ListArguments = {}) {
return super.list({
...args,
filters: joinFilters(
- args.filters,
+ args.filters || '',
new FilterBuilder()
- .addEqual("groupClass", GroupClass.PROJECT)
+ .addEqual("group_class", GroupClass.PROJECT)
.getFilters()
)
});