From 6a91d8fc5340deda97774edf253af1b1e77306bf Mon Sep 17 00:00:00 2001
From: Stian Lyng <stianlyng@protonmail.com>
Date: Tue, 7 Mar 2023 15:30:04 +0100
Subject: [PATCH] finished 5

---
 src/main/java/resources/UserResource.java |  9 +++++++++
 src/main/webapp/js/settings.js            | 14 ++++++++++++--
 src/main/webapp/settings.html             |  2 +-
 src/test/java/UserResourceTest.java       | 12 +++++++-----
 4 files changed, 29 insertions(+), 8 deletions(-)

diff --git a/src/main/java/resources/UserResource.java b/src/main/java/resources/UserResource.java
index 1579e9a..c1554c7 100644
--- a/src/main/java/resources/UserResource.java
+++ b/src/main/java/resources/UserResource.java
@@ -57,4 +57,13 @@ public class UserResource {
         return userDAO.addUser(user);
     }
 
+    @PUT
+    @Path("{userId}")
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Produces(MediaType.APPLICATION_JSON)
+    public boolean editUser(@PathParam("userId") int userId, User user){
+        UserDAO userDAO = new UserDAO();
+        return userDAO.editUser(userId, user.getUsername(), user.getPassword());
+    }
+
 }
diff --git a/src/main/webapp/js/settings.js b/src/main/webapp/js/settings.js
index c143d49..001e99b 100644
--- a/src/main/webapp/js/settings.js
+++ b/src/main/webapp/js/settings.js
@@ -1,4 +1,6 @@
 document.getElementById("newUsername").value = sessionStorage.getItem("username");
+document.getElementById("newPassword").value = sessionStorage.getItem("password");
+
 document.getElementById("cancelButton").addEventListener("click", function(){
     window.location.href = "../app.html";
 });
@@ -8,7 +10,11 @@ document.getElementById("cancelButton").addEventListener("click", function(){
  */
 function editUser (event) {
     event.preventDefault();
-    let newInformation = {};
+
+    let newInformation = {
+        username: newUsername,
+        password: newPassword,
+    };
 
     fetch('../api/user/'+sessionStorage.getItem("userId"), {
         method: "PUT",
@@ -18,6 +24,8 @@ function editUser (event) {
         .then(response => response.json())
         .then(response => {
             if (response === true) {
+                sessionStorage.setItem("userId", user.userId);
+                sessionStorage.setItem("username", user.username);
                 alert("Bruker oppdatert");
                 window.location.href = "../app.html";
             } else {
@@ -25,4 +33,6 @@ function editUser (event) {
             }
         })
         .catch(error => console.error(error));
-}
+
+    
+}
\ No newline at end of file
diff --git a/src/main/webapp/settings.html b/src/main/webapp/settings.html
index 65518d3..5e506f3 100644
--- a/src/main/webapp/settings.html
+++ b/src/main/webapp/settings.html
@@ -27,7 +27,7 @@
                        autocomplete="off"
                        type="password">
 
-                <button class="btn">Lagre</button>
+                <button class="btn" id="saveButton">Lagre</button>
                 <button class="btn" id="cancelButton" type="button">Avbryt</button>
             </form>
         </div>
diff --git a/src/test/java/UserResourceTest.java b/src/test/java/UserResourceTest.java
index c42bbb8..165e7ff 100644
--- a/src/test/java/UserResourceTest.java
+++ b/src/test/java/UserResourceTest.java
@@ -13,6 +13,7 @@ import jakarta.ws.rs.core.Response;
 
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
 
 public class UserResourceTest extends JerseyTest {
     private final UserResource userResource = new UserResource();
@@ -43,14 +44,15 @@ public class UserResourceTest extends JerseyTest {
         assertEquals("application/json",output.getHeaderString("Content-type"));
     }
 
-    /*
     @Test
     public void testEditUser () {
         user2.setUserId(10);
         user2.setUsername("test");
         Response output = target("user/"+2).request().put(Entity.entity(user2, MediaType.APPLICATION_JSON));
-        assertEquals("Should return status 200", 200, output.getStatus());
+        assertEquals( 200, output.getStatus());
         assertEquals("application/json",output.getHeaderString("Content-type"));
-        assertNotEquals("testUsername",user2.getUsername());
-    }*/
-}
+        assertNotEquals("Fisken", user2.getUsername());
+        //assertNotEquals("testUsername",user2.getUsername());
+    }
+  }
+
-- 
GitLab