An error occurred while loading the file. Please try again.
-
sarojsingh2021 authoreddebfd23a
package com.tarento.retail.controller;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.util.StreamUtils;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.PostMapping;
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 org.springframework.web.context.request.ServletWebRequest;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.tarento.retail.config.JwtTokenUtil;
import com.tarento.retail.dto.CountryDto;
import com.tarento.retail.dto.UserCountryDto;
import com.tarento.retail.dto.UserDto;
import com.tarento.retail.dto.UserMasterRoleCountryOrgDto;
import com.tarento.retail.dto.UserRoleDto;
import com.tarento.retail.model.Action;
import com.tarento.retail.model.Country;
import com.tarento.retail.model.Institute;
import com.tarento.retail.model.LoginUser;
import com.tarento.retail.model.Role;
import com.tarento.retail.model.SearchRequest;
import com.tarento.retail.model.User;
import com.tarento.retail.model.UserDeviceToken;
import com.tarento.retail.model.UserProfile;
import com.tarento.retail.model.contract.OTPValidationRequest;
import com.tarento.retail.model.contract.OrderConfirmationRequest;
import com.tarento.retail.model.contract.RoleActionRequest;
import com.tarento.retail.model.enums.EmploymentType;
import com.tarento.retail.service.ExcelService;
import com.tarento.retail.service.UserService;
import com.tarento.retail.util.Constants;
import com.tarento.retail.util.ExcelHelper;
import com.tarento.retail.util.PathRoutes;
import com.tarento.retail.util.ResponseGenerator;
import com.tarento.retail.util.ResponseMessages;
import com.tarento.retail.util.ValidationService;
@RestController
@RequestMapping(PathRoutes.USER_ACTIONS_URL)
public class UserController {
@Autowired
private UserService userService;
@Autowired
private JwtTokenUtil jwtTokenUtil;
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
@Autowired
private UserDetailsService userDetailsService;
@Autowired
private ValidationService validationService;
@Autowired
private ExcelService excelService;
public static final org.slf4j.Logger logger = LoggerFactory.getLogger(UserController.class);
@PostMapping(PathRoutes.UserRoutes.USER_ACTIONS_POST)
public String getActions(@RequestBody RoleActionRequest roleActionRequest) throws JsonProcessingException {
List<Action> actions = userService.findAllActionsByRoleID(roleActionRequest.getRoleRequest().getRoles());
return ResponseGenerator.successResponse(actions);
}
@RequestMapping(value = PathRoutes.UserRoutes.COUNTRY_LIST_GET, method = RequestMethod.GET)
public String getUserCountryList(@RequestParam(value = "userId", required = false) Long userId,
ServletWebRequest request) throws JsonProcessingException {
if (userId != null)
return ResponseGenerator.successResponse(userService.getCountryListForUser(userId));
else
return ResponseGenerator.successResponse(userService.getCountryList());
}
@RequestMapping(value = PathRoutes.UserRoutes.ORG_COUNTRY_LIST_GET, method = RequestMethod.GET)
public String getOrgCountryList(@RequestParam(value = "orgId", required = false) Long orgId,
ServletWebRequest request) throws JsonProcessingException {
if (orgId != null)
return ResponseGenerator.successResponse(userService.getCountryListForOrg(orgId));
else
return ResponseGenerator.failureResponse("OrgId is empty");
}
@RequestMapping(value = PathRoutes.UserRoutes.USER_COUNTRY_MAPPING_POST, method = RequestMethod.POST)
public String mapUserToCountry(@RequestBody UserCountryDto userCountry, BindingResult result)
throws JsonProcessingException {
if (result.hasErrors()) {
return ResponseGenerator.failureResponse(HttpStatus.UNPROCESSABLE_ENTITY.toString());
}
if (userCountry != null && userCountry.getCountries() != null) {
if (userCountry.getCountries().isEmpty()) {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.COUNTRY_ID_UNAVAILABLE);
}
if (userCountry.getUserId() == null) {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.USER_ID_UNAVAILABLE);
}
} else {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.COUNTRY_DETAILS_UNAVAILABLE);
}
Boolean mappingStatus = userService.mapUserToCountry(userCountry);
if (mappingStatus) {
return ResponseGenerator.successResponse(ResponseMessages.SuccessMessages.USER_COUNTRY_MAPPED);
} else {
return ResponseGenerator.failureResponse(HttpStatus.SERVICE_UNAVAILABLE.toString());
}
}
@RequestMapping(value = PathRoutes.UserRoutes.EMPLOYMENT_TYPES_GET, method = RequestMethod.GET)
public String getEmploymentTypeEnum() throws JsonProcessingException {
final List<Country> modelList = new ArrayList<>();
for (final EmploymentType key : EmploymentType.values()) {
Country data = new Country();
data.setKey(key.name());
modelList.add(data);
}
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
return ResponseGenerator.successResponse(modelList);
}
@RequestMapping(value = PathRoutes.UserRoutes.NUMBER_OF_USERS_GET, method = RequestMethod.GET)
public String getNumberOfUsers(@RequestParam(value = "role", required = false) Long role,
@RequestParam(value = "active", required = false) Boolean active) throws JsonProcessingException {
return ResponseGenerator.successResponse(userService.getNumberOfUsers(role, active));
}
@RequestMapping(value = PathRoutes.UserRoutes.NUMBER_OF_ROLES_GET, method = RequestMethod.GET)
public String getNumberOfRoles() throws JsonProcessingException {
return ResponseGenerator.successResponse(userService.getNumberOfRoles());
}
@RequestMapping(value = PathRoutes.UserRoutes.NUMBER_OF_USERS_ROLES_GET, method = RequestMethod.GET)
public String getNumberOfUserAndRoles() throws JsonProcessingException {
return ResponseGenerator.successResponse(userService.getNumberOfUsersAndRoles());
}
@RequestMapping(value = PathRoutes.UserRoutes.USER_BY_ID_GET, method = RequestMethod.GET)
public String getOne(@RequestParam(value = "id", required = true) Long id,
@RequestParam(value = "orgId", required = false) Long orgId,
@RequestHeader(value = Constants.USER_INFO_HEADER, required = false) String xUserInfo)
throws JsonProcessingException {
if (StringUtils.isNotBlank(xUserInfo)) {
User userInfo = new Gson().fromJson(xUserInfo, User.class);
orgId = Long.parseLong(userInfo.getOrgId());
}
return ResponseGenerator.successResponse(userService.findById(id, orgId));
}
@RequestMapping(value = PathRoutes.UserRoutes.CREATE_UPDATE_USER_POST, method = RequestMethod.POST)
public String saveUser(@RequestBody UserProfile profile,
@RequestHeader(value = Constants.USER_INFO_HEADER, required = false) String xUserInfo,
@RequestHeader(value = Constants.AUTH_HEADER) String authToken) throws JsonProcessingException {
String validation = validationService.validateUserUpsert(profile);
if (validation.equals(Constants.SUCCESS)) {
if (StringUtils.isNotBlank(xUserInfo)) {
User userInfo = new Gson().fromJson(xUserInfo, User.class);
profile.setCreatedBy(userInfo.getId());
profile.setUpdatedBy(userInfo.getId());
profile.setOrgId(userInfo.getOrgId());
}
profile.setUsername(profile.getEmailId());
if (profile.getId() != null && profile.getId() > 0) {
profile = userService.updateUserProfile(profile);
} else {
profile = userService.saveUserProfile(profile);
}
// update user country
if (profile != null && profile.getCountryId() != null) {
UserCountryDto userCountryDto = new UserCountryDto();
userCountryDto.setUserId(profile.getId());
List<Country> country = new ArrayList<>();
Country c = new Country();
c.setId(profile.getCountryId());
country.add(c);
userCountryDto.setCountries(country);
if (!userService.mapUserToCountry(userCountryDto)) {
logger.error("Failed to update user country");
}
}
if (profile != null) {
return ResponseGenerator.successResponse(profile);
}
return ResponseGenerator.failureResponse(Constants.PROCESS_FAIL);
}
211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
return ResponseGenerator.failureResponse(validation);
}
@RequestMapping(value = PathRoutes.UserRoutes.USER_DEVICE_TOKEN_POST, method = RequestMethod.POST)
public String updateDeviceToken(@RequestBody UserDeviceToken deviceToken,
@RequestHeader(value = "x-user-info", required = false) String xUserInfo) throws JsonProcessingException {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
User thisUser = gson.fromJson(xUserInfo, User.class);
if (userService.checkUserTokenExists(thisUser.getId(), deviceToken.getDeviceToken())) {
Long authTokenRef = userService.fetchAuthTokenReference(thisUser.getAuthToken());
userService.updateDeviceAuthRef(thisUser.getId(), deviceToken.getDeviceToken(), authTokenRef);
return ResponseGenerator.successResponse("Success");
}
Long authTokenRef = userService.fetchAuthTokenReference(thisUser.getAuthToken());
Boolean updateStatus = userService.updateUserDeviceToken(thisUser.getId(), deviceToken.getDeviceToken(),
deviceToken.getDeviceId(), authTokenRef);
if (updateStatus)
return ResponseGenerator.successResponse("Success");
return ResponseGenerator.failureResponse(HttpStatus.UNPROCESSABLE_ENTITY.toString());
}
@RequestMapping(value = PathRoutes.UserRoutes.LIST_USER_GET, method = RequestMethod.GET)
public String listUser(@RequestParam(value = "pageNumber", required = false) Integer pageNumber,
@RequestParam(value = "numberOfRecords", required = false) Integer numberOfRecords,
@RequestParam(value = "keyword", required = false) String keyword,
@RequestParam(value = "active", required = false) Boolean active,
@RequestParam(value = "roles", required = false) List<Long> roles,
@RequestParam(value = "countryCode", required = false) String countryCode,
@RequestParam(value = "orgId", required = true) Long orgId) throws JsonProcessingException {
return ResponseGenerator.successResponse(
userService.findAll(pageNumber, numberOfRecords, active, keyword, roles, countryCode, orgId));
}
@RequestMapping(value = PathRoutes.UserRoutes.LIST_USER_GET_V1, method = RequestMethod.POST)
public String listUserV1(@RequestBody SearchRequest searchRequest,
@RequestHeader(value = Constants.USER_INFO_HEADER, required = false) String xUserInfo)
throws JsonProcessingException {
if (StringUtils.isNotBlank(xUserInfo)) {
User userInfo = new Gson().fromJson(xUserInfo, User.class);
if (StringUtils.isNotBlank(userInfo.getOrgId())) {
searchRequest.setOrgId(Long.parseLong(userInfo.getOrgId()));
}
}
if (searchRequest.getOrgId() == null || !(searchRequest.getOrgId() > 0)) {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.ORG_ID_UNAVAILABLE);
}
List<UserProfile> profile = userService.findAll(searchRequest);
if (profile != null) {
return ResponseGenerator.successResponse(profile);
}
return ResponseGenerator.failureResponse(Constants.PROCESS_FAIL);
}
@RequestMapping(value = PathRoutes.UserRoutes.REMOVE_ROLE_MAPPING, method = RequestMethod.POST)
public String deleteUserToRole(@RequestBody UserRoleDto userRole,
@RequestHeader(value = Constants.AUTH_HEADER) String authToken, BindingResult result)
throws JsonProcessingException {
if (result.hasErrors()) {
return ResponseGenerator.failureResponse(HttpStatus.UNPROCESSABLE_ENTITY.toString());
}
Boolean userTokenAvailable = userService.findUserByToken(authToken);
String username = "";
if (userTokenAvailable) {
username = jwtTokenUtil.getUsernameFromToken(authToken);
User user = userService.findOne(username);
if (userRole != null && userRole.getRoles() != null) {
281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
if (userRole.getRoles().isEmpty()) {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.ROLE_ID_UNAVAILABLE);
}
if (userRole.getUserId() == null) {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.USER_ID_UNAVAILABLE);
}
} else {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.ROLE_DETAILS_UNAVAILABLE);
}
Boolean mappingStatus = userService.deleteUserToRole(userRole);
if (mappingStatus) {
return ResponseGenerator.successResponse(ResponseMessages.SuccessMessages.REMOVE_USER_ROLE_MAPPED);
} else {
return ResponseGenerator.failureResponse(HttpStatus.SERVICE_UNAVAILABLE.toString());
}
}
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.UNAUTHORIZED_ROLE_MAPPING_PERMISSION);
}
@RequestMapping(value = PathRoutes.UserRoutes.USER_ROLE_MAPPING_POST, method = RequestMethod.POST)
public String mapUserToRole(@RequestBody UserRoleDto userRole,
@RequestHeader(value = Constants.AUTH_HEADER) String authToken, BindingResult result)
throws JsonProcessingException {
if (result.hasErrors()) {
return ResponseGenerator.failureResponse(HttpStatus.UNPROCESSABLE_ENTITY.toString());
}
Boolean userTokenAvailable = userService.findUserByToken(authToken);
String username = "";
if (userTokenAvailable) {
username = jwtTokenUtil.getUsernameFromToken(authToken);
User user = userService.findOne(username);
if (userRole != null && userRole.getRoles() != null) {
// if (userRole.getRoles().isEmpty()) {
// return
// ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.ROLE_ID_UNAVAILABLE);
// }
if (userRole.getUserId() == null) {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.USER_ID_UNAVAILABLE);
}
} else {
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.ROLE_DETAILS_UNAVAILABLE);
}
Boolean mappingStatus = userService.mapUserToRole(userRole);
if (mappingStatus) {
return ResponseGenerator.successResponse(ResponseMessages.SuccessMessages.USER_ROLE_MAPPED);
} else {
return ResponseGenerator.failureResponse(HttpStatus.SERVICE_UNAVAILABLE.toString());
}
}
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.UNAUTHORIZED_ROLE_MAPPING_PERMISSION);
}
@RequestMapping(value = PathRoutes.UserRoutes.USER_DETAILS_GET, method = RequestMethod.GET)
public String getUserDetails(@RequestParam(value = "userIdList") List<Long> userIdList)
throws JsonProcessingException {
List<UserProfile> profileList = new ArrayList<>();
if (userIdList != null && !userIdList.isEmpty()) {
profileList = userService.findListOfUsers(userIdList);
}
return ResponseGenerator.successResponse(profileList);
}
351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
@PostMapping(PathRoutes.UserRoutes.SINGLE_FILE_UPLOAD_POST)
public String singleFileUpload(@RequestParam("file") MultipartFile file,
@RequestParam(value = "userId", required = true) long userId) throws IOException {
return ResponseGenerator.successResponse(userService.uploadFile(file, userId));
}
@RequestMapping(value = PathRoutes.UserRoutes.IMAGE_GET, method = RequestMethod.GET, produces = MediaType.IMAGE_JPEG_VALUE)
public ResponseEntity<byte[]> getImage(@RequestParam String url) throws IOException {
File file = new File(Constants.UPLOADED_FOLDER + url);
InputStream targetStream = new FileInputStream(file);
byte[] bytes = StreamUtils.copyToByteArray(targetStream);
return ResponseEntity.ok().contentType(MediaType.IMAGE_JPEG).body(bytes);
}
@RequestMapping(value = PathRoutes.UserRoutes.LOGOUT_GET, method = RequestMethod.GET)
public String invalidateToken(@RequestHeader(value = Constants.AUTH_HEADER) String authToken)
throws JsonProcessingException {
Boolean status = false;
if (authToken != null) {
authToken = authToken.replace("Bearer ", "");
status = userService.invalidateToken(authToken);
}
if (status)
return ResponseGenerator.successResponse(ResponseMessages.SuccessMessages.LOGOUT_SUCCESS);
return ResponseGenerator.failureResponse(ResponseMessages.ErrorMessages.LOGOUT_FAILED);
}
/*
* -----------------------------------------------------STUBS---------------
* -----------------------------------------------------
*/
/*
* ------------------------------- Once the B17 Integration is added, these
* stubs will be removed -------------------------------
*/
@RequestMapping(value = "orderConfirmation", method = RequestMethod.POST)
public String orderConfirmation(@RequestBody OrderConfirmationRequest orderConfirmation)
throws JsonProcessingException {
return ResponseGenerator.successResponse("Success");
}
@RequestMapping(value = "otpvalidation", method = RequestMethod.POST)
public String otpValidation(@RequestBody OTPValidationRequest otpValidation) throws JsonProcessingException {
String otp = otpValidation.getOtp();
if (otpValidation.isBypassFlag()) {
return ResponseGenerator.successResponse("Success");
}
if (otp.equals("54321") || otp.equals("8088") || otp.equals("465842") || otp.equals("95000")
|| otp.equals("96971")) {
return ResponseGenerator.successResponse("Success");
}
return ResponseGenerator.failureResponse("Failed");
}
@RequestMapping(value = PathRoutes.UserRoutes.GET_USER_DEVICE_TOKEN, method = RequestMethod.GET)
public String getUsersDeviceToken(@RequestParam(value = "userIds", required = false) List<Long> userIdList)
throws JsonProcessingException {
if (userIdList != null) {
List<UserDeviceToken> tokenList = userService.getDeviceTokenForUsers(userIdList);
if (tokenList != null) {
return ResponseGenerator.successResponse(tokenList);
}
}
return ResponseGenerator.failureResponse();
}
@RequestMapping(value = PathRoutes.UserRoutes.CREATE_UPDATE_COUNTRY, method = RequestMethod.POST)
public String createOrUpdateCountry(@RequestBody CountryDto country) throws JsonProcessingException {
if (country.getId() != null) {
421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490
return ResponseGenerator.successResponse(userService.updateCountry(country));
}
// Check if country already exist
if (userService.checkCountryAlreadyExists(country.getCode(), country.getOrgId())) {
ResponseGenerator.failureResponse("Country With Same Code Exists");
}
return ResponseGenerator.successResponse(userService.createCountry(country));
}
@RequestMapping(value = PathRoutes.AuthenticationRoutes.AUTH_TOKEN_VALIDATE_GET, method = RequestMethod.GET)
public Object validateUserToken(@RequestHeader(value = Constants.AUTH_HEADER) String authToken)
throws JsonProcessingException {
String username = "";
String authTokenInfo = null;
if (StringUtils.isNotBlank(authToken)) {
authTokenInfo = authToken;
Boolean userTokenAvailable = userService.findUserByToken(authTokenInfo);
if (userTokenAvailable)
username = jwtTokenUtil.getUsernameFromToken(authTokenInfo);
}
UserDetails userDetails = userDetailsService.loadUserByUsername(username);
if (jwtTokenUtil.validateToken(authTokenInfo, userDetails)) {
UserDto userDto = new UserDto();
User user = userService.findOne(username);
userDto.setId(user.getId());
userDto.setUserName(user.getUsername());
userDto.setEmailId(user.getEmailId());
userDto.setRoles(userService.findAllRolesByUser(user.getId(), user.getOrgId(), null));
userDto.setActions(userService.findAllActionsByUser(user.getId(), user.getOrgId()));
userDto.setOrgId(user.getOrgId());
userDto.setTimeZone(user.getTimeZone());
// System.out.println("--------time zone------"+userDto.getTimeZone());
return ResponseGenerator.successResponse(userDto);
}
return ResponseGenerator.failureResponse("Invalid Token");
}
// DELETE country by orgId and country ID
@RequestMapping(value = PathRoutes.UserRoutes.DELETE_COUNTRY, method = RequestMethod.POST)
public Object deleteCountryForOrg(@RequestBody CountryDto countryDto,
@RequestHeader(value = Constants.AUTH_HEADER) String authToken, BindingResult result)
throws JsonProcessingException {
if (result.hasErrors()) {
return ResponseGenerator.failureResponse(HttpStatus.UNPROCESSABLE_ENTITY.toString());
}
Boolean userTokenAvailable = userService.findUserByToken(authToken);
String username = "";
if (userTokenAvailable) {
username = jwtTokenUtil.getUsernameFromToken(authToken);
User user = userService.findOne(username);
return ResponseGenerator.successResponse(userService.deleteCountryForOrg(countryDto));
}
return ResponseGenerator.failureResponse("Invalid Token");
}
// DELETE user
@RequestMapping(value = PathRoutes.UserRoutes.DELETE_USER, method = RequestMethod.POST)
public Object deleteUser(@RequestBody UserDto userDto,
@RequestHeader(value = Constants.AUTH_HEADER) String authToken, BindingResult result)
throws JsonProcessingException {
if (result.hasErrors()) {
return ResponseGenerator.failureResponse(HttpStatus.UNPROCESSABLE_ENTITY.toString());
}
Boolean userTokenAvailable = userService.findUserByToken(authToken);
String username = "";
if (userTokenAvailable) {
username = jwtTokenUtil.getUsernameFromToken(authToken);
491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560
User user = userService.findOne(username);
return ResponseGenerator.successResponse(userService.deleteUser(userDto));
}
return ResponseGenerator.failureResponse("Invalid Token");
}
// DELETE user
@RequestMapping(value = PathRoutes.UserRoutes.ADMIN_DELETE_USER, method = RequestMethod.POST)
public Object softDeleteUser(@RequestBody UserDto userDto,
@RequestHeader(value = Constants.AUTH_HEADER) String authToken, BindingResult result)
throws JsonProcessingException {
if (result.hasErrors()) {
return ResponseGenerator.failureResponse(HttpStatus.UNPROCESSABLE_ENTITY.toString());
}
if (userService.softDeleteUser(userDto)) {
return ResponseGenerator.successResponse(true);
}
return ResponseGenerator.failureResponse("Invalid Token");
}
// User List based on ROLE and Org Domain
@RequestMapping(value = PathRoutes.UserRoutes.GET_USERS_BY_MASTER_ROLE, method = RequestMethod.GET)
public Object getUsersBasedOnManagerRole(@RequestParam(value = "role", required = true) String roleCode,
@RequestParam(value = "orgId", required = true) long orgId,
@RequestHeader(value = Constants.AUTH_HEADER) String authToken) throws JsonProcessingException {
Boolean userTokenAvailable = userService.findUserByToken(authToken);
String username = "";
if (userTokenAvailable) {
username = jwtTokenUtil.getUsernameFromToken(authToken);
User user = userService.findOne(username);
return ResponseGenerator.successResponse(userService.getUsersByMasterRole(roleCode, orgId));
}
return ResponseGenerator.failureResponse("Invalid Token");
}
// Map user to country by master role id
@RequestMapping(value = PathRoutes.UserRoutes.MAP_USER_MASTER_ROLE_COUNTRY_ORG, method = RequestMethod.POST)
public Object mapUserMasterRoleCountryOrg(@RequestBody UserMasterRoleCountryOrgDto userMasterRoleCountryOrgDto,
@RequestHeader(value = Constants.AUTH_HEADER) String authToken, BindingResult result)
throws JsonProcessingException {
if (result.hasErrors()) {
return ResponseGenerator.failureResponse(HttpStatus.UNPROCESSABLE_ENTITY.toString());
}
Boolean userTokenAvailable = userService.findUserByToken(authToken);
String username = "";
if (userTokenAvailable) {
username = jwtTokenUtil.getUsernameFromToken(authToken);
User user = userService.findOne(username);
return ResponseGenerator
.successResponse(userService.mapUserMasterRoleCountryOrg(userMasterRoleCountryOrgDto));
}
return ResponseGenerator.failureResponse("Invalid Token");
}
// GET MASTER ROLE
@RequestMapping(value = PathRoutes.RoleActionRoutes.GET_MASTER_ROLE_BY_ORG_DOMAIN, method = RequestMethod.GET)
public Object getMasterRoleBasedOnOrgDomain(@RequestParam Long org_domain_id,
@RequestHeader(value = Constants.AUTH_HEADER) String authToken) throws JsonProcessingException {
Boolean userTokenAvailable = userService.findUserByToken(authToken);
String username = "";
if (userTokenAvailable) {
username = jwtTokenUtil.getUsernameFromToken(authToken);
User user = userService.findOne(username);
return ResponseGenerator.successResponse(userService.getMasterRoleByOrgDomainId(org_domain_id));
}
561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630
return ResponseGenerator.failureResponse("Invalid Token");
}
@RequestMapping(value = PathRoutes.UserRoutes.REQUEST_OTP, method = RequestMethod.POST)
public String requestOTP(@RequestBody LoginUser loginUser) throws JsonProcessingException {
if (StringUtils.isNotBlank(loginUser.getUsername())) {
User user = userService.getUserByEmailId(loginUser.getUsername());
if(user != null) {
if(!user.getIsDeleted()) {
Boolean authorized = Boolean.FALSE;
// Mobile login validation
if (loginUser.getIsMobile() != null && loginUser.getIsMobile()) {
// Allow only inspector role
List<Role> userRoles = userService.findAllRolesByUser(null, null, loginUser.getUsername());
if (userRoles != null && userRoles.size() > 0) {
for (Role role : userRoles) {
if (role.getName().equalsIgnoreCase(Constants.UserRoles.INSPECTOR.name())) {
authorized = Boolean.TRUE;
break;
}
}
}
} else {
authorized = Boolean.TRUE;
}
// send otp
if (authorized) {
if (userService.requestOTP(loginUser.getUsername())) {
return ResponseGenerator.successResponse("OTP sent successfully!");
}
return ResponseGenerator.failureResponse("Failed to send OTP.");
}
}else {
return ResponseGenerator.failureResponse(Constants.DELETED_USER);
}
}else {
return ResponseGenerator.failureResponse(Constants.UNAUTHORIZED_USER);
}
return ResponseGenerator.failureResponse(Constants.UNAUTHORIZED_USER);
} else {
return ResponseGenerator.failureResponse("Email id missing");
}
}
@RequestMapping(value = PathRoutes.UserRoutes.GENERATE_PIN, method = RequestMethod.POST)
public String generatePin(@RequestBody LoginUser loginUser) throws JsonProcessingException {
if (StringUtils.isNotBlank(loginUser.getUsername()) && String.valueOf(loginUser.getPin()).length() == 4
&& StringUtils.isNotBlank(loginUser.getOtp())) {
Long userId = userService.checkUserNameExists(loginUser.getUsername(), null);
if (userId != 0L && userService.validateUserOTP(loginUser.getUsername(), loginUser.getOtp())) {
return ResponseGenerator.successResponse(userService.setUserPin(loginUser.getPin(), userId));
}
return ResponseGenerator.failureResponse(Constants.UNAUTHORIZED_USER);
}
return ResponseGenerator.failureResponse("Check your request params");
}
@RequestMapping(value = PathRoutes.UserRoutes.DELETE_USER_DEVICE_TOKEN, method = RequestMethod.DELETE)
public String deleteDeviceToken(@RequestParam String deviceId,
@RequestHeader(value = "x-user-info", required = true) String xUserInfo) throws JsonProcessingException {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
User thisUser = gson.fromJson(xUserInfo, User.class);
Boolean response = userService.deleteDeviceToken(thisUser.getId(), deviceId);
631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664
if (response)
return ResponseGenerator.successResponse("Success");
return ResponseGenerator.failureResponse(HttpStatus.UNPROCESSABLE_ENTITY.toString());
}
@RequestMapping(value = PathRoutes.UserRoutes.CREATE_BULK_INSTITUTE, method = RequestMethod.POST)
public String createBulkInstitute(@RequestParam("file") MultipartFile file,@RequestParam("roleId") Long roleId,
@RequestHeader(value = Constants.USER_INFO_HEADER, required = false) String xUserInfo,
@RequestHeader(value = Constants.AUTH_HEADER) String authToken) throws JsonProcessingException {
String message = "";
if (ExcelHelper.hasExcelFormat(file)) {
try {
excelService.bulkCreateInstitute(file, xUserInfo,roleId);
message = "Uploaded the file successfully: " + file.getOriginalFilename();
return ResponseGenerator.successResponse("Success");
} catch (Exception e) {
e.printStackTrace();
message = "Could not upload the file: " + file.getOriginalFilename() + "!";
return ResponseGenerator.failureResponse(message);
}
}
message = "Please upload an excel file!";
return ResponseGenerator.failureResponse(message);
}
}