/static/node_modules/generator-jhipster/app/templates/src/main/java/package/repository/_PersistentTokenRepository.java

https://gitlab.com/augurpl/gitlab-ci-hipster-image · Java · 109 lines · 86 code · 20 blank · 3 comment · 25 complexity · e5dcc80a1aa206630d31626f11d26fbe MD5 · raw file

  1. package <%=packageName%>.repository;
  2. <% if (databaseType == 'cassandra') { %>
  3. import com.datastax.driver.core.*;
  4. import com.datastax.driver.mapping.Mapper;
  5. import com.datastax.driver.mapping.MappingManager;<% } %>
  6. import <%=packageName%>.domain.PersistentToken;
  7. import <%=packageName%>.domain.User;<% if (databaseType == 'sql') { %>
  8. import java.time.LocalDate;
  9. import org.springframework.data.jpa.repository.JpaRepository;
  10. <% } %><% if (databaseType == 'mongodb') { %>
  11. import java.time.LocalDate;
  12. import org.springframework.data.mongodb.repository.MongoRepository;
  13. <% } %><% if (databaseType == 'cassandra') { %>
  14. import org.springframework.stereotype.Repository;
  15. import javax.annotation.PostConstruct;
  16. import javax.inject.Inject;
  17. import java.util.ArrayList;<% } %>
  18. import java.util.List;
  19. <% if (databaseType == 'sql') { %>/**
  20. * Spring Data JPA repository for the PersistentToken entity.
  21. */<% } %><% if (databaseType == 'mongodb') { %>/**
  22. * Spring Data MongoDB repository for the PersistentToken entity.
  23. */<% } %><% if (databaseType == 'cassandra') { %>/**
  24. * Cassandra repository for the PersistentToken entity.
  25. */<% } %><% if (databaseType == 'sql' || databaseType == 'mongodb') { %>
  26. public interface PersistentTokenRepository extends <% if (databaseType == 'sql') { %>JpaRepository<% } %><% if (databaseType == 'mongodb') { %>MongoRepository<% } %><PersistentToken, String> {
  27. List<PersistentToken> findByUser(User user);
  28. List<PersistentToken> findByTokenDateBefore(LocalDate localDate);
  29. }<% } else if (databaseType == 'cassandra') { %>
  30. @Repository
  31. public class PersistentTokenRepository {
  32. @Inject
  33. private Session session;
  34. Mapper<PersistentToken> mapper;
  35. private PreparedStatement findPersistentTokenSeriesByUserIdStmt;
  36. private PreparedStatement insertPersistentTokenSeriesByUserIdStmt;
  37. private PreparedStatement insertPersistentTokenStmt;
  38. @PostConstruct
  39. public void init() {
  40. mapper = new MappingManager(session).mapper(PersistentToken.class);
  41. findPersistentTokenSeriesByUserIdStmt = session.prepare(
  42. "SELECT persistent_token_series " +
  43. "FROM persistent_token_by_user " +
  44. "WHERE user_id = :user_id");
  45. insertPersistentTokenSeriesByUserIdStmt = session.prepare(
  46. "INSERT INTO persistent_token_by_user (user_id, persistent_token_series) " +
  47. "VALUES (:user_id, :persistent_token_series) " +
  48. "USING TTL 2592000"); // 30 days
  49. insertPersistentTokenStmt = session.prepare(
  50. "INSERT INTO persistent_token (series, token_date, user_agent, token_value, login, user_id, ip_address) " +
  51. "VALUES (:series, :token_date, :user_agent, :token_value, :login, :user_id, :ip_address) " +
  52. "USING TTL 2592000"); // 30 days
  53. }
  54. public PersistentToken findOne(String presentedSeries) {
  55. return mapper.get(presentedSeries);
  56. }
  57. public List<PersistentToken> findByUser(User user) {
  58. BoundStatement stmt = findPersistentTokenSeriesByUserIdStmt.bind();
  59. stmt.setString("user_id", user.getId());
  60. ResultSet rs = session.execute(stmt);
  61. List<PersistentToken> persistentTokens = new ArrayList<>();
  62. rs.all().stream()
  63. .map(row -> row.getString("persistent_token_series"))
  64. .map(token -> mapper.get(token))
  65. .forEach(persistentTokens::add);
  66. return persistentTokens;
  67. }
  68. public void save(PersistentToken token) {
  69. BatchStatement batch = new BatchStatement();
  70. batch.add(insertPersistentTokenStmt.bind()
  71. .setString("series", token.getSeries())
  72. .setDate("token_date", token.getTokenDate())
  73. .setString("user_agent", token.getUserAgent())
  74. .setString("token_value", token.getTokenValue())
  75. .setString("login", token.getLogin())
  76. .setString("user_id", token.getUserId())
  77. .setString("ip_address", token.getIpAddress()));
  78. batch.add(insertPersistentTokenSeriesByUserIdStmt.bind()
  79. .setString("user_id", token.getUserId())
  80. .setString("persistent_token_series", token.getSeries()));
  81. session.execute(batch);
  82. }
  83. public void delete(PersistentToken token) {
  84. mapper.delete(token);
  85. }
  86. public void delete(String decodedSeries) {
  87. mapper.delete(decodedSeries);
  88. }
  89. }<% } %>