diff options
Diffstat (limited to 'ufund-api/src/main/java/com/ufund/api/ufundapi/model')
| -rw-r--r-- | ufund-api/src/main/java/com/ufund/api/ufundapi/model/User.java | 39 | ||||
| -rw-r--r-- | ufund-api/src/main/java/com/ufund/api/ufundapi/model/UserAuth.java | 43 | 
2 files changed, 64 insertions, 18 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..1e182a6 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,8 +7,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;  public class User { -    @JsonProperty("name") -    private final String name; +    @JsonProperty("username") +    private final String username;      @JsonProperty("passwordHash")      private int passwordHash;      @JsonProperty("basket") @@ -17,36 +17,35 @@ public class User {      /**       * Create a new user       *  -     * @param name The name of the user +     * @param username The name of the user       */ -    public User(String name) { -        this.name = name; +    public User(String username) { +        this.username = username;          basket = new ArrayList<>();      }      /**       * 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<Need> basket) { +        this.username = username;          this.basket = basket; +        this.passwordHash = passwordHash;      } -    /** -     * 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<>() +        );      } -    public String getName() { -        return name; +    public String getUsername() { +        return username;      }      public boolean verifyPassword(String password) { @@ -65,4 +64,8 @@ public class User {          basket.remove(need);      } +    public User withoutPasswordHash() { +        return new User(this.username, 0, this.basket); +    } +  } diff --git a/ufund-api/src/main/java/com/ufund/api/ufundapi/model/UserAuth.java b/ufund-api/src/main/java/com/ufund/api/ufundapi/model/UserAuth.java new file mode 100644 index 0000000..1c11a28 --- /dev/null +++ b/ufund-api/src/main/java/com/ufund/api/ufundapi/model/UserAuth.java @@ -0,0 +1,43 @@ +package com.ufund.api.ufundapi.model; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.time.LocalDateTime; +import java.util.UUID; + +public class UserAuth { +    @JsonProperty("key") String key; +    @JsonProperty("username") String username; +    @JsonProperty("expiration") LocalDateTime expiration; + +    public UserAuth(@JsonProperty("key") String key, @JsonProperty("username") String username, @JsonProperty("expiration") LocalDateTime expiration) { +        this.key = key; +        this.expiration = expiration; +        this.username = username; +    } + +    /** +     * Generate a new user authentication profile +     * @param username the username the key will belong to +     * @return The new user authentication profile +     */ +    public static UserAuth generate(String username) { +        return new UserAuth( +                UUID.randomUUID().toString(), +                username, +                LocalDateTime.now().plusDays(30) +        ); +    } + +    public String getKey() { +        return key; +    } + +    public String getUsername() { +        return username; +    } + +    public LocalDateTime getExpiration() { +        return expiration; +    } +}  | 
