Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

52 wiersze
1.5KB

  1. package io.github.norbipeti.gcdc.service;
  2. import discord4j.core.object.util.Snowflake;
  3. import io.github.norbipeti.gcdc.model.Session;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.jdbc.core.support.JdbcDaoSupport;
  6. import org.springframework.stereotype.Repository;
  7. import javax.annotation.PostConstruct;
  8. import javax.sql.DataSource;
  9. import java.util.List;
  10. import java.util.Map;
  11. @Repository
  12. public class SessionService extends JdbcDaoSupport {
  13. @Autowired
  14. DataSource dataSource;
  15. @PostConstruct
  16. private void initialize() {
  17. setDataSource(dataSource);
  18. }
  19. public void insertSession(Session session) {
  20. String sql = "INSERT INTO sessions(token, channel) VALUES (?, ?)";
  21. getJdbcTemplate().update(sql, session.getToken(), session.getChannel().asLong());
  22. }
  23. public Session getSession(String token) {
  24. String sql = "SELECT * FROM sessions WHERE token=? LIMIT 1";
  25. List<Map<String, Object>> rows = getJdbcTemplate().queryForList(sql, token);
  26. if (rows.size() == 0) return null;
  27. var row = rows.get(0);
  28. return new Session((String) row.get("token"), Snowflake.of((long) row.get("channel")));
  29. }
  30. public void deleteSession(String token) {
  31. String sql = "DELETE FROM sessions WHERE token=?";
  32. getJdbcTemplate().update(sql, token);
  33. }
  34. public void updateSession(Session session) {
  35. String sql = "UPDATE sessions SET channel=? WHERE token=?";
  36. getJdbcTemplate().update(sql, session.getChannel().asLong(), session.getToken());
  37. }
  38. }