From 4e7ee29ea0854eaed12fc4d18703e932da85abe0 Mon Sep 17 00:00:00 2001 From: harish Date: Tue, 1 Oct 2024 14:57:08 +0530 Subject: [PATCH] Add company data to user response in API --- .../net/gepafin/tendermanagement/dao/UserDao.java | 15 ++++++++++++--- .../model/response/LoginResponse.java | 3 +++ .../model/response/UserResponseBean.java | 2 ++ .../service/impl/AuthenticationService.java | 10 ++++++++-- .../resources/application-production.properties | 2 +- 5 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/gepafin/tendermanagement/dao/UserDao.java b/src/main/java/net/gepafin/tendermanagement/dao/UserDao.java index 8ce47e3b..53825d01 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/UserDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/UserDao.java @@ -10,12 +10,14 @@ import net.gepafin.tendermanagement.entities.UserEntity; import net.gepafin.tendermanagement.enums.RoleStatusEnum; import net.gepafin.tendermanagement.enums.UserStatusEnum; import net.gepafin.tendermanagement.model.request.*; +import net.gepafin.tendermanagement.model.response.CompanyResponse; import net.gepafin.tendermanagement.model.response.RoleResponseBean; import net.gepafin.tendermanagement.model.response.UserSamlResponse; import net.gepafin.tendermanagement.model.response.UserResponseBean; import net.gepafin.tendermanagement.model.util.JWTToken; import net.gepafin.tendermanagement.repositories.BeneficiaryRepository; import net.gepafin.tendermanagement.repositories.UserRepository; +import net.gepafin.tendermanagement.service.CompanyService; import net.gepafin.tendermanagement.service.impl.AuthenticationService; import net.gepafin.tendermanagement.util.Utils; import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException; @@ -27,18 +29,22 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.stereotype.Component; import org.springframework.stereotype.Repository; +import java.util.List; + import static net.gepafin.tendermanagement.util.Utils.setIfUpdated; -@Repository +@Component public class UserDao { private final Logger log = LoggerFactory.getLogger(UserDao.class); @Autowired private UserRepository userRepository; - + @Autowired + private CompanyDao companyDao; @Autowired private AuthenticationService authService; @@ -77,8 +83,9 @@ public class UserDao { beneficiaryEntity.setLastName(userReq.getLastName()); beneficiaryEntity.setOrganization(userReq.getOrganization()); beneficiaryEntity.setPhoneNumber(userReq.getPhoneNumber()); + beneficiaryEntity =beneficiaryRepository.save(beneficiaryEntity); } - return beneficiaryRepository.save(beneficiaryEntity); + return beneficiaryEntity; } private void validateUserRequest(String tempToken, UserReq userReq) { @@ -188,6 +195,8 @@ public class UserDao { RoleResponseBean roleResponseBean = roleDao.convertRoleEntityToRoleResponse(userEntity.getRoleEntity()); userResponseBean.setRole(roleResponseBean); userResponseBean.setLastLogin(userEntity.getLastLogin()); + List companyResponseBeans = companyDao.getCompanyByUserId(userEntity.getId()); + userResponseBean.setCompanies(companyResponseBeans); if (userEntity.getBeneficiary() == null) { userResponseBean.setFirstName(userEntity.getFirstName()); userResponseBean.setLastName(userEntity.getLastName()); diff --git a/src/main/java/net/gepafin/tendermanagement/model/response/LoginResponse.java b/src/main/java/net/gepafin/tendermanagement/model/response/LoginResponse.java index 6317724e..d9cf63e9 100644 --- a/src/main/java/net/gepafin/tendermanagement/model/response/LoginResponse.java +++ b/src/main/java/net/gepafin/tendermanagement/model/response/LoginResponse.java @@ -6,6 +6,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; import java.time.LocalDateTime; +import java.util.List; @Getter @Setter @@ -43,4 +44,6 @@ public class LoginResponse { private LocalDateTime createdDate; private LocalDateTime updatedDate; + + private List companies; } diff --git a/src/main/java/net/gepafin/tendermanagement/model/response/UserResponseBean.java b/src/main/java/net/gepafin/tendermanagement/model/response/UserResponseBean.java index 565e2561..c0457120 100644 --- a/src/main/java/net/gepafin/tendermanagement/model/response/UserResponseBean.java +++ b/src/main/java/net/gepafin/tendermanagement/model/response/UserResponseBean.java @@ -6,6 +6,7 @@ import net.gepafin.tendermanagement.enums.UserStatusEnum; import net.gepafin.tendermanagement.model.BaseBean; import java.time.LocalDateTime; +import java.util.List; @Getter @Setter @@ -37,4 +38,5 @@ public class UserResponseBean extends BaseBean { private LocalDateTime dateOfBirth; + private List companies; } diff --git a/src/main/java/net/gepafin/tendermanagement/service/impl/AuthenticationService.java b/src/main/java/net/gepafin/tendermanagement/service/impl/AuthenticationService.java index 96c0ce05..a84b325c 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/impl/AuthenticationService.java +++ b/src/main/java/net/gepafin/tendermanagement/service/impl/AuthenticationService.java @@ -5,11 +5,13 @@ import jakarta.servlet.http.HttpServletResponse; import net.gepafin.tendermanagement.config.Translator; import net.gepafin.tendermanagement.config.jwt.TokenProvider; import net.gepafin.tendermanagement.constants.GepafinConstant; +import net.gepafin.tendermanagement.dao.CompanyDao; import net.gepafin.tendermanagement.dao.RoleDao; import net.gepafin.tendermanagement.entities.SamlResponseEntity; import net.gepafin.tendermanagement.entities.UserEntity; import net.gepafin.tendermanagement.enums.UserStatusEnum; import net.gepafin.tendermanagement.model.request.LoginReq; +import net.gepafin.tendermanagement.model.response.CompanyResponse; import net.gepafin.tendermanagement.model.response.LoginResponse; import net.gepafin.tendermanagement.model.response.RoleResponseBean; import net.gepafin.tendermanagement.model.response.UserSamlResponse; @@ -42,13 +44,15 @@ public class AuthenticationService { private final TokenProvider tokenProvider; private final AuthenticationManager authenticationManager; + @Autowired + private CompanyDao companyDao; @Autowired private UserRepository userRepository; @Autowired private RoleDao roleDao; - + @Autowired private SamlResponseRepository samlResponseLogRepository; @@ -90,10 +94,12 @@ public class AuthenticationService { return jwtToken; } - private static LoginResponse getLoginResponse(UserEntity user, RoleResponseBean roleResponseBean) { + private LoginResponse getLoginResponse(UserEntity user, RoleResponseBean roleResponseBean) { LoginResponse loginResponse = new LoginResponse(); loginResponse.setEmail(user.getEmail()); loginResponse.setId(user.getId()); + List companyResponseBeans = companyDao.getCompanyByUserId(user.getId()); + loginResponse.setCompanies(companyResponseBeans); loginResponse.setRole(roleResponseBean); loginResponse.setStatus(user.getStatus()); loginResponse.setLastLogin(user.getLastLogin()); diff --git a/src/main/resources/application-production.properties b/src/main/resources/application-production.properties index 8de9367a..8acc1e0c 100644 --- a/src/main/resources/application-production.properties +++ b/src/main/resources/application-production.properties @@ -9,4 +9,4 @@ spring.h2.console.enabled=true base-url=http://bandi-api.gepafin.it isVatCheckGloballyDisabled = false -fe.base.url=http://bandi.gepafin.it \ No newline at end of file +fe.base.url=http://gepafin-production-fe.s3-website.eu-central-1.amazonaws.com \ No newline at end of file