From f67f9dad740e7af931a1915919c857cd4464f29b Mon Sep 17 00:00:00 2001 From: NorbiPeti Date: Thu, 20 Feb 2020 23:50:23 +0100 Subject: [PATCH] Started Spring application --- pom.xml | 73 +++++++++++++++++++ .../io/github/norbipeti/gcdc/Application.java | 11 +++ .../github/norbipeti/gcdc/model/Session.java | 12 +++ .../gcdc/service/SessionService.java | 51 +++++++++++++ 4 files changed, 147 insertions(+) create mode 100644 pom.xml create mode 100644 src/main/java/io/github/norbipeti/gcdc/Application.java create mode 100644 src/main/java/io/github/norbipeti/gcdc/model/Session.java create mode 100644 src/main/java/io/github/norbipeti/gcdc/service/SessionService.java diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..f2d3b09 --- /dev/null +++ b/pom.xml @@ -0,0 +1,73 @@ + + + 4.0.0 + + io.github.norbipeti + GCDC-Server + 1.0-SNAPSHOT + + + org.springframework.boot + spring-boot-starter-parent + 2.1.3.RELEASE + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 11 + + + + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-devtools + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.postgresql + postgresql + + + org.springframework.security + spring-security-core + 5.1.6.RELEASE + + + org.springframework.boot + spring-boot-starter-security + + + org.projectlombok + lombok + + + com.discord4j + discord4j-core + 3.0.12 + + + + + \ No newline at end of file diff --git a/src/main/java/io/github/norbipeti/gcdc/Application.java b/src/main/java/io/github/norbipeti/gcdc/Application.java new file mode 100644 index 0000000..2265e10 --- /dev/null +++ b/src/main/java/io/github/norbipeti/gcdc/Application.java @@ -0,0 +1,11 @@ +package io.github.norbipeti.gcdc; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Application { + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } +} diff --git a/src/main/java/io/github/norbipeti/gcdc/model/Session.java b/src/main/java/io/github/norbipeti/gcdc/model/Session.java new file mode 100644 index 0000000..889d909 --- /dev/null +++ b/src/main/java/io/github/norbipeti/gcdc/model/Session.java @@ -0,0 +1,12 @@ +package io.github.norbipeti.gcdc.model; + +import discord4j.core.object.util.Snowflake; +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor +public class Session { + String token; + Snowflake channel; +} diff --git a/src/main/java/io/github/norbipeti/gcdc/service/SessionService.java b/src/main/java/io/github/norbipeti/gcdc/service/SessionService.java new file mode 100644 index 0000000..a00871b --- /dev/null +++ b/src/main/java/io/github/norbipeti/gcdc/service/SessionService.java @@ -0,0 +1,51 @@ +package io.github.norbipeti.gcdc.service; + +import discord4j.core.object.util.Snowflake; +import io.github.norbipeti.gcdc.model.Session; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.support.JdbcDaoSupport; +import org.springframework.stereotype.Repository; + +import javax.annotation.PostConstruct; +import javax.sql.DataSource; +import java.util.List; +import java.util.Map; + +@Repository +public class SessionService extends JdbcDaoSupport { + + @Autowired + DataSource dataSource; + + @PostConstruct + private void initialize() { + setDataSource(dataSource); + } + + public void insertSession(Session session) { + String sql = "INSERT INTO sessions(token, channel) VALUES (?, ?)"; + getJdbcTemplate().update(sql, session.getToken(), session.getChannel().asLong()); + } + + public Session getSession(String token) { + String sql = "SELECT * FROM sessions WHERE token=? LIMIT 1"; + List> rows = getJdbcTemplate().queryForList(sql, token); + + if (rows.size() == 0) return null; + + var row = rows.get(0); + return new Session((String) row.get("token"), Snowflake.of((long) row.get("channel"))); + } + + public void deleteSession(String token) { + String sql = "DELETE FROM sessions WHERE token=?"; + getJdbcTemplate().update(sql, token); + + } + + public void updateSession(Session session) { + String sql = "UPDATE sessions SET channel=? WHERE token=?"; + getJdbcTemplate().update(sql, session.getChannel().asLong(), session.getToken()); + } + +}