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 16e77b6..8036c6e 100644 --- a/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/database/DatabaseManager.java +++ b/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/database/DatabaseManager.java @@ -6,6 +6,8 @@ import java.util.UUID; import ntnu.systemutvikling.team6.models.*; +import ntnu.systemutvikling.team6.models.user.Language; +import ntnu.systemutvikling.team6.models.user.Settings; import ntnu.systemutvikling.team6.models.user.User; import ntnu.systemutvikling.team6.scraper.APICharityData; @@ -478,6 +480,8 @@ public User getUserFromDBUuid(UUID uuid){ rs.getString("user_password"), rs.getString("role") ); + Settings settings = getAndSetSettingsForUserObject(user.getId().toString()); + user.setSettings(settings); } } catch (SQLException e) { e.printStackTrace(); @@ -486,6 +490,36 @@ public User getUserFromDBUuid(UUID uuid){ return user; } + public Settings getAndSetSettingsForUserObject(String user_id){ + Settings settings = null; + Connection conn = null; + try { + conn = connection.getMySqlConnection(); + String sql_query = + """ + SELECT User_UUID_User, isAnonymous, language, lightmode FROM Settings + WHERE User_UUID_User = ?; + """; + PreparedStatement stmt = conn.prepareStatement(sql_query); + stmt.setString(1, user_id); + stmt.setMaxRows(1); + ResultSet rs = stmt.executeQuery(); + + while (rs.next()) { + settings = new Settings( + rs.getBoolean("isAnonymous"), + Language.valueOf(rs.getString("language").toUpperCase()), + rs.getBoolean("lightmode") + ); + } + } catch (SQLException e) { + e.printStackTrace(); + throw new RuntimeException("ERROR: Something went wrong during updating charities table."); + } + + return settings; + } + public DonationRegistry getDonationFromDB() { DonationRegistry registry = null; diff --git a/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/models/user/Settings.java b/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/models/user/Settings.java index d814283..36d049b 100644 --- a/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/models/user/Settings.java +++ b/helpmehelpapplication/src/main/java/ntnu/systemutvikling/team6/models/user/Settings.java @@ -33,6 +33,7 @@ public Settings(boolean lightMode, Language language, boolean anonymous) { this.anonymous = anonymous; } + /** Toggles between light and dark mode */ public void toggleLightMode() { lightMode = !lightMode;