44 lines
1.7 KiB
Java
44 lines
1.7 KiB
Java
package com.iconplus.smartproc.service.authentication;
|
|
|
|
import com.iconplus.smartproc.exception.BusinessException;
|
|
import com.iconplus.smartproc.helper.context.ApiContext;
|
|
import com.iconplus.smartproc.helper.model.EmptyRequest;
|
|
import com.iconplus.smartproc.helper.model.EmptyResponse;
|
|
import com.iconplus.smartproc.helper.service.BaseService;
|
|
import com.iconplus.smartproc.model.entity.TokenManagement;
|
|
import com.iconplus.smartproc.repository.TokenManagementRepository;
|
|
import com.iconplus.smartproc.util.Constants;
|
|
import org.springframework.http.HttpStatus;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
@Service
|
|
public class LogoutService implements BaseService<EmptyRequest, EmptyResponse> {
|
|
|
|
private ApiContext apiContext;
|
|
private TokenManagementRepository tokenManagementRepository;
|
|
|
|
public LogoutService(ApiContext apiContext,
|
|
TokenManagementRepository tokenManagementRepository) {
|
|
this.apiContext = apiContext;
|
|
this.tokenManagementRepository = tokenManagementRepository;
|
|
}
|
|
|
|
@Override
|
|
public EmptyResponse execute(EmptyRequest input) {
|
|
|
|
String accessToken = apiContext.getAuthorization();
|
|
TokenManagement tokenManagement = getTokenManagement(accessToken);
|
|
tokenManagement.setIsDelete(true);
|
|
tokenManagementRepository.save(tokenManagement);
|
|
return new EmptyResponse();
|
|
}
|
|
|
|
private TokenManagement getTokenManagement(String accessToken) {
|
|
return tokenManagementRepository.findByAccessTokenAndIsDeleteFalse(accessToken)
|
|
.orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT,
|
|
Constants.ERR_CODE_40038,
|
|
Constants.ERR_TITLE_40038,
|
|
Constants.ERR_MESSAGE_40038));
|
|
}
|
|
}
|