aboutsummaryrefslogtreecommitdiff
path: root/ufund-api/src/main/java/com/ufund/api/ufundapi/model/User.java
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2025-03-17 23:16:29 -0400
committersowgro <tpoke.ferrari@gmail.com>2025-03-17 23:16:29 -0400
commit68515441acd77d3356e8ec8b58700411661fec13 (patch)
treef3e08e4eecb5c06c8149d56ca08253a3c2d92607 /ufund-api/src/main/java/com/ufund/api/ufundapi/model/User.java
parent7a5c5073e9e410b3ccc3ab7902a0d6f558277c7d (diff)
parent275a6062007380389b7a8f1b8958e8033b4f0925 (diff)
downloadJellySolutions-68515441acd77d3356e8ec8b58700411661fec13.tar.gz
JellySolutions-68515441acd77d3356e8ec8b58700411661fec13.tar.bz2
JellySolutions-68515441acd77d3356e8ec8b58700411661fec13.zip
Merge remote-tracking branch 'refs/remotes/origin/main' into funding_basket
# Conflicts: # ufund-ui/src/app/components/funding-basket/funding-basket.component.ts
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.java66
1 files changed, 34 insertions, 32 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 59f4c46..f08f9f0 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
@@ -7,46 +7,40 @@ import com.fasterxml.jackson.annotation.JsonProperty;
public class User {
- @JsonProperty("name")
- private final String name;
- @JsonProperty("passwordHash")
- private int passwordHash;
- @JsonProperty("basket")
- private final List<Need> basket;
-
- /**
- * Create a new user
- *
- * @param name The name of the user
- */
- public User(String name) {
- this.name = name;
- basket = new ArrayList<>();
+ public enum UserType {
+ HELPER,
+ 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;
+
/**
* Create a new user
*
- * @param name The name of the user
+ * @param username The name of the user
* @param basket A basket to copy from
*/
- public User(@JsonProperty("name") String name, @JsonProperty("basket") List<Need> basket) {
- this.name = name;
+ 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;
+ this.type = userType;
}
- /**
- * Create a deep copy of another user
- *
- * @param other The user to copy from
- */
- public User(User other) {
- this.name = other.name;
- this.basket = other.basket;
+ public static User create(String username, String password) {
+ return new User(
+ username,
+ password.hashCode(),
+ new ArrayList<>(),
+ UserType.HELPER
+ );
}
- public String getName() {
- return name;
+ public String getUsername() {
+ return username;
}
public boolean verifyPassword(String password) {
@@ -54,15 +48,23 @@ public class User {
}
public void addToBasket(Need need) {
- basket.add(need);
+ basket.add(need.getId());
}
- public Need[] getBasketNeeds() {
- return basket.toArray(Need[]::new);
+ public Integer[] getBasketNeeds() {
+ return basket.toArray(Integer[]::new);
}
public void removeBasketNeed(Need need) {
- basket.remove(need);
+ basket.remove(need.getId());
+ }
+
+ public User withoutPasswordHash() {
+ return new User(this.username, 0, this.basket, this.type);
+ }
+
+ public UserType getType() {
+ return type;
}
}