From 25a1a67688bace154bb17dba31c8ca430d98bc80 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Mon, 21 Nov 2022 10:28:22 +0100
Subject: [PATCH] OZG-2966 OZG-3171 adjust handle errorResponse, changed
 somehow; adjust BE

---
 .../src/lib/+state/binary-file.effects.ts                  | 3 +--
 .../src/lib/interceptor/http-binary-file.interceptor.ts    | 7 +++----
 .../libs/user-profile-shared/src/lib/user-profile.util.ts  | 4 ++--
 .../de/itvsh/goofy/common/user/UserManagerProperties.java  | 7 +------
 .../de/itvsh/goofy/common/user/UserManagerUrlProvider.java | 2 +-
 .../java/de/itvsh/goofy/common/user/UserRemoteService.java | 3 ++-
 .../de/itvsh/goofy/common/user/UserRemoteServiceTest.java  | 4 ++--
 .../de/itvsh/goofy/vorgang/VorgangControllerITCase.java    | 2 +-
 8 files changed, 13 insertions(+), 19 deletions(-)

diff --git a/goofy-client/libs/binary-file-shared/src/lib/+state/binary-file.effects.ts b/goofy-client/libs/binary-file-shared/src/lib/+state/binary-file.effects.ts
index 0f34f51819..253532c5d7 100644
--- a/goofy-client/libs/binary-file-shared/src/lib/+state/binary-file.effects.ts
+++ b/goofy-client/libs/binary-file-shared/src/lib/+state/binary-file.effects.ts
@@ -22,7 +22,6 @@
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
 import { Injectable } from '@angular/core';
-import { getApiErrorFromHttpErrorResponse } from '@goofy-client/tech-shared';
 import { Actions, createEffect, ofType } from '@ngrx/effects';
 import { of } from 'rxjs';
 import { catchError, mergeMap, switchMap, tap } from 'rxjs/operators';
@@ -42,7 +41,7 @@ export class BinaryFileEffects {
 			ofType(BinaryFileActions.downloadPdf),
 			switchMap((action: DownloadBinaryFileAsPdfAction) => this.binaryFileRepository.downloadPdf(action.uri).pipe(
 				mergeMap((fileData: Blob) => [BinaryFileActions.saveAsPdf({ fileData, fileName: action.fileName }), action.successAction()]),
-				catchError(error => of(action.failureAction(getApiErrorFromHttpErrorResponse(error))))
+				catchError(error => of(action.failureAction(error.error)))
 			))
 		)
 	);
diff --git a/goofy-client/libs/tech-shared/src/lib/interceptor/http-binary-file.interceptor.ts b/goofy-client/libs/tech-shared/src/lib/interceptor/http-binary-file.interceptor.ts
index 205aae4ac2..05d3180f3d 100644
--- a/goofy-client/libs/tech-shared/src/lib/interceptor/http-binary-file.interceptor.ts
+++ b/goofy-client/libs/tech-shared/src/lib/interceptor/http-binary-file.interceptor.ts
@@ -23,7 +23,6 @@
  */
 import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponseBase } from '@angular/common/http';
 import { Injectable } from '@angular/core';
-import { ContentType } from 'libs/binary-file-shared/src/lib/binary-file.repository';
 import { Observable, throwError } from 'rxjs';
 import { catchError } from 'rxjs/operators';
 
@@ -36,15 +35,15 @@ export class HttpBinaryFileInterceptor implements HttpInterceptor {
 
 	public intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
 		return next.handle(req).pipe(catchError((response: HttpResponseBase) => {
-			if (this.shouldConvertToJson(response)) {
-				return this.convertToJson(<HttpErrorResponse>response)
+			if (this.shouldConvertToJson((<any>response).error)) {
+				return this.convertToJson((<HttpErrorResponse>response).error)
 			}
 			return throwError(response);
 		}));
 	}
 
 	private shouldConvertToJson(err: HttpResponseBase): boolean {
-		return err instanceof HttpErrorResponse && err.error instanceof Blob && err.error.type === ContentType.APPLICATION_JSON;
+		return err instanceof HttpErrorResponse && err.error instanceof Blob && err.error.type === 'application/json';
 	}
 
 	convertToJson(errorResponse: HttpErrorResponse): Promise<any> {
diff --git a/goofy-client/libs/user-profile-shared/src/lib/user-profile.util.ts b/goofy-client/libs/user-profile-shared/src/lib/user-profile.util.ts
index c76a76ffc5..d9f8e721bd 100644
--- a/goofy-client/libs/user-profile-shared/src/lib/user-profile.util.ts
+++ b/goofy-client/libs/user-profile-shared/src/lib/user-profile.util.ts
@@ -22,7 +22,7 @@
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
 import { EMPTY_STRING, getFirstLetter, getStringValue, isNotEmpty, isNotNull } from '@goofy-client/tech-shared';
-import { isNull } from 'lodash-es';
+import { isNil, isNull } from 'lodash-es';
 import { UserProfileResource } from './user-profile.model';
 
 export const NO_NAME_MESSAGE: string = 'Benutzer ohne hinterlegtem Namen';
@@ -33,7 +33,7 @@ export function existsName(userProfile: UserProfileResource): boolean {
 }
 
 export function getUserName(userProfile: UserProfileResource): string {
-	if (isNull(userProfile)) {
+	if (isNil(userProfile)) {
 		return UNKNOWN_USER;
 	}
 	if (existsName(userProfile)) {
diff --git a/goofy-server/src/main/java/de/itvsh/goofy/common/user/UserManagerProperties.java b/goofy-server/src/main/java/de/itvsh/goofy/common/user/UserManagerProperties.java
index 2a576cecb6..fcc03ad0d9 100644
--- a/goofy-server/src/main/java/de/itvsh/goofy/common/user/UserManagerProperties.java
+++ b/goofy-server/src/main/java/de/itvsh/goofy/common/user/UserManagerProperties.java
@@ -42,14 +42,9 @@ public class UserManagerProperties {
 	private String url;
 	private String profileTemplate;
 	private String searchTempalte;
-
 	private String internalurl;
 
-	String getProfileTemplate() {
-		return url + profileTemplate;
-	}
-
-	String getInternalUrlTemplate() {
+	String getFullInternalUrlTemplate() {
 		return internalurl + MIGRATION_PATH;
 	}
 }
\ No newline at end of file
diff --git a/goofy-server/src/main/java/de/itvsh/goofy/common/user/UserManagerUrlProvider.java b/goofy-server/src/main/java/de/itvsh/goofy/common/user/UserManagerUrlProvider.java
index 0e6ff45623..035f14ba40 100644
--- a/goofy-server/src/main/java/de/itvsh/goofy/common/user/UserManagerUrlProvider.java
+++ b/goofy-server/src/main/java/de/itvsh/goofy/common/user/UserManagerUrlProvider.java
@@ -21,7 +21,7 @@ public class UserManagerUrlProvider {
 	}
 
 	public String getInternalUserIdTemplate() {
-		return userManagerProperties.getInternalUrlTemplate();
+		return userManagerProperties.getFullInternalUrlTemplate();
 	}
 
 	public boolean isConfiguredForUserProfile() {
diff --git a/goofy-server/src/main/java/de/itvsh/goofy/common/user/UserRemoteService.java b/goofy-server/src/main/java/de/itvsh/goofy/common/user/UserRemoteService.java
index 700057bec1..d5386f1a36 100644
--- a/goofy-server/src/main/java/de/itvsh/goofy/common/user/UserRemoteService.java
+++ b/goofy-server/src/main/java/de/itvsh/goofy/common/user/UserRemoteService.java
@@ -63,7 +63,8 @@ public class UserRemoteService {
 	public Optional<UserId> getUserId(UserId externalUserId) {
 		try {
 			if (userManagerUrlProvider.isConfiguredForInternalUserId()) {
-				var internalId = restTemplate.getForObject(userManagerProperties.getInternalUrlTemplate(), String.class, externalUserId.toString());
+				var internalId = restTemplate.getForObject(userManagerProperties.getFullInternalUrlTemplate(), String.class,
+						externalUserId.toString());
 				return StringUtils.isNotEmpty(internalId) ? Optional.of(UserId.from(internalId)) : Optional.empty();
 			} else {
 				return Optional.empty();
diff --git a/goofy-server/src/test/java/de/itvsh/goofy/common/user/UserRemoteServiceTest.java b/goofy-server/src/test/java/de/itvsh/goofy/common/user/UserRemoteServiceTest.java
index ef6086164f..1bfa6fe898 100644
--- a/goofy-server/src/test/java/de/itvsh/goofy/common/user/UserRemoteServiceTest.java
+++ b/goofy-server/src/test/java/de/itvsh/goofy/common/user/UserRemoteServiceTest.java
@@ -73,7 +73,7 @@ class UserRemoteServiceTest {
 
 			@BeforeEach
 			void mock() {
-				when(userManagerProperties.getInternalUrlTemplate()).thenReturn(internalUrlTemplate);
+				when(userManagerProperties.getFullInternalUrlTemplate()).thenReturn(internalUrlTemplate);
 				when(userManagerUrlProvider.isConfiguredForInternalUserId()).thenReturn(true);
 			}
 
@@ -131,7 +131,7 @@ class UserRemoteServiceTest {
 			void shouldNotCallUserManagerProperties() {
 				service.getUserId(UserProfileTestFactory.ID);
 
-				verify(userManagerProperties, never()).getInternalUrlTemplate();
+				verify(userManagerProperties, never()).getFullInternalUrlTemplate();
 			}
 
 			@Test
diff --git a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangControllerITCase.java b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangControllerITCase.java
index 6ff2e440f6..48f5df1391 100644
--- a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangControllerITCase.java
+++ b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangControllerITCase.java
@@ -144,7 +144,7 @@ class VorgangControllerITCase {
 				when(remoteService.findVorgangWithEingang(anyString())).thenReturn(VorgangWithEingangTestFactory.create());
 
 				doRequest()
-						.andExpect(jsonPath("$._links.assignedTo.href").value("https://localhost9092/api/userProfiles/" + UserProfileTestFactory.ID));
+						.andExpect(jsonPath("$._links.assignedTo.href").value("http://localhost9092/api/userProfiles/" + UserProfileTestFactory.ID));
 			}
 
 			@Test
-- 
GitLab