add spring security and token management

This commit is contained in:
dirgantarasiahaan
2023-05-23 19:42:51 +07:00
parent 597d4062c7
commit c76c01a174
35 changed files with 1095 additions and 53 deletions
@@ -0,0 +1,47 @@
package com.iconplus.smartproc.service.authentication;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.request.LoginRequest;
import com.iconplus.smartproc.model.response.LoginResponse;
import com.iconplus.smartproc.repository.UsersRepository;
import com.iconplus.smartproc.util.Constants;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
@Service
@Slf4j
public class LoginService implements BaseService<LoginRequest, LoginResponse> {
private final UsersRepository usersRepository;
public LoginService(UsersRepository userRepository) {
this.usersRepository = userRepository;
}
@Override
public LoginResponse execute(LoginRequest input) {
var user= usersRepository.findByEmailAndDeletedFalse(input.getEmail())
.orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT,
Constants.ERR_CODE_10003,
Constants.ERR_TTL_10003,
String.format(Constants.ERR_MSG_10003, input.getEmail())));
if (!StringUtils.equalsIgnoreCase(input.getPassword(), user.getPassword())) {
throw new BusinessException(HttpStatus.CONFLICT,
Constants.ERR_CODE_10004,
Constants.ERR_TTL_10004,
Constants.ERR_MSG_10004);
}
return LoginResponse.builder()
.build();
}
}