Skip to content

Commit

Permalink
Updated DatabaseManager
Browse files Browse the repository at this point in the history
Added 4 new columns: description, logoURL, categories, and key_values to the create table method.
Creates and calls a URLCharityScraper object on updating API values that populates these new columns using the URL for the charity given from the API.
  • Loading branch information
roaraf committed Apr 7, 2026
1 parent 3662815 commit 1a48b29
Showing 1 changed file with 20 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import ntnu.systemutvikling.team6.models.Donation;
import ntnu.systemutvikling.team6.models.DonationRegistry;
import ntnu.systemutvikling.team6.scraper.APICharityData;
import ntnu.systemutvikling.team6.scraper.URLCharityScraper;

/**
* Manages the Database with MySQL tables and JDBC.
Expand Down Expand Up @@ -74,6 +75,10 @@ charity_name VARCHAR(255) NOT NULL,
charity_link VARCHAR(255) NOT NULL,
pre_approved TINYINT NOT NULL,
status VARCHAR(255) NOT NULL,
description TEXT,
logoURL TEXT,
categories TEXT,
key_values TEXT,
UNIQUE KEY unique_org_number (org_number)
) ENGINE=InnoDB;
Expand Down Expand Up @@ -127,13 +132,17 @@ public void addAPIDataToTable(List<Charity> charities) {
conn.setAutoCommit(false);
String sql_query =
"""
INSERT INTO Charities (UUID_charities, org_number, charity_name, charity_link, pre_approved, status)
VALUES (?, ?, ?, ?, ?, ?)
INSERT INTO Charities (UUID_charities, org_number, charity_name, charity_link, pre_approved, status, description, logoURL, categories, key_values)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE
charity_name = VALUES(charity_name),
charity_link = VALUES(charity_link),
pre_approved = VALUES(pre_approved),
status = VALUES(status)
status = VALUES(status),
description = VALUES(description),
logoURL = VALUES(logoURL),
categories = VALUES(categories),
key_values = VALUES(key_values)
""";

try (PreparedStatement ps = conn.prepareStatement(sql_query)) {
Expand All @@ -143,12 +152,19 @@ INSERT INTO Charities (UUID_charities, org_number, charity_name, charity_link, p
} else {
ps.setString(1, charity.getUUID().toString());
}
// Scrapes description, logo, categories, and key values from IK
URLCharityScraper urlScraper = new URLCharityScraper(charity.getURL());
urlScraper.scrapeCharityPage();

ps.setString(2, charity.getOrg_number().replaceAll("\\s", ""));
ps.setString(3, charity.getName());
ps.setString(4, charity.getDescription());
ps.setString(4, charity.getURL());
ps.setBoolean(5, charity.getPreApproved()); // Description is the link
ps.setString(6, charity.getStatus());
ps.setString(7, urlScraper.getDescription());
ps.setString(8, urlScraper.getLogoURL());
ps.setString(9, urlScraper.getCategories());
ps.setString(10, urlScraper.getKeyValues());

ps.addBatch();
}
Expand Down

0 comments on commit 1a48b29

Please sign in to comment.