DataManager improvements
This commit is contained in:
@@ -14,34 +14,24 @@ import java.util.Map;
|
|||||||
public class DataManager implements Manager {
|
public class DataManager implements Manager {
|
||||||
private static final Logger logger = LoggerFactory.getLogger(DataManager.class);
|
private static final Logger logger = LoggerFactory.getLogger(DataManager.class);
|
||||||
|
|
||||||
private static final String[] requiredTables = { "config", "opt_in", "rules", "rule_agree_reactions" };
|
private static final String[] requiredTables = { "config", "opt_in", "rules", "rule_sections", "rule_agree_reactions" };
|
||||||
|
|
||||||
private static Map<String, String> config = new HashMap<>();
|
|
||||||
|
|
||||||
public boolean start() {
|
public boolean start() {
|
||||||
logger.info("Data Manager starting...");
|
logger.info("Data Manager starting...");
|
||||||
|
|
||||||
if (checkConnection()) {
|
if (checkConnection()) {
|
||||||
logger.info("Loading config...");
|
|
||||||
|
|
||||||
if (!loadConfig()) {
|
|
||||||
logger.error("Data Manager failed to load config!");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
logger.info("Data Manager started!");
|
logger.info("Data Manager started!");
|
||||||
return true;
|
return true;
|
||||||
} else {
|
|
||||||
logger.error("Data Manager failed to start!");
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
logger.error("Data Manager failed to start!");
|
||||||
|
return false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean stop() {
|
public boolean stop() {
|
||||||
logger.info("Data Manager stopping...");
|
logger.info("Data Manager stopping...");
|
||||||
|
|
||||||
config.clear();
|
|
||||||
|
|
||||||
logger.info("Data Manager stopped!");
|
logger.info("Data Manager stopped!");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -64,7 +54,7 @@ public class DataManager implements Manager {
|
|||||||
Class.forName("com.mysql.cj.jdbc.Driver");
|
Class.forName("com.mysql.cj.jdbc.Driver");
|
||||||
|
|
||||||
Connection conn = getConnection();
|
Connection conn = getConnection();
|
||||||
ResultSet rs = conn.prepareStatement("show tables").executeQuery();
|
ResultSet rs = conn.prepareStatement("SHOW TABLES").executeQuery();
|
||||||
|
|
||||||
List<String> tables = new ArrayList<>();
|
List<String> tables = new ArrayList<>();
|
||||||
|
|
||||||
@@ -89,7 +79,23 @@ public class DataManager implements Manager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static String getConfigValue(String name) {
|
public static String getConfigValue(String name) {
|
||||||
return config.get(name);
|
try {
|
||||||
|
Connection conn = getConnection();
|
||||||
|
PreparedStatement ps = conn.prepareStatement("SELECT * FROM config WHERE name=?");
|
||||||
|
|
||||||
|
ps.setString(1, name);
|
||||||
|
|
||||||
|
ResultSet rs = ps.executeQuery();
|
||||||
|
rs.next();
|
||||||
|
|
||||||
|
String value = rs.getString(2);
|
||||||
|
|
||||||
|
conn.close();
|
||||||
|
return value;
|
||||||
|
} catch (SQLException e) {
|
||||||
|
logger.error("SQL error:", e);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean setConfigValue(String name, String value) {
|
public static boolean setConfigValue(String name, String value) {
|
||||||
@@ -107,10 +113,7 @@ public class DataManager implements Manager {
|
|||||||
|
|
||||||
boolean succ = ps.execute();
|
boolean succ = ps.execute();
|
||||||
|
|
||||||
if (succ) {
|
conn.close();
|
||||||
config.put(name, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
return succ;
|
return succ;
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
logger.error("SQL error:", e);
|
logger.error("SQL error:", e);
|
||||||
@@ -118,31 +121,33 @@ public class DataManager implements Manager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean loadConfig() {
|
public static Map<Integer, String> getRuleSections() {
|
||||||
try {
|
try {
|
||||||
Connection conn = getConnection();
|
Connection conn = getConnection();
|
||||||
ResultSet rs = conn.prepareStatement("SELECT * FROM config").executeQuery();
|
ResultSet rs = conn.prepareStatement("SELECT * FROM rule_sections").executeQuery();
|
||||||
|
|
||||||
config.clear();
|
Map<Integer, String> sections = new HashMap<>();
|
||||||
|
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
String name = rs.getString(1);
|
sections.put(rs.getInt(1), rs.getString(2));
|
||||||
String value = rs.getString(2);
|
|
||||||
|
|
||||||
config.put(name, value);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
conn.close();
|
||||||
|
return sections;
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
logger.error("SQL error:", e);
|
logger.error("SQL error:", e);
|
||||||
return false;
|
return new HashMap<>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<String> getRules() {
|
public static List<String> getRules(int sectionId) {
|
||||||
try {
|
try {
|
||||||
Connection conn = getConnection();
|
Connection conn = getConnection();
|
||||||
ResultSet rs = conn.prepareStatement("SELECT * FROM rules").executeQuery();
|
PreparedStatement ps = conn.prepareStatement("SELECT * FROM rules WHERE section_id=?");
|
||||||
|
|
||||||
|
ps.setInt(1, sectionId);
|
||||||
|
|
||||||
|
ResultSet rs = ps.executeQuery();
|
||||||
|
|
||||||
List<String> rules = new ArrayList<>();
|
List<String> rules = new ArrayList<>();
|
||||||
|
|
||||||
@@ -150,6 +155,7 @@ public class DataManager implements Manager {
|
|||||||
rules.add(rs.getString(2));
|
rules.add(rs.getString(2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
conn.close();
|
||||||
return rules;
|
return rules;
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
logger.error("SQL error:", e);
|
logger.error("SQL error:", e);
|
||||||
@@ -168,6 +174,7 @@ public class DataManager implements Manager {
|
|||||||
reactions.put(rs.getString(3), rs.getString(2));
|
reactions.put(rs.getString(3), rs.getString(2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
conn.close();
|
||||||
return reactions;
|
return reactions;
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
logger.error("SQL error:", e);
|
logger.error("SQL error:", e);
|
||||||
@@ -192,6 +199,7 @@ public class DataManager implements Manager {
|
|||||||
optins.add(optin);
|
optins.add(optin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
conn.close();
|
||||||
return optins;
|
return optins;
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
logger.error("SQL error:", e);
|
logger.error("SQL error:", e);
|
||||||
|
|||||||
Reference in New Issue
Block a user