From 4d11e3cb7d1fc36d0ca578985c7a934207204392 Mon Sep 17 00:00:00 2001 From: AdrianBalunan Date: Sun, 19 Apr 2026 14:41:28 +0200 Subject: [PATCH] Feat: Attempt at favouriteDAO --- .../team6/database/DAO/FavouritesDAO.java | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/database/DAO/FavouritesDAO.java diff --git a/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/database/DAO/FavouritesDAO.java b/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/database/DAO/FavouritesDAO.java new file mode 100644 index 0000000..3c61825 --- /dev/null +++ b/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/database/DAO/FavouritesDAO.java @@ -0,0 +1,81 @@ +package ntnu.systemutvikling.team6.database.DAO; + +import ntnu.systemutvikling.team6.database.DatabaseConnection; +import ntnu.systemutvikling.team6.models.Charity; +import ntnu.systemutvikling.team6.models.user.User; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +public class FavouritesDAO { + + private final DatabaseConnection connection; + + public FavouritesDAO(DatabaseConnection connection) { + this.connection = connection; + } + + public boolean addFavourite(User user, Charity charity) { + String sql = "INSERT INTO Favourites (UUID_user, UUID_charity) VALUES (?, ?)"; + + try (Connection conn = connection.getMySqlConnection(); + PreparedStatement ps = conn.prepareStatement(sql)) { + + ps.setString(1, user.getId().toString()); + ps.setString(2, charity.getUUID().toString()); + return ps.executeUpdate() > 0; + + } catch (SQLException e) { + e.printStackTrace(); + return false; + } + } + + public boolean removeFavourite(User user, Charity charity) { + String sql = "DELETE FROM Favourites WHERE UUID_user = ? AND UUID_charity = ?"; + + try (Connection conn = connection.getMySqlConnection(); + PreparedStatement ps = conn.prepareStatement(sql)) { + + ps.setString(1, user.getId().toString()); + ps.setString(2, charity.getUUID().toString()); + return ps.executeUpdate() > 0; + + } catch (SQLException e) { + e.printStackTrace(); + return false; + } + } + + public List getFavourites(User user) { + String sql = """ + SELECT c.* FROM Charity c + JOIN Favourites f ON c.UUID_charity = f.UUID_charity + WHERE f.UUID_user = ? + """; + + List favourites = new ArrayList<>(); + + try (Connection conn = connection.getMySqlConnection(); + PreparedStatement ps = conn.prepareStatement(sql)) { + + ps.setString(1, user.getId().toString()); + ResultSet rs = ps.executeQuery(); + + while (rs.next()) { + favourites.add(new Charity( + + )); + } + + } catch (SQLException e) { + e.printStackTrace(); + } + + return favourites; + } +} \ No newline at end of file