Chatto/src/main/java/org/ros/chatto/service/UserTokenService.java

49 lines
1.5 KiB
Java
Raw Normal View History

2019-11-18 05:19:02 +00:00
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;
2019-11-18 05:19:02 +00:00
import org.springframework.stereotype.Service;
2019-11-29 19:13:50 +00:00
import org.springframework.transaction.annotation.Transactional;
import lombok.RequiredArgsConstructor;
2019-11-29 19:13:50 +00:00
import lombok.extern.slf4j.Slf4j;
2019-11-18 05:19:02 +00:00
@Service
2019-11-29 19:13:50 +00:00
@Transactional
@Slf4j
@CacheConfig(cacheNames = "userTokenCache")
@RequiredArgsConstructor
2019-11-18 05:19:02 +00:00
public class UserTokenService {
private final TokenRepository tokenRepository;
2019-11-29 19:13:50 +00:00
@Transactional(readOnly = true)
@Cacheable(value = "userTokenCache", key = "#userName", unless = "#result == null")
public UserToken getTokenByUserName(String userName) {
2019-11-18 05:19:02 +00:00
return tokenRepository.findByUserName(userName);
}
2019-11-29 19:13:50 +00:00
@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");
2019-11-18 05:19:02 +00:00
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);
}
2019-11-18 05:19:02 +00:00
}