This commit is contained in:
@@ -10,14 +10,20 @@ import ru.soune.nocopy.dto.register.LoginAnswer;
|
||||
import ru.soune.nocopy.dto.register.LoginRequest;
|
||||
import ru.soune.nocopy.dto.register.RegRequest;
|
||||
import ru.soune.nocopy.entity.company.Company;
|
||||
import ru.soune.nocopy.entity.tarif.TariffInfo;
|
||||
import ru.soune.nocopy.entity.tarif.TariffType;
|
||||
import ru.soune.nocopy.entity.user.AuthToken;
|
||||
import ru.soune.nocopy.entity.user.Permission;
|
||||
import ru.soune.nocopy.entity.user.User;
|
||||
import ru.soune.nocopy.exception.NotFoundAuthToken;
|
||||
import ru.soune.nocopy.exception.NotValidFieldException;
|
||||
import ru.soune.nocopy.repository.AuthTokenRepository;
|
||||
import ru.soune.nocopy.repository.CompanyRepository;
|
||||
import ru.soune.nocopy.repository.TariffInfoRepository;
|
||||
import ru.soune.nocopy.repository.UserRepository;
|
||||
import ru.soune.nocopy.service.file.CheckCounterService;
|
||||
import ru.soune.nocopy.service.tariff.TariffInfoService;
|
||||
import ru.soune.nocopy.service.tariff.TariffService;
|
||||
|
||||
import java.security.SecureRandom;
|
||||
import java.time.LocalDateTime;
|
||||
@@ -37,6 +43,10 @@ public class AuthService {
|
||||
|
||||
private final CheckCounterService checkCounterService;
|
||||
|
||||
private final TariffInfoRepository tariffInfoRepository;
|
||||
|
||||
private final TariffInfoService tariffInfoService;
|
||||
|
||||
private final SecureRandom secureRandom = new SecureRandom();
|
||||
|
||||
@Transactional
|
||||
@@ -48,20 +58,20 @@ public class AuthService {
|
||||
user.setActive(true);
|
||||
user.setEmailVerified(true);
|
||||
|
||||
if (registerRequest.getCompanyName() != null &&
|
||||
AccountType.valueOf(registerRequest.getAccountType().toUpperCase()).equals(AccountType.B2B)) {
|
||||
Company company = new Company();
|
||||
company.setCompanyName(registerRequest.getCompanyName());
|
||||
AccountType accountType = AccountType.valueOf(registerRequest.getAccountType().toUpperCase());
|
||||
|
||||
companyRepository.save(company);
|
||||
|
||||
user.setCompany(company);
|
||||
if (accountType == AccountType.B2B && registerRequest.getCompanyName() != null) {
|
||||
createCompanyAccount(registerRequest, user);
|
||||
} else {
|
||||
createIndividualAccount(user);
|
||||
}
|
||||
|
||||
if (registerRequest.getPhone() != null) {
|
||||
user.setPhone(registerRequest.getPhone());
|
||||
}
|
||||
|
||||
user.grantPermission(Permission.LOGIN_BIT);
|
||||
|
||||
User savedUser = userRepository.save(user);
|
||||
|
||||
AuthToken authToken = genereateAuthToken(savedUser);
|
||||
@@ -138,4 +148,26 @@ public class AuthService {
|
||||
secureRandom.nextBytes(bytes);
|
||||
return Base64.getUrlEncoder().withoutPadding().encodeToString(bytes);
|
||||
}
|
||||
|
||||
private void createCompanyAccount(RegRequest request, User user) {
|
||||
Company company = new Company();
|
||||
company.setCompanyName(request.getCompanyName());
|
||||
|
||||
TariffInfo companyTariff = tariffInfoService.createTariffInfo(TariffType.DEMO);
|
||||
company.setTariffInfo(companyTariff);
|
||||
|
||||
companyRepository.save(company);
|
||||
tariffInfoService.addTariffInfo(companyTariff);
|
||||
|
||||
user.setCompany(company);
|
||||
user.grantPermission(Permission.COMPANY_SETTINGS_BIT);
|
||||
}
|
||||
|
||||
private void createIndividualAccount(User user) {
|
||||
TariffInfo personalTariff = tariffInfoService.createTariffInfo(TariffType.DEMO);
|
||||
|
||||
tariffInfoService.addTariffInfo(personalTariff);
|
||||
|
||||
user.setPersonalTariffInfo(personalTariff);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user