Skip to content

Commit

Permalink
Fix: Fixed CharityVanity implementation and corrected spell check and…
Browse files Browse the repository at this point in the history
… stuff
  • Loading branch information
AdrianBalunan committed Apr 14, 2026
1 parent 9bc7cb4 commit e4c03d1
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 53 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ PRIMARY KEY (`UUID_User`))
`isAnonymous` TINYINT NOT NULL,
`language` VARCHAR(45) NOT NULL,
`lightmode` TINYINT NOT NULL,
PRIMARY KEY (`User_UUID_User`),
PRIMARY KEY (`UUID_user`),
INDEX `fk_Settings_User1_idx` (`UUID_user` ASC) VISIBLE,
CONSTRAINT `fk_Settings_User1`
FOREIGN KEY (`UUID_user`)
Expand Down Expand Up @@ -251,14 +251,22 @@ FOREIGN KEY (`User_UUID_User`)
""";
String charityVanityTable =
"""
CREATE TABLE IF NOT EXISTS `apbaluna`.`Charities` (
`UUID_charities` CHAR(36) NOT NULL,
`org_number` VARCHAR(255) NOT NULL,
`pre_approved` TINYINT NOT NULL,
`status` VARCHAR(255) NOT NULL,
PRIMARY KEY (`UUID_charities`),
UNIQUE INDEX `org_number_UNIQUE` (`org_number` ASC) VISIBLE)
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `apbaluna`.`CharityVanity` (
`UUID_charity` CHAR(36) NOT NULL,
`charity_name` VARCHAR(255) NOT NULL,
`charity_link` VARCHAR(255) NOT NULL,
`description` TEXT NULL,
`logoURL` TEXT NULL,
`key_values` TEXT NULL,
`logoBLOB` MEDIUMBLOB NULL,
INDEX `fk_CharityVanity_Charities1_idx` (`UUID_charity` ASC) VISIBLE,
PRIMARY KEY (`UUID_charity`),
CONSTRAINT `fk_CharityVanity_Charities1`
FOREIGN KEY (`UUID_charity`)
REFERENCES `apbaluna`.`Charities` (`UUID_charities`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
""";

try (Connection conn = connection.getMySqlConnection();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,51 +40,52 @@ public void addAPIDataToTable(List<Charity> charities) {
try {
conn = connection.getMySqlConnection();
conn.setAutoCommit(false);
String sql_query =
"""
INSERT INTO Charities (UUID_charities, org_number, pre_approved, status)
VALUES (?, ?, ?, ?)
ON DUPLICATE KEY UPDATE
pre_approved = VALUES(pre_approved),
status = VALUES(status);
INSERT INTO CharityVanity (UUID_charity, charity_name, charity_link, description, logoURL, key_values, logoBlob)
VALUES (?, ?, ?, ?, ?, ?, ?,)
ON DUPLICATE KEY UPDATE
charity_name = VALUES(charity_name),
charity_link = VALUES(charity_link),
description = VALUES(description),
logoURL = VALUES(logoURL),
key_values = VALUES(key_values),
logoBlob = VALUES(logoBlob);
""";

try (PreparedStatement ps = conn.prepareStatement(sql_query)) {
for (Charity charity : charities) {
if (charity.getUUID() == null) {
ps.setString(1, UUID.randomUUID().toString());
ps.setString(5, UUID.randomUUID().toString());

} else {
ps.setString(1, charity.getUUID().toString());
ps.setString(5, charity.getUUID().toString());
}
// Charity
ps.setString(2, charity.getOrg_number().replaceAll("\\s", ""));
ps.setBoolean(3, charity.getPreApproved());
ps.setString(4, charity.getStatus());

// CharityVanity
ps.setString(6, charity.getName());
ps.setString(7, charity.getURL());
ps.setString(8, charity.getDescription());
ps.setString(9, charity.getLogoURL());
ps.setString(10, charity.getKeyValues());
ps.setBytes(11, charity.getLogoBlob());
String sql1 = """
INSERT INTO Charities (UUID_charities, org_number, pre_approved, status)
VALUES (?, ?, ?, ?)
ON DUPLICATE KEY UPDATE
pre_approved = VALUES(pre_approved),
status = VALUES(status);
""";

String sql2 = """
INSERT INTO CharityVanity (UUID_charity, charity_name, charity_link, description, logoURL, key_values, logoBlob)
VALUES (?, ?, ?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE
charity_name = VALUES(charity_name),
charity_link = VALUES(charity_link),
description = VALUES(description),
logoURL = VALUES(logoURL),
key_values = VALUES(key_values),
logoBlob = VALUES(logoBlob);
""";

try (PreparedStatement ps1 = conn.prepareStatement(sql1);
PreparedStatement ps2 = conn.prepareStatement(sql2)) {

ps.addBatch();
for (Charity charity : charities) {
String uuid = charity.getUUID() == null
? UUID.randomUUID().toString()
: charity.getUUID().toString();

ps1.setString(1, uuid);
ps1.setString(2, charity.getOrg_number().replaceAll("\\s", ""));
ps1.setBoolean(3, charity.getPreApproved());
ps1.setString(4, charity.getStatus());
ps1.addBatch();

ps2.setString(1, uuid);
ps2.setString(2, charity.getName());
ps2.setString(3, charity.getURL());
ps2.setString(4, charity.getDescription());
ps2.setString(5, charity.getLogoURL());
ps2.setString(6, charity.getKeyValues());
ps2.setBytes(7, charity.getLogoBlob());
ps2.addBatch();
}
ps.executeBatch();

ps1.executeBatch();
ps2.executeBatch();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
Expand Down Expand Up @@ -128,7 +129,7 @@ AND NOT EXISTS (
SELECT 1 FROM Feedback f WHERE f.charity_id = c.UUID_charities
)
AND NOT EXISTS (
SELECT 1 FROM CharityVantiy cv WHERE cv.UUID_charity = c.UUID_charities
SELECT 1 FROM CharityVanity cv WHERE cv.UUID_charity = c.UUID_charities
)
AND NOT EXISTS (
SELECT 1 FROM CharityUsers cu WHERE cu.Charities_UUID_charities = c.UUID_charities
Expand Down

0 comments on commit e4c03d1

Please sign in to comment.