aboutsummaryrefslogtreecommitdiff
path: root/ufund-api/src/main/java/com/ufund/api/ufundapi/model/User.java
diff options
context:
space:
mode:
authorbenal01 <bja4245@rit.edu>2025-04-01 09:34:36 -0400
committerbenal01 <bja4245@rit.edu>2025-04-01 09:34:36 -0400
commit7ed26c5ee7171a502f6f8527fc55de2bb77eab3b (patch)
tree2046e58c146097aac21c9e352771420c31df6589 /ufund-api/src/main/java/com/ufund/api/ufundapi/model/User.java
parentef46ddd082bb91d0262363536d46fe3eb4da47be (diff)
parentd8330f1ac85b26d08ca4df5ce3875078d7b4f47f (diff)
downloadJellySolutions-7ed26c5ee7171a502f6f8527fc55de2bb77eab3b.tar.gz
JellySolutions-7ed26c5ee7171a502f6f8527fc55de2bb77eab3b.tar.bz2
JellySolutions-7ed26c5ee7171a502f6f8527fc55de2bb77eab3b.zip
Merge branch 'main' of https://github.com/RIT-SWEN-261-02/team-project-2245-swen-261-02-2b-jellysolutions
Diffstat (limited to 'ufund-api/src/main/java/com/ufund/api/ufundapi/model/User.java')
-rw-r--r--ufund-api/src/main/java/com/ufund/api/ufundapi/model/User.java46
1 files changed, 34 insertions, 12 deletions
diff --git a/ufund-api/src/main/java/com/ufund/api/ufundapi/model/User.java b/ufund-api/src/main/java/com/ufund/api/ufundapi/model/User.java
index 6de1a8a..58b62df 100644
--- a/ufund-api/src/main/java/com/ufund/api/ufundapi/model/User.java
+++ b/ufund-api/src/main/java/com/ufund/api/ufundapi/model/User.java
@@ -12,18 +12,23 @@ public class User {
MANAGER
}
- @JsonProperty("username") private final String username;
- @JsonProperty("passwordHash") private int passwordHash;
- @JsonProperty("basket") private final List<Integer> basket;
- @JsonProperty("type") private final UserType type;
+ @JsonProperty("username")
+ private final String username;
+ @JsonProperty("passwordHash")
+ private int passwordHash;
+ @JsonProperty("basket")
+ private final List<Integer> basket;
+ @JsonProperty("type")
+ private final UserType type;
/**
* Create a new user
*
- * @param username The name of the user
- * @param basket A basket to copy from
+ * @param username The name of the user
+ * @param basket A basket to copy from
*/
- public User(@JsonProperty("username") String username, @JsonProperty("passwordHash") int passwordHash, @JsonProperty("basket") List<Integer> basket, @JsonProperty("type") UserType userType) {
+ public User(@JsonProperty("username") String username, @JsonProperty("passwordHash") int passwordHash,
+ @JsonProperty("basket") List<Integer> basket, @JsonProperty("type") UserType userType) {
this.username = username;
this.basket = basket;
this.passwordHash = passwordHash;
@@ -35,30 +40,46 @@ public class User {
username,
password.hashCode(),
new ArrayList<>(),
- UserType.HELPER
- );
+ UserType.HELPER);
}
public String getUsername() {
return username;
}
+ /**
+ * Verifies if the provided password's hash is the same as the user's actual
+ * hash
+ *
+ * @param password The password to check if valid
+ * @return True or false depending on if it's equal
+ */
public boolean verifyPassword(String password) {
return password.hashCode() == passwordHash;
}
+ /**
+ * Adds a need's ID to a user's basket
+ *
+ * @param need The need to add
+ */
public void addToBasket(Need need) {
basket.add(need.getId());
}
- public Integer[] getNeeds() {
+ public Integer[] getBasket() {
return basket.toArray(Integer[]::new);
}
- public boolean removeBasketNeed(Integer needID) {
- return basket.remove(needID);
+ public void removeBasketNeed(Integer needID) {
+ basket.remove(needID);
}
+ /**
+ * Returns a user without a password hash for security purposes
+ *
+ * @return new User with empty password hash
+ */
public User withoutPasswordHash() {
return new User(this.username, 0, this.basket, this.type);
}
@@ -71,6 +92,7 @@ public class User {
this.passwordHash = other.passwordHash;
}
+ @Override
public String toString() {
return this.username + "; basket: " + this.basket + "; type:" + this.type + "; hash: " + this.passwordHash;
}