From a989ae7c3754af823b34dfc4a28e30e9c1060fb1 Mon Sep 17 00:00:00 2001
From: Sonia Zorba <sonia.zorba@inaf.it>
Date: Wed, 15 Apr 2020 18:09:53 +0200
Subject: [PATCH] Fixed http response status check in gms-client lib

---
 .../main/java/it/inaf/ia2/gms/client/call/AddMemberCall.java    | 1 +
 .../java/it/inaf/ia2/gms/client/call/AddPermissionCall.java     | 1 +
 .../main/java/it/inaf/ia2/gms/client/call/CreateGroupCall.java  | 2 +-
 .../src/test/java/it/inaf/ia2/gms/client/GmsClientTest.java     | 2 +-
 .../it/inaf/ia2/gms/controller/JWTWebServiceController.java     | 2 +-
 5 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/AddMemberCall.java b/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/AddMemberCall.java
index 42abfe7..e76242d 100644
--- a/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/AddMemberCall.java
+++ b/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/AddMemberCall.java
@@ -19,6 +19,7 @@ public class AddMemberCall extends BaseGmsCall {
 
         HttpRequest groupsRequest = newHttpRequest(endpoint)
                 .header("Accept", "text/plain")
+                .header("Content-Type", "application/x-www-form-urlencoded")
                 .POST(BodyPublishers.ofString("user_id=" + userId))
                 .build();
 
diff --git a/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/AddPermissionCall.java b/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/AddPermissionCall.java
index 99c5d80..42acad9 100644
--- a/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/AddPermissionCall.java
+++ b/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/AddPermissionCall.java
@@ -24,6 +24,7 @@ public class AddPermissionCall extends BaseGmsCall {
 
         HttpRequest groupsRequest = newHttpRequest(endpoint)
                 .header("Accept", "text/plain")
+                .header("Content-Type", "application/x-www-form-urlencoded")
                 .POST(requestBody)
                 .build();
 
diff --git a/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/CreateGroupCall.java b/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/CreateGroupCall.java
index 9636232..3481123 100644
--- a/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/CreateGroupCall.java
+++ b/gms-client/gms-client-lib/src/main/java/it/inaf/ia2/gms/client/call/CreateGroupCall.java
@@ -19,7 +19,7 @@ public class CreateGroupCall extends BaseGmsCall {
 
         return getClient().sendAsync(groupsRequest, HttpResponse.BodyHandlers.ofInputStream())
                 .thenApply(response -> {
-                    if (response.statusCode() == 200) {
+                    if (response.statusCode() == 201) {
                         return true;
                     }
                     logServerErrorInputStream(groupsRequest, response);
diff --git a/gms-client/gms-client-lib/src/test/java/it/inaf/ia2/gms/client/GmsClientTest.java b/gms-client/gms-client-lib/src/test/java/it/inaf/ia2/gms/client/GmsClientTest.java
index 63233fb..54ce5b8 100644
--- a/gms-client/gms-client-lib/src/test/java/it/inaf/ia2/gms/client/GmsClientTest.java
+++ b/gms-client/gms-client-lib/src/test/java/it/inaf/ia2/gms/client/GmsClientTest.java
@@ -82,7 +82,7 @@ public class GmsClientTest {
     @Test
     public void testCreateGroup() {
 
-        CompletableFuture response = CompletableFuture.completedFuture(getMockedResponse(200));
+        CompletableFuture response = CompletableFuture.completedFuture(getMockedResponse(201));
 
         when(httpClient.sendAsync(any(), any())).thenReturn(response);
         client.createGroup("LBT.INAF", false);
diff --git a/gms/src/main/java/it/inaf/ia2/gms/controller/JWTWebServiceController.java b/gms/src/main/java/it/inaf/ia2/gms/controller/JWTWebServiceController.java
index 8985b3b..4a7a2d6 100644
--- a/gms/src/main/java/it/inaf/ia2/gms/controller/JWTWebServiceController.java
+++ b/gms/src/main/java/it/inaf/ia2/gms/controller/JWTWebServiceController.java
@@ -278,7 +278,7 @@ public class JWTWebServiceController {
         for (int i = 0; i < index + 1; i++) {
             String groupName = groupNames.get(i);
             group = groupsDAO.findGroupByParentAndName(parentPath, groupName)
-                    .orElseThrow(() -> new IllegalArgumentException("Unable to find group " + groupName));
+                    .orElseThrow(() -> new BadRequestException("Unable to find group " + groupName));
             parentPath = group.getPath();
         }
         if (group == null) {
-- 
GitLab