49 lines
1.5 KiB
Java
49 lines
1.5 KiB
Java
package org.ros.chatto.service;
|
|
|
|
import org.ros.chatto.model.UserToken;
|
|
import org.ros.chatto.repository.TokenRepository;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.cache.annotation.CacheConfig;
|
|
import org.springframework.cache.annotation.Cacheable;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
@Service
|
|
@Transactional
|
|
@Slf4j
|
|
@CacheConfig(cacheNames = "userTokenCache")
|
|
@RequiredArgsConstructor
|
|
public class UserTokenService {
|
|
private final TokenRepository tokenRepository;
|
|
|
|
@Transactional(readOnly = true)
|
|
@Cacheable(value = "userTokenCache", key = "#userName", unless = "#result == null")
|
|
public UserToken getTokenByUserName(String userName) {
|
|
return tokenRepository.findByUserName(userName);
|
|
}
|
|
|
|
@Transactional(readOnly = true)
|
|
@Cacheable(value = "userTokenCache", key = "#tokenString", unless = "#result == null")
|
|
public UserToken getTokenByTokenString(String tokenString) {
|
|
return tokenRepository.findByToken(tokenString);
|
|
}
|
|
|
|
public void saveToken(UserToken userToken) {
|
|
log.trace("Saving auth token");
|
|
tokenRepository.save(userToken);
|
|
}
|
|
|
|
public void deleteToken(String userName) {
|
|
log.trace("Deleting token for {}", userName);
|
|
tokenRepository.deleteByUserName(userName);
|
|
}
|
|
|
|
public void deleteToken(UserToken userToken) {
|
|
log.trace("Deleting token for {}", userToken);
|
|
tokenRepository.delete(userToken);
|
|
}
|
|
}
|