diff options
author | Gunther6070 <haydenhartman10@yahoo.com> | 2025-03-07 15:43:17 -0500 |
---|---|---|
committer | Gunther6070 <haydenhartman10@yahoo.com> | 2025-03-07 15:43:17 -0500 |
commit | 94869200a0d2f80f71fcd0efd4f82c0138b5440d (patch) | |
tree | 52eff6463b3cec7c3d6bda18e186f9272f528a2c /ufund-api/src/main/java/com/ufund/api/ufundapi/service/UserService.java | |
parent | fa1f1140b1e13d495c8e06e80928efb333917d31 (diff) | |
parent | caaf278d1fa69fef69c210edb337fa54102d2737 (diff) | |
download | JellySolutions-94869200a0d2f80f71fcd0efd4f82c0138b5440d.tar.gz JellySolutions-94869200a0d2f80f71fcd0efd4f82c0138b5440d.tar.bz2 JellySolutions-94869200a0d2f80f71fcd0efd4f82c0138b5440d.zip |
Merge branch 'api-auth' of https://github.com/RIT-SWEN-261-02/team-project-2245-swen-261-02-2b into api-auth
Diffstat (limited to 'ufund-api/src/main/java/com/ufund/api/ufundapi/service/UserService.java')
-rw-r--r-- | ufund-api/src/main/java/com/ufund/api/ufundapi/service/UserService.java | 52 |
1 files changed, 42 insertions, 10 deletions
diff --git a/ufund-api/src/main/java/com/ufund/api/ufundapi/service/UserService.java b/ufund-api/src/main/java/com/ufund/api/ufundapi/service/UserService.java index 6af3897..935ee72 100644 --- a/ufund-api/src/main/java/com/ufund/api/ufundapi/service/UserService.java +++ b/ufund-api/src/main/java/com/ufund/api/ufundapi/service/UserService.java @@ -2,6 +2,7 @@ package com.ufund.api.ufundapi.service; import java.io.IOException; +import com.ufund.api.ufundapi.DuplicateKeyException; import com.ufund.api.ufundapi.model.User; import com.ufund.api.ufundapi.persistence.UserDAO; import org.springframework.stereotype.Component; @@ -11,29 +12,60 @@ public class UserService { private final UserDAO userDAO; - /** - * Create a user controller to receive REST signals - * - * @param userDao The Data Access Object - */ public UserService(UserDAO userDao) { this.userDAO = userDao; } - public User createUser(String username, String password) throws IOException { + /** + * Creates a new user + * + * @param username The username of the user + * @param password The password of the user + * @return The created user object + * @throws IOException Thrown on any problem saving the file + */ + public User createUser(String username, String password) throws IOException, DuplicateKeyException { + if (userDAO.getUser(username) != null) { + throw new DuplicateKeyException("A user with this name already exists"); + } User user = User.create(username, password); return userDAO.addUser(user); } - public User getUser(String username) throws IOException, IllegalAccessException { + /** + * Gets a user with the given username + * + * @param username The username of the user + * @return The user object with that username + * @throws IOException If there was any problem saving the file + */ + public User getUser(String username) throws IOException { return userDAO.getUser(username); } - public User updateUser(User user, String name) throws IllegalAccessException, IOException { - return userDAO.updateUser(user, name); + /** + * Updates a user + * + * @param user The ID of the user to update + * @param username The user object to set (note: the ID is ignored) + * @return The updated user object + * @throws IOException Thrown if there was any issue saving the data + */ + public User updateUser(User user, String username) throws IOException { + if (!user.getUsername().equals(username)) { + throw new IllegalArgumentException("ID in URL and body must match"); + } + return userDAO.updateUser(user); } - public Boolean deleteUser(String username) throws IllegalAccessException, IOException { + /** + * Deletes a user + * + * @param username The username of the user to delete + * @return True if the user was deleted + * @throws IOException Thrown if there was any issue saving the data + */ + public boolean deleteUser(String username) throws IOException { return userDAO.deleteUser(username); } |