Files
smartproc-be/src/main/java/com/iconplus/smartproc/repository/TokenManagementRepository.java
2023-05-25 15:39:36 +07:00

30 lines
1.1 KiB
Java

package com.iconplus.smartproc.repository;
import com.iconplus.smartproc.model.entity.TokenManagement;
import com.iconplus.smartproc.model.projection.TokenManagementView;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Optional;
@Repository
public interface TokenManagementRepository extends JpaRepository<TokenManagement, String> {
@Query(value = "SELECT access_token as accessToken FROM token_management " +
"WHERE user_id = :userId " +
"AND is_delete = 0 " +
"AND expired_time >= CURRENT_TIMESTAMP", nativeQuery = true)
List<TokenManagementView> findAccessTokenByUserIdAndDeletedFalse(Long userId);
@Query(value = "SELECT tm from TokenManagement tm " +
"WHERE tm.refreshToken = :refreshToken " +
"and tm.isDelete = false")
Optional<TokenManagement> findByRefreshToken(String refreshToken);
Optional<TokenManagement> findByAccessTokenAndIsDeleteFalse(String accessToken);
Optional<TokenManagement> findByUserId(Long id);
}