8000 Issue #126: send a more relevant error when the update user's json ha… · githubcs/baasbox@a2ed4ff · GitHub
[go: up one dir, main page]

Skip to content

Commit a2ed4ff

Browse files
committed
Issue baasbox#126: send a more relevant error when the update user's json have missing values
1 parent 521b2e4 commit a2ed4ff

File tree

1 file changed

+31
-5
lines changed

1 file changed

+31
-5
lines changed

app/com/baasbox/controllers/Admin.java

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -364,12 +364,38 @@ public static Result updateUser(String username){
364364
return badRequest("The 'role' field is missing");
365365

366366
//extract fields
367-
JsonNode nonAppUserAttributes = bodyJson.get(UserDao.ATTRIBUTES_VISIBLE_BY_ANONYMOUS_USER);
368-
JsonNode privateAttributes = bodyJson.get(UserDao.ATTRIBUTES_VISIBLE_ONLY_BY_THE_USER);
369-
JsonNode friendsAttributes = bodyJson.get(UserDao.ATTRIBUTES_VISIBLE_BY_FRIENDS_USER);
370-
JsonNode appUsersAttributes = bodyJson.get(UserDao.ATTRIBUTES_VISIBLE_BY_REGISTERED_USER);
367+
String missingField = null;
368+
JsonNode nonAppUserAttributes;
369+
JsonNode privateAttributes;
370+
JsonNode friendsAttributes;
371+
JsonNode appUsersAttributes;
372+
try{
373+
missingField = UserDao.ATTRIBUTES_VISIBLE_BY_ANONYMOUS_USER;
374+
nonAppUserAttributes = bodyJson.get(UserDao.ATTRIBUTES_VISIBLE_BY_ANONYMOUS_USER);
375+
if(nonAppUserAttributes==null){
376+
throw new IllegalArgumentException(missingField);
377+
}
378+
missingField = UserDao.ATTRIBUTES_VISIBLE_ONLY_BY_THE_USER;
379+
privateAttributes = bodyJson.get(UserDao.ATTRIBUTES_VISIBLE_ONLY_BY_THE_USER);
380+
if(privateAttributes==null){
381+
throw new IllegalArgumentException(missingField);
382+
}
383+
missingField = UserDao.ATTRIBUTES_VISIBLE_BY_FRIENDS_USER;
384+
friendsAttributes = bodyJson.get(UserDao.ATTRIBUTES_VISIBLE_BY_FRIENDS_USER);
385+
if(friendsAttributes==null){
386+
throw new IllegalArgumentException(missingField);
387+
}
388+
missingField = UserDao.ATTRIBUTES_VISIBLE_BY_REGISTERED_USER;
389+
appUsersAttributes = bodyJson.get(UserDao.ATTRIBUTES_VISIBLE_BY_REGISTERED_USER);
390+
if(appUsersAttributes==null){
391+
throw new IllegalArgumentException(missingField);
392+
}
393+
394+
}catch(Exception npe){
395+
return badRequest("The '"+ missingField+"' field is missing");
396+
}
371397
String role=(String) bodyJson.findValuesAsText("role").get(0);
372-
398+
373399
if (privateAttributes.has("email")) {
374400
//check if email address is valid
375401
if (!Util.validateEmail((String) (String) privateAttributes.findValuesAsText("email").get(0)) )

0 commit comments

Comments
 (0)
0