Make chapter or puzzle optional for group

This commit is contained in:
Francois G 2023-04-10 14:51:36 +02:00
parent eac490f040
commit 7dee5b60f9
3 changed files with 14 additions and 10 deletions

View file

@ -11,14 +11,16 @@ import org.json.simple.JSONObject;
public class Group implements Comparable<Group> { public class Group implements Comparable<Group> {
private String name; private String name;
private int linkToChapter; private Integer linkToChapter;
private int linkToPuzzle; private Integer linkToPuzzle;
private List<Player> players; private List<Player> players;
public Group(JSONObject json) { public Group(JSONObject json) {
this.name = (String) json.get("name"); this.name = (String) json.get("name");
this.linkToChapter = ((Number) json.get("chapter")).intValue(); if (json.containsKey("chapter"))
this.linkToPuzzle = ((Number) json.get("puzzle")).intValue(); this.linkToChapter = ((Number) json.get("chapter")).intValue();
if (json.containsKey("puzzle"))
this.linkToPuzzle = ((Number) json.get("puzzle")).intValue();
} }
public Group(String name, int initChap, int initPuzz) { public Group(String name, int initChap, int initPuzz) {
@ -67,11 +69,11 @@ public class Group implements Comparable<Group> {
return name; return name;
} }
public int getLinkToChapter() { public Integer getLinkToChapter() {
return linkToChapter; return linkToChapter;
} }
public int getLinkToPuzzle() { public Integer getLinkToPuzzle() {
return linkToPuzzle; return linkToPuzzle;
} }

View file

@ -17,7 +17,7 @@ public enum DatabaseQuery {
// GROUPS // GROUPS
ALL_GROUPS("SELECT * FROM groups"), ALL_GROUPS("SELECT * FROM groups"),
GET_GROUP_ID_BY_DATA("SELECT id_group FROM groups WHERE name = ? AND fk_chapter = ? AND fk_puzzle = ?"), GET_GROUP_ID_BY_DATA("SELECT id_group FROM groups WHERE name = ? AND (fk_chapter = ? OR fk_puzzle = ?)"),
INSERT_GROUP("INSERT INTO groups (name, fk_chapter, fk_puzzle) VALUES (?,?,?)"), INSERT_GROUP("INSERT INTO groups (name, fk_chapter, fk_puzzle) VALUES (?,?,?)"),
INSERT_PLAYER_IN_GROUP("INSERT INTO containsGroups (fk_player, fk_group) VALUES (?,?)"), INSERT_PLAYER_IN_GROUP("INSERT INTO containsGroups (fk_player, fk_group) VALUES (?,?)"),
LEAVE_GROUP("DELETE FROM containsGroups WHERE fk_player = ? AND fk_group = ?"), LEAVE_GROUP("DELETE FROM containsGroups WHERE fk_player = ? AND fk_group = ?"),

View file

@ -504,8 +504,8 @@ public class DatabaseRepository {
ensureConnection(); ensureConnection();
PreparedStatement stmt = DatabaseQuery.GET_GROUP_ID_BY_DATA.prepare(this.con); PreparedStatement stmt = DatabaseQuery.GET_GROUP_ID_BY_DATA.prepare(this.con);
stmt.setString(1, group.getName()); stmt.setString(1, group.getName());
stmt.setInt(2, group.getLinkToChapter()); stmt.setObject(2, group.getLinkToChapter());
stmt.setInt(3, group.getLinkToPuzzle()); stmt.setObject(3, group.getLinkToPuzzle());
ResultSet result = stmt.executeQuery(); ResultSet result = stmt.executeQuery();
if(result.next()) return result.getInt("id_group"); if(result.next()) return result.getInt("id_group");
@ -521,7 +521,9 @@ public class DatabaseRepository {
stmt.setInt(2, id); stmt.setInt(2, id);
return stmt.executeUpdate() >= 0; return stmt.executeUpdate() >= 0;
}catch(Exception e){} }catch(Exception e){
e.printStackTrace();
}
return false; return false;
} }