-export default class ProjectService {
- public getProjectList = (parentUuid?: string) => (dispatch: Dispatch): Promise<Project[]> => {
- dispatch(actions.PROJECTS_REQUEST());
- if (parentUuid) {
- const fb = new FilterBuilder();
- fb.addLike(FilterField.OWNER_UUID, parentUuid);
- return serverApi.get<GroupsResponse>('/groups', { params: {
- filters: fb.get()
- }}).then(groups => {
- const projects = groups.data.items.map(g => ({
- name: g.name,
- createdAt: g.created_at,
- modifiedAt: g.modified_at,
- href: g.href,
- uuid: g.uuid,
- ownerUuid: g.owner_uuid
- } as Project));
- dispatch(actions.PROJECTS_SUCCESS({projects, parentItemId: parentUuid}));
- return projects;
- });
- } else {
- dispatch(actions.PROJECTS_SUCCESS({projects: [], parentItemId: parentUuid}));
- return Promise.resolve([]);
+ 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
+ );