An error occurred while loading the file. Please try again.
-
nivetha authored6c7c35c8
package com.tarento.retail.controller;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.AuthenticationException;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.google.gson.Gson;
import com.tarento.retail.dto.CreateOrgResponse;
import com.tarento.retail.dto.RoleActionDto;
import com.tarento.retail.model.Action;
import com.tarento.retail.model.Role;
import com.tarento.retail.model.User;
import com.tarento.retail.service.RoleActionService;
import com.tarento.retail.util.Constants;
import com.tarento.retail.util.CustomException;
import com.tarento.retail.util.CustomResponse;
import com.tarento.retail.util.PathRoutes;
import com.tarento.retail.util.ResponseGenerator;
import com.tarento.retail.util.ResponseMessages;
@RestController
@RequestMapping(PathRoutes.USER_ACTIONS_URL)
public class RoleActionController {
public static final Logger LOGGER = LoggerFactory.getLogger(RoleActionController.class);
@Autowired
private RoleActionService roleActionService;
@RequestMapping(value = PathRoutes.RoleActionRoutes.LIST_ROLES_GET, method = RequestMethod.GET)
public List<Role> listRoles(@PathVariable(value = "orgId") Long orgCode) {
return roleActionService.getAllRoles(orgCode);
}
@RequestMapping(value = PathRoutes.RoleActionRoutes.GET_ALL_ROLES, method = RequestMethod.GET)
public String listRoles(@RequestHeader(value = Constants.USER_INFO_HEADER, required = false) String xUserInfo)
throws JsonProcessingException {
Long orgId = null;
if (StringUtils.isNotBlank(xUserInfo)) {
User userInfo = new Gson().fromJson(xUserInfo, User.class);
orgId = Long.parseLong(userInfo.getOrgId());
}
orgId = 1L;
List<Role> rolesList = roleActionService.getAllRoles(orgId);
if (rolesList != null) {
return ResponseGenerator.successResponse(rolesList);
}
return ResponseGenerator.failureResponse(Constants.PROCESS_FAIL);
}
@RequestMapping(value = PathRoutes.RoleActionRoutes.GET_DEFAULT_ROLES_BY_DOMAIN, method = RequestMethod.GET)
public Object listRolesByDomain(@RequestParam(value = "orgDomain") String orgDomain)
throws JsonProcessingException {
try {
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
return ResponseGenerator.successResponse(roleActionService.getAllRolesByDomain(orgDomain));
} catch (JsonProcessingException e) {
LOGGER.error("Exception in listRolesByDomain :" + e.getMessage());
}
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.ORG_DOMAIN_CODE_UNAVAILABLE);
}
@RequestMapping(value = PathRoutes.RoleActionRoutes.ADD_ROLE_POST, method = RequestMethod.POST)
public String saveRole(@RequestBody Role role, BindingResult result)
throws AuthenticationException, JsonProcessingException {
if (result.hasErrors()) {
return ResponseGenerator.failureResponse(HttpStatus.UNPROCESSABLE_ENTITY.toString());
}
if (role != null) {
if (StringUtils.isBlank(role.getName())) {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.ROLE_NAME_UNAVAILABLE);
}
} else {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.ROLE_DETAILS_UNAVAILABLE);
}
Role savedRole = roleActionService.saveRole(role);
if (savedRole != null) {
List<Role> savedRoles = new ArrayList<>();
savedRoles.add(savedRole);
return ResponseGenerator.successResponse(savedRoles);
} else {
return ResponseGenerator.failureResponse(HttpStatus.SERVICE_UNAVAILABLE.toString());
}
}
@RequestMapping(value = PathRoutes.RoleActionRoutes.ROLE_BY_ID_GET, method = RequestMethod.GET)
public String getOne(@PathVariable(value = "id") Long id) throws JsonProcessingException {
return ResponseGenerator.successResponse(roleActionService.findById(id));
}
@RequestMapping(value = PathRoutes.RoleActionRoutes.UPDATE_ROLE_POST, method = RequestMethod.PUT)
public String update(@RequestBody Role role, BindingResult result)
throws AuthenticationException, JsonProcessingException {
if (result.hasErrors()) {
return ResponseGenerator.failureResponse(HttpStatus.UNPROCESSABLE_ENTITY.toString());
}
if (role != null) {
if (role.getId() == null) {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.ROLE_ID_UNAVAILABLE);
}
if (StringUtils.isBlank(role.getName())) {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.ROLE_NAME_UNAVAILABLE);
}
if (role.getId() <= 0) {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.ROLE_ID_INVALID);
}
} else {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.ROLE_DETAILS_UNAVAILABLE);
}
Role savedRole = roleActionService.updateRole(role);
if (savedRole != null) {
List<Object> savedRoles = new ArrayList<>();
savedRoles.add(savedRole);
return ResponseGenerator.successResponse(savedRoles);
} else {
return ResponseGenerator.failureResponse(HttpStatus.SERVICE_UNAVAILABLE.toString());
}
}
// This API is not in use and needs to be rewritten ..... !
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
@RequestMapping(value = PathRoutes.RoleActionRoutes.NEW_ACTION_POST, method = RequestMethod.POST)
public ResponseEntity<?> saveAction(@RequestBody Action action, BindingResult result)
throws AuthenticationException {
if (result.hasErrors()) {
return new ResponseEntity<>(HttpStatus.UNPROCESSABLE_ENTITY);
}
List<CustomException> validationExceptions = new ArrayList<>();
if (action != null) {
if (StringUtils.isBlank("")) {
CustomException exception = new CustomException(ResponseMessages.ErrorMessages.CUSTOM_ERROR_ID,
ResponseMessages.ErrorMessages.FEATURE_NAME_UNAVAILABLE, ResponseMessages.UNAVAILABLE, null);
validationExceptions.add(exception);
}
if (StringUtils.isBlank("")) {
CustomException exception = new CustomException(ResponseMessages.ErrorMessages.CUSTOM_ERROR_ID,
ResponseMessages.ErrorMessages.FEATURE_CODE_UNAVAILABLE, ResponseMessages.UNAVAILABLE, null);
validationExceptions.add(exception);
}
// if(StringUtils.isBlank(action.getUrl())) {
// CustomException exception = new
// CustomException(ResponseMessages.ErrorMessages.CUSTOM_ERROR_ID,
// ResponseMessages.ErrorMessages.FEATURE_URL_UNAVAILABLE,
// ResponseMessages.UNAVAILABLE, null);
// validationExceptions.add(exception);
// }
} else {
CustomException exception = new CustomException(ResponseMessages.ErrorMessages.CUSTOM_ERROR_ID,
ResponseMessages.ErrorMessages.FEATURE_DETAILS_UNAVAILABLE, ResponseMessages.UNAVAILABLE, null);
validationExceptions.add(exception);
}
if (!validationExceptions.isEmpty()) {
return new ResponseEntity<>(validationExceptions, HttpStatus.BAD_REQUEST);
}
Action savedAction = roleActionService.saveAction(action);
if (savedAction != null) {
List<Object> savedActions = new ArrayList<>();
savedActions.add(savedAction);
return new ResponseEntity<>(new CustomResponse(HttpStatus.OK.toString(),
ResponseMessages.SuccessMessages.ACTION_ADDED, savedActions), HttpStatus.OK);
} else {
CustomException exception = new CustomException(ResponseMessages.ErrorMessages.CUSTOM_ERROR_ID,
ResponseMessages.ErrorMessages.FEATURE_DETAILS_NOTSAVED, ResponseMessages.INTERNAL_ERROR, null);
validationExceptions.add(exception);
return new ResponseEntity<>(validationExceptions, HttpStatus.SERVICE_UNAVAILABLE);
}
}
// DELETE Role API by orgId and country ID
@RequestMapping(value = PathRoutes.RoleActionRoutes.DELETE_ROLE_POST, method = RequestMethod.POST)
public Object deleteRole(@RequestBody Role role, @RequestHeader(value = Constants.AUTH_HEADER) String authToken,
BindingResult result) throws JsonProcessingException {
if (result.hasErrors()) {
return ResponseGenerator.failureResponse(HttpStatus.UNPROCESSABLE_ENTITY.toString());
}
if (role != null) {
if (StringUtils.isBlank(role.getId().toString())) {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.ROLE_ID_UNAVAILABLE);
}
}
return ResponseGenerator.successResponse(roleActionService.deleteRole(role));
}
// GET MAPPED ACTION LIST
@RequestMapping(value = PathRoutes.RoleActionRoutes.GET_MAP_ACTION_LIST, method = RequestMethod.GET)
public Object getMappedActionToRole(@RequestParam(value = "role_id", required = false) Long role_id,
@RequestHeader(value = Constants.AUTH_HEADER) String authToken) throws JsonProcessingException {
if (StringUtils.isBlank(role_id.toString())) {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.ROLE_ID_UNAVAILABLE);
211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
}
return ResponseGenerator.successResponse(roleActionService.getMappedActionToRole(role_id));
}
// GET UNMAPPED ACTION LIST
@RequestMapping(value = PathRoutes.RoleActionRoutes.GET_UNMAP_ACTION_LIST, method = RequestMethod.GET)
public Object getUnmappedActionToRole(@RequestParam(value = "role_id", required = false) Long role_id,
@RequestHeader(value = Constants.AUTH_HEADER) String authToken) throws JsonProcessingException {
if (StringUtils.isBlank(role_id.toString())) {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.ROLE_ID_UNAVAILABLE);
}
return ResponseGenerator.successResponse(roleActionService.getUnmappedActionToRole(role_id));
}
// Map Action to Role
@RequestMapping(value = PathRoutes.RoleActionRoutes.MAP_ACTION_TO_ROLE, method = RequestMethod.POST)
public Object mapActionToRole(@RequestBody RoleActionDto role,
@RequestHeader(value = Constants.AUTH_HEADER) String authToken) throws JsonProcessingException {
if (StringUtils.isBlank(role.getRoleId().toString())) {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.ROLE_ID_UNAVAILABLE);
}
return ResponseGenerator.successResponse(roleActionService.mapActionToRole(role));
}
// Unmap Action From Role
@RequestMapping(value = PathRoutes.RoleActionRoutes.UNMAP_ACTION_TO_ROLE, method = RequestMethod.POST)
public Object unmapActionToRole(@RequestBody RoleActionDto role,
@RequestHeader(value = Constants.AUTH_HEADER) String authToken) throws JsonProcessingException {
if (StringUtils.isBlank(role.getRoleId().toString())) {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.ROLE_ID_UNAVAILABLE);
}
return ResponseGenerator.successResponse(roleActionService.unmapActionFromRole(role));
}
// GET USER LIST By ROLE_ID AND ORG_ID
@RequestMapping(value = PathRoutes.RoleActionRoutes.GET_USER_BY_ROLE_POST, method = RequestMethod.POST)
public Object getUsersByRoleIdAndOrgId(@RequestBody Role role,
@RequestHeader(value = Constants.AUTH_HEADER) String authToken) throws JsonProcessingException {
if (StringUtils.isBlank(role.getId().toString())) {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.ROLE_ID_UNAVAILABLE);
}
if (StringUtils.isBlank(role.getOrgId().toString())) {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.ORG_ID_UNAVAILABLE);
}
return ResponseGenerator.successResponse(roleActionService.getUsersByRoleId(role));
}
// Role Creation from Org Domain
@RequestMapping(value = PathRoutes.RoleActionRoutes.ADD_ORG_DOMAIN_ROLES, method = RequestMethod.POST)
public Object createRolesFromDomainRoleList(@RequestBody CreateOrgResponse res) throws JsonProcessingException {
if (StringUtils.isBlank(res.getId().toString())) {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.ORG_ID_UNAVAILABLE);
}
if (StringUtils.isBlank(res.getOrgDomain().toString())) {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.ORG_DOMAIN_CODE_UNAVAILABLE);
}
return ResponseGenerator.successResponse(roleActionService.addRolesFromOrgDomain(res));
}
}