diff options
author | Tyler Ferrari <69283684+Sowgro@users.noreply.github.com> | 2025-02-26 17:20:11 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-26 17:20:11 -0500 |
commit | 9d832c1e96ca061b80b32abda472269bf7e0bbb7 (patch) | |
tree | 67ccc4c1f33b64d75c9cc7d57d05da3bc541bd26 /ufund-api/src/main/java/com/ufund/api/ufundapi/model/User.java | |
parent | 4c452d39214c42e2b0dc2a557b0c2ef1e3bcd9c0 (diff) | |
parent | da74d5c7e67b873dc8fdbfc672891eb63c0b8ea2 (diff) | |
download | JellySolutions-9d832c1e96ca061b80b32abda472269bf7e0bbb7.tar.gz JellySolutions-9d832c1e96ca061b80b32abda472269bf7e0bbb7.tar.bz2 JellySolutions-9d832c1e96ca061b80b32abda472269bf7e0bbb7.zip |
Merge pull request #7 from RIT-SWEN-261-02/user-functionality
Merge user-functionality into main
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.java | 68 |
1 files changed, 68 insertions, 0 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 new file mode 100644 index 0000000..0a61714 --- /dev/null +++ b/ufund-api/src/main/java/com/ufund/api/ufundapi/model/User.java @@ -0,0 +1,68 @@ +package com.ufund.api.ufundapi.model; + +import java.util.ArrayList; +import java.util.List; + +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(@JsonProperty("name") String name) { + this.name = name; + basket = new ArrayList<>(); + } + + /** + * Create a new user + * + * @param name 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; + this.basket = basket; + } + + /** + * 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 String getName() { + return name; + } + + public boolean verifyPassword(String password) { + return password.hashCode() == passwordHash; + } + + public void addToBasket(Need need) { + basket.add(need); + } + + public Need[] getBasketNeeds() { + return basket.toArray(Need[]::new); + } + + public void removeBasketNeed(Need need) { + basket.remove(need); + } + +} |