diff --git a/core/platform-common/src/main/java/org/sunbird/keys/JsonKey.java b/core/platform-common/src/main/java/org/sunbird/keys/JsonKey.java index 0a7d8e1d6e..106320ce93 100644 --- a/core/platform-common/src/main/java/org/sunbird/keys/JsonKey.java +++ b/core/platform-common/src/main/java/org/sunbird/keys/JsonKey.java @@ -643,7 +643,6 @@ public final class JsonKey { public static final String LAST_LOGIN = "last_login"; public static final String FIRST_LOGIN = "first_login"; public static final String EDATA = "edata"; - public static final String SELF_REGISTRATION = "self_registration"; public static final String CREATEDBY = "createdby"; public static final String CONTEXT_TYPE = "contextType"; @@ -651,5 +650,6 @@ public final class JsonKey { public static final String CONTEXT_TOKEN = "contextToken"; public static final String OTP_VALIDATION_SECRET_KEY = "otpValidationSecretKey"; public static final String OTP_EXPIRATION_TIME_TOKEN = "otpExpirationTimeToken"; + public static final String PERSONAL_DETAILS = "personalDetails"; private JsonKey() {} } diff --git a/service/src/main/java/org/sunbird/actor/user/validator/UserRequestValidator.java b/service/src/main/java/org/sunbird/actor/user/validator/UserRequestValidator.java index 02c7f8de32..b71ed37ad3 100644 --- a/service/src/main/java/org/sunbird/actor/user/validator/UserRequestValidator.java +++ b/service/src/main/java/org/sunbird/actor/user/validator/UserRequestValidator.java @@ -62,6 +62,7 @@ public void validateCreateUserRequest(Request userRequest) { validateUserType(userRequest.getRequest(), null, userRequest.getRequestContext()); phoneValidation(userRequest); validatePassword((String) userRequest.getRequest().get(JsonKey.PASSWORD)); + formatFirstName(userRequest); } public static boolean isGoodPassword(String password) { @@ -80,6 +81,20 @@ private void validatePassword(String password) { } } + private void formatFirstName(Request userRequest) { + String firstName = (String) userRequest.getRequest().get(JsonKey.FIRST_NAME); + String[] words = firstName.split("\\s+"); + StringBuilder modifiedFirstName = new StringBuilder(); + for (String word : words) { + if (word.length() > 0) { + modifiedFirstName.append(Character.toUpperCase(word.charAt(0))) + .append(word.substring(1).toLowerCase()) + .append(" "); + } + } + userRequest.getRequest().put(JsonKey.FIRST_NAME,modifiedFirstName.toString()); + } + /** * This method will validate location type * @@ -437,6 +452,9 @@ private void updateUserBasicValidation(Request userRequest) { ResponseCode.mandatoryParamsMissing, MessageFormat.format( ResponseCode.mandatoryParamsMissing.getErrorMessage(), JsonKey.FIRST_NAME)); + } else if (userRequest.getRequest().containsKey(JsonKey.FIRST_NAME) + && (StringUtils.isNotBlank((String) userRequest.getRequest().get(JsonKey.FIRST_NAME)))){ + formatFirstName(userRequest); } if ((userRequest.getRequest().containsKey(JsonKey.EMAIL) diff --git a/service/src/main/java/org/sunbird/service/user/impl/ExtendedUserProfileServiceImpl.java b/service/src/main/java/org/sunbird/service/user/impl/ExtendedUserProfileServiceImpl.java index 30511fd40f..f52487571e 100644 --- a/service/src/main/java/org/sunbird/service/user/impl/ExtendedUserProfileServiceImpl.java +++ b/service/src/main/java/org/sunbird/service/user/impl/ExtendedUserProfileServiceImpl.java @@ -19,6 +19,13 @@ public class ExtendedUserProfileServiceImpl implements ExtendedUserProfileServic public void validateProfile(Request userRequest) { if (userRequest!=null && userRequest.get(JsonKey.PROFILE_DETAILS)!=null) { try{ + Map profileDetails = (Map) userRequest.get(JsonKey.PROFILE_DETAILS); + if (profileDetails.get(JsonKey.PERSONAL_DETAILS) != null) { + Map personalDetails = (Map) profileDetails.get(JsonKey.PERSONAL_DETAILS); + if (personalDetails.get(JsonKey.FIRST_NAME) != null) { + personalDetails.put(JsonKey.FIRST_NAME, formatFirstName((String) profileDetails.get(JsonKey.FIRST_NAME))); + } + } String userProfile = mapper.writeValueAsString(userRequest.getRequest().get(JsonKey.PROFILE_DETAILS)); JSONObject obj = new JSONObject(userProfile); UserExtendedProfileSchemaValidator.validate(SCHEMA, obj); @@ -33,4 +40,17 @@ public void validateProfile(Request userRequest) { } } } + + private String formatFirstName(String firstName) { + String[] words = firstName.split("\\s+"); + StringBuilder modifiedFirstName = new StringBuilder(); + for (String word : words) { + if (word.length() > 0) { + modifiedFirstName.append(Character.toUpperCase(word.charAt(0))) + .append(word.substring(1).toLowerCase()) + .append(" "); + } + } + return modifiedFirstName.toString(); + } } \ No newline at end of file