From d33e5a9ffd92cd5e345875bfe042f03f2e5a9d2c Mon Sep 17 00:00:00 2001
From: Erlend <erlendsu@stud.ntnu.no>
Date: Mon, 24 Sep 2018 17:21:57 +0200
Subject: [PATCH] =?UTF-8?q?nice=20bra=20sak=C3=A6r?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 dao/persondao.js      | 18 ++++++++++++++++++
 dao/persondao.test.js | 28 ++++++++++++++++++++++++++++
 server.js             | 17 +++++++++++++++++
 3 files changed, 63 insertions(+)

diff --git a/dao/persondao.js b/dao/persondao.js
index 987542b..bf2ddce 100644
--- a/dao/persondao.js
+++ b/dao/persondao.js
@@ -21,4 +21,22 @@ module.exports = class PersonDao extends Dao {
       callback
     );
   }
+
+    updateOne(json, callback) {
+        var val = [json.navn, json.adresse, json.alder, json.id];
+        super.query(
+            "update person set navn = ?, adresse = ?, alder = ?) where id = ?",
+            val,
+            callback
+        );
+    }
+
+    deleteOne(id, callback) {
+        super.query(
+            "delete person where id=?",
+            [id],
+            callback
+        );
+    }
+
 };
diff --git a/dao/persondao.test.js b/dao/persondao.test.js
index 79f786b..f03057d 100644
--- a/dao/persondao.test.js
+++ b/dao/persondao.test.js
@@ -77,3 +77,31 @@ test("get all persons from db", done => {
 
   personDao.getAll(callback);
 });
+
+test("update person in db", done => {
+    function callback(status, data) {
+        console.log(
+            "Test callback: status=" + status + ", data=" + JSON.stringify(data)
+        );
+        expect(data[0].navn).toBe("Olav Olavsen");
+        done();
+    }
+
+    personDao.createOne(
+        {navn: "Olav Olavsen", alder: 34, adresse: "Gata 3", id: 1},
+        callback
+    );
+});
+
+test("delete one person from db", done => {
+    function callback(status, data) {
+        console.log(
+            "Test callback: status=" + status + ", data=" + JSON.stringify(data)
+        );
+        expect(data.affectedRows).toBe(1);
+        done();
+    }
+
+    personDao.deleteOne(2, callback);
+});
+
diff --git a/server.js b/server.js
index 3e28234..53dcec5 100644
--- a/server.js
+++ b/server.js
@@ -41,4 +41,21 @@ app.post("/person", (req, res) => {
   });
 });
 
+app.put("/person", (req, res) => {
+    console.log("Fikk POST-request fra klienten");
+    personDao.updateOne(req.body, (status, data) => {
+        res.status(status);
+        res.json(data);
+    });
+});
+
+app.delete("/person/:personId", (req, res) => {
+    console.log("/person/:personId: fikk request fra klient");
+    personDao.deleteOne(req.params.personId, (status, data) => {
+        res.status(status);
+        res.json(data);
+    });
+});
+
 var server = app.listen(8080);
+
-- 
GitLab