From 8916a37c1277d5a9a8a3d7236b92d672f2540ab7 Mon Sep 17 00:00:00 2001 From: AdrianBalunan Date: Thu, 12 Mar 2026 22:54:00 +0100 Subject: [PATCH] Feat: DatabaseManager can spew out donation data --- .../team6/database/DatabaseManager.java | 52 +++++++++++++++++++ .../team6/models/Donation.java | 12 ++--- 2 files changed, 58 insertions(+), 6 deletions(-) diff --git a/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/database/DatabaseManager.java b/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/database/DatabaseManager.java index 80eb760..b51b2df 100644 --- a/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/database/DatabaseManager.java +++ b/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/database/DatabaseManager.java @@ -4,8 +4,11 @@ import java.util.List; import java.util.UUID; +import ntnu.systemutvikling.team6.DAO.DonationDAO; import ntnu.systemutvikling.team6.models.Charity; import ntnu.systemutvikling.team6.models.CharityRegistry; +import ntnu.systemutvikling.team6.models.Donation; +import ntnu.systemutvikling.team6.models.DonationRegistry; import ntnu.systemutvikling.team6.scraper.APICharityData; /** @@ -229,4 +232,53 @@ public CharityRegistry getCharitiesFromDB(){ } return registry; } + + public DonationRegistry getDonationFromDB(){ + DonationRegistry registry = null; + Connection conn = null; + try { + conn = connection.getMySqlConnection(); + String sql_query = """ + SELECT + d.UUID_Donations, + d.amount, + d.date, + c.UUID_charities, + c.org_number, + c.charity_name, + c.charity_link, + c.pre_approved, + c.status + FROM Donations d + JOIN Charities c + ON d.Charities_UUID_charities = c.UUID_charities + """; + Statement stmt = conn.createStatement(); + ResultSet rs = stmt.executeQuery(sql_query); + + registry = new DonationRegistry(); + while (rs.next()){ + Charity charity = new Charity( + rs.getString("UUID_charities"), + rs.getString("org_number"), + rs.getString("charity_name"), + rs.getString("charity_link"), + rs.getBoolean("pre_approved"), + rs.getString("status") + ); + + Donation donation = new Donation( + rs.getString("UUID_Donations"), + rs.getDouble("amount"), + rs.getDate("date").toLocalDate(), + charity + ); + registry.addDonation(donation); + } + } catch (SQLException e) { + e.printStackTrace(); + throw new RuntimeException("ERROR: Something went wrong during updating charities table."); + } + return registry; + } } diff --git a/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/models/Donation.java b/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/models/Donation.java index a259db6..63ca280 100644 --- a/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/models/Donation.java +++ b/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/models/Donation.java @@ -14,7 +14,7 @@ public class Donation { private double amount; /* Date and time of the donation */ - private LocalDateTime date; + private LocalDate date; /* The charity that received the donation */ private Charity charity; @@ -34,7 +34,7 @@ public class Donation { * @param charity * @param donor */ - public Donation(double amount, LocalDateTime date, Charity charity, User donor) { + public Donation(double amount, LocalDate date, Charity charity, User donor) { this.charityId = UUID.randomUUID(); this.amount = amount; this.date = date; @@ -49,10 +49,10 @@ public Donation(double amount, LocalDateTime date, Charity charity, User donor) * @param amount * @param date * @param charity - * @param donor + * @param uuid */ - public Donation(String uuid, double amount, LocalDateTime date, Charity charity) { - this.charityId = UUID.randomUUID(); + public Donation(String uuid, double amount, LocalDate date, Charity charity) { + this.charityId = UUID.fromString(uuid); this.amount = amount; this.date = date; this.charity = charity; @@ -73,7 +73,7 @@ public double getAmount() { return amount; } - public LocalDateTime getDate() { + public LocalDate getDate() { return date; }