From b508feca01ac08c07dd00d68cb9069a774c54914 Mon Sep 17 00:00:00 2001 From: Mustapha Zorgati <15628173+mustaphazorgati@users.noreply.github.com> Date: Mon, 21 Dec 2020 21:14:35 +0100 Subject: [PATCH] TSK-1436: fixed breaking REST API change for workbasketAccessItems --- .../workbasket/rest/WorkbasketController.java | 12 +++---- .../workbasket-access-items-representation.ts | 2 +- .../services/workbasket/workbasket.service.ts | 5 ++- .../workbasket-store/workbasket.state.ts | 36 ++++++++++--------- 4 files changed, 28 insertions(+), 27 deletions(-) diff --git a/rest/taskana-rest-spring/src/main/java/pro/taskana/workbasket/rest/WorkbasketController.java b/rest/taskana-rest-spring/src/main/java/pro/taskana/workbasket/rest/WorkbasketController.java index 3bc789876..434a9eafa 100644 --- a/rest/taskana-rest-spring/src/main/java/pro/taskana/workbasket/rest/WorkbasketController.java +++ b/rest/taskana-rest-spring/src/main/java/pro/taskana/workbasket/rest/WorkbasketController.java @@ -1,9 +1,9 @@ package pro.taskana.workbasket.rest; import java.beans.ConstructorProperties; -import java.util.ArrayList; import java.util.List; import java.util.function.BiConsumer; +import java.util.stream.Collectors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -320,13 +320,9 @@ public class WorkbasketController { throw new InvalidArgumentException("Can“t create something with NULL body-value."); } - List wbAccessItems = new ArrayList<>(); - workbasketAccessItemRepModels - .getContent() - .forEach( - item -> - wbAccessItems.add( - workbasketAccessItemRepresentationModelAssembler.toEntityModel(item))); + List wbAccessItems = workbasketAccessItemRepModels.getContent().stream() + .map(workbasketAccessItemRepresentationModelAssembler::toEntityModel) + .collect(Collectors.toList()); workbasketService.setWorkbasketAccessItems(workbasketId, wbAccessItems); List updatedWbAccessItems = workbasketService.getWorkbasketAccessItems(workbasketId); diff --git a/web/src/app/shared/models/workbasket-access-items-representation.ts b/web/src/app/shared/models/workbasket-access-items-representation.ts index d6848fe3f..4ce4e5e60 100644 --- a/web/src/app/shared/models/workbasket-access-items-representation.ts +++ b/web/src/app/shared/models/workbasket-access-items-representation.ts @@ -3,5 +3,5 @@ import { WorkbasketAccessItems } from './workbasket-access-items'; export interface WorkbasketAccessItemsRepresentation { accessItems: WorkbasketAccessItems[]; - _links: Links; + _links?: Links; } diff --git a/web/src/app/shared/services/workbasket/workbasket.service.ts b/web/src/app/shared/services/workbasket/workbasket.service.ts index a24876182..4b6b384a2 100644 --- a/web/src/app/shared/services/workbasket/workbasket.service.ts +++ b/web/src/app/shared/services/workbasket/workbasket.service.ts @@ -95,7 +95,10 @@ export class WorkbasketService { } // PUT - updateWorkBasketAccessItem(url: string, workbasketAccessItem: Array): Observable { + updateWorkBasketAccessItem( + url: string, + workbasketAccessItem: WorkbasketAccessItemsRepresentation + ): Observable { return this.httpClient.put(url, workbasketAccessItem); } diff --git a/web/src/app/shared/store/workbasket-store/workbasket.state.ts b/web/src/app/shared/store/workbasket-store/workbasket.state.ts index e3691effd..1e9de762a 100644 --- a/web/src/app/shared/store/workbasket-store/workbasket.state.ts +++ b/web/src/app/shared/store/workbasket-store/workbasket.state.ts @@ -309,23 +309,25 @@ export class WorkbasketState implements NgxsAfterBootstrap { action: UpdateWorkbasketAccessItems ): Observable { ctx.dispatch(new OnButtonPressed(undefined)); - return this.workbasketService.updateWorkBasketAccessItem(action.url, action.workbasketAccessItems).pipe( - take(1), - tap( - (workbasketAccessItems) => { - ctx.patchState({ - workbasketAccessItems - }); - this.notificationService.showToast( - NOTIFICATION_TYPES.SUCCESS_ALERT_7, - new Map([['workbasketKey', ctx.getState().selectedWorkbasket.key]]) - ); - }, - (error) => { - this.notificationService.triggerError(NOTIFICATION_TYPES.SAVE_ERR_2, error); - } - ) - ); + return this.workbasketService + .updateWorkBasketAccessItem(action.url, { accessItems: action.workbasketAccessItems }) + .pipe( + take(1), + tap( + (workbasketAccessItems) => { + ctx.patchState({ + workbasketAccessItems + }); + this.notificationService.showToast( + NOTIFICATION_TYPES.SUCCESS_ALERT_7, + new Map([['workbasketKey', ctx.getState().selectedWorkbasket.key]]) + ); + }, + (error) => { + this.notificationService.triggerError(NOTIFICATION_TYPES.SAVE_ERR_2, error); + } + ) + ); } @Action(GetWorkbasketDistributionTargets)