diff --git a/src/main/java/dev/salmonllama/fsbot/database/controllers/GalleryController.java b/src/main/java/dev/salmonllama/fsbot/database/controllers/GalleryController.java new file mode 100644 index 0000000..507c57f --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/database/controllers/GalleryController.java @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.database.controllers; + +import dev.salmonllama.fsbot.database.FSDB; +import dev.salmonllama.fsbot.database.models.GalleryChannel; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Collection; + +public class GalleryController { + public static void insert(GalleryChannel gallery) throws SQLException { + FSDB.get().insert("INSERT INTO galleries('server_id', 'server_name', 'channel_id', 'channel_name', 'tag')" + + "VALUES(?, ?, ?, ?, ?)", + gallery.serverId, + gallery.serverName, + gallery.channelId, + gallery.channelName, + gallery.tag + ); + } + + public static Collection getGalleriesByServer(String serverId) throws SQLException { + ResultSet rs = FSDB.get().select("SELECT * FROM galleries WHERE server_id = ?", serverId); + + Collection galleries = new ArrayList<>(); + while (rs.next()) { + galleries.add(mapObject(rs)); + } + + return galleries; + } + + private static GalleryChannel mapObject(ResultSet rs) throws SQLException { + GalleryChannel gallery = new GalleryChannel(); + gallery.serverId = rs.getString("server_id"); + gallery.serverName = rs.getString("server_name"); + gallery.channelId = rs.getString("channel_id"); + gallery.channelName = rs.getString("channel_name"); + gallery.tag = rs.getString("tag"); + + return gallery; + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/database/models/GalleryChannel.java b/src/main/java/dev/salmonllama/fsbot/database/models/GalleryChannel.java new file mode 100644 index 0000000..cf736fd --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/database/models/GalleryChannel.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.database.models; + +import dev.salmonllama.fsbot.database.DatabaseModel; + +public class GalleryChannel extends DatabaseModel { + public String serverId; + public String serverName; + public String channelId; + public String channelName; + public String tag; + + public GalleryChannel() { + + } + + public static String schema() { + return "CREATE TABLE IF NOT EXISTS galleries (" + + "server_id TEXT," + + "server_name TEXT," + + "channel_id TEXT," + // PRIMARY KEY? There can only be one gallery per channel. + "channel_name TEXT," + + "tag TEXT)"; + } + + @Override + public String toString() { + return String.format("Gallery: [server id: %s, server name: %s, channel id: %s, channel name: %s, tag: %s]", + serverId, serverName, channelId, channelName, tag); + } +}