Allowing company to connect to multiple users
This commit is contained in:
@@ -34,13 +34,27 @@ public class CompanyDao {
|
||||
private UserWithCompanyRepository userWithCompanyRepository;
|
||||
|
||||
public CompanyResponse createCompany(UserEntity userEntity, CompanyRequest companyRequest) {
|
||||
validateCompany(companyRequest);
|
||||
CompanyEntity companyEntity = convertCompanyRequestToCompanyEntity(companyRequest);
|
||||
companyRepository.save(companyEntity);
|
||||
createUserWithCompanyRelation(userEntity, companyEntity);
|
||||
return convertCompanyEntityToCompanyResponse(companyEntity);
|
||||
CompanyEntity existingCompany = companyRepository.findByVatNumber(companyRequest.getVatNumber());
|
||||
if (existingCompany != null) {
|
||||
UserWithCompanyEntity existingRelation = userWithCompanyRepository.findByUserIdAndCompanyId(userEntity.getId(), existingCompany.getId())
|
||||
.orElse(null);
|
||||
if (existingRelation == null) {
|
||||
createUserWithCompanyRelation(userEntity, existingCompany);
|
||||
} else {
|
||||
throw new CustomValidationException(Status.VALIDATION_ERROR,
|
||||
Translator.toLocale(GepafinConstant.USER_ALREADY_CONNECTED_TO_COMPANY));
|
||||
}
|
||||
return convertCompanyEntityToCompanyResponse(existingCompany);
|
||||
} else {
|
||||
validateCompany(companyRequest);
|
||||
CompanyEntity companyEntity = convertCompanyRequestToCompanyEntity(companyRequest);
|
||||
companyRepository.save(companyEntity);
|
||||
createUserWithCompanyRelation(userEntity, companyEntity);
|
||||
return convertCompanyEntityToCompanyResponse(companyEntity);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void validateCompany(CompanyRequest companyRequest) {
|
||||
|
||||
if (Boolean.FALSE.equals(StringUtils.isEmpty(companyRequest.getEmail()))
|
||||
|
||||
Reference in New Issue
Block a user