diff --git a/dao/create_tables.sql b/dao/create_tables.sql index ff63026c90be225493865040a34bc98aa9c5a59f..78d5fd915f066cc871648a563c7bf3a5154382fd 100644 --- a/dao/create_tables.sql +++ b/dao/create_tables.sql @@ -1,6 +1,6 @@ -DROP TABLE IF EXISTS person; +DROP TABLE IF EXISTS personDrogas; -CREATE TABLE person ( +CREATE TABLE personDrogas ( id int(11) NOT NULL AUTO_INCREMENT, navn varchar(256) NOT NULL, alder int(3) DEFAULT NULL, diff --git a/dao/create_testdata.sql b/dao/create_testdata.sql index b3ee0a7bfc5c6f57c7d77f903919d31c2645e518..6b0f7840da3108023d69515459ebb1746171181a 100644 --- a/dao/create_testdata.sql +++ b/dao/create_testdata.sql @@ -1,3 +1,3 @@ -INSERT INTO person (id, navn, alder, adresse) VALUES +INSERT INTO personDrogas (id, navn, alder, adresse) VALUES (1, 'Hei Sveisen', 21, 'Gata 1'), (2, 'Hei Heisen', 22, 'Gata 2'); diff --git a/dao/persondao.js b/dao/persondao.js index 987542b21d3ceef0e2423ce506a08a2323fbcea9..45803394454947b81774742bf04cc15dc60fe602 100644 --- a/dao/persondao.js +++ b/dao/persondao.js @@ -2,12 +2,11 @@ const Dao = require("./dao.js"); module.exports = class PersonDao extends Dao { getAll(callback) { - super.query("select navn, alder, adresse from person", [], callback); + super.query("select navn, alder, adresse from personDrogas", [], callback); } getOne(id, callback) { - super.query( - "select navn, alder, adresse from person where id=?", + super.query("select navn, alder, adresse from personDrogas where id=?", [id], callback ); @@ -15,10 +14,39 @@ module.exports = class PersonDao extends Dao { createOne(json, callback) { var val = [json.navn, json.adresse, json.alder]; - super.query( - "insert into person (navn,adresse,alder) values (?,?,?)", + super.query("insert into personDrogas (navn,adresse,alder) values (?,?,?)", val, callback ); } + + deleteOne(id, callback){ + super.query("DELETE FROM personDrogas WHERE id=?", + [id], + callback + ); + } + + updateOne(json, id, callback){ + let navn = json.navn; + let adresse = json.adresse; + let alder = json.alder; + + if (json.navn.trim() === ""){ + navn = super.query("SELECT navn FROM personDrogas WHERE id=?", [id], callback); + } + if (json.adresse.trim() === ""){ + adresse = super.query("SELECT adresse FROM personDrogas WHERE id=?", [id], callback); + } + if(json.alder == null){ + alder = super.query("SELECT alder FROM personDrogas WHERE id=?", [id], callback); + } + + let val = [navn, adresse, alder, id]; + super.query("UPDATE personDrogas SET navn=?, adresse=?, alder=? WHERE id=?", + val, + callback + ); + } + }; diff --git a/dao/persondao.test.js b/dao/persondao.test.js index 79f786bff02a1e925f42f400f2d811203a9188d0..ab8943cf45885c2d903841e155992d93c788e344 100644 --- a/dao/persondao.test.js +++ b/dao/persondao.test.js @@ -5,17 +5,18 @@ const runsqlfile = require("./runsqlfile.js"); // GitLab CI Pool var pool = mysql.createPool({ - connectionLimit: 1, - host: "mysql", - user: "root", - password: "secret", - database: "supertestdb", - debug: false, - multipleStatements: true + connectionLimit: 10, + host: "mysql.stud.iie.ntnu.no", + user: "nilstesd", + password: "lqqWcMzq", + database: "nilstesd", + debug: false, + multipleStatements: true }); let personDao = new PersonDao(pool); + beforeAll(done => { runsqlfile("dao/create_tables.sql", pool, () => { runsqlfile("dao/create_testdata.sql", pool, done); @@ -77,3 +78,38 @@ test("get all persons from db", done => { personDao.getAll(callback); }); + +test("Deleting person from database", done => { + function callback(status, data) { + console.log("Test callback: status=" + status + ", data=" + JSON.stringify(data)); + expect(data.affectedRows).toBe(1); + length = data.length; + done(); + } + + personDao.deleteOne(2, callback); +}); + +test("Update person from database", done => { + let oldName; + let oldAge; + let oldAdress; + + personDao.getOne(1, (status, data) => { + oldName = data.navn; + oldAge = data.alder; + oldAdress = data.adresse; + }); + + personDao.updateOne({navn: "Nissen", alder: 100, adresse: "Steder i verden" }, 1, () => {}); + + personDao.getOne("1", (satus, data3) => { + + if(data3.error) data3 = {navn: "", alder: 2, adresse: "asd"}; + + expect(oldName).not.toEqual(data3.navn); + expect(oldAge).not.toEqual(data3.alder); + expect(oldAdress).not.toEqual(data3.adresse); + }); + done(); +});