From 3391569294d755cbbcd93224de7ac23c409afa86 Mon Sep 17 00:00:00 2001 From: James Clulow <40301000@ads.qub.ac.uk> Date: Fri, 24 Jan 2025 13:34:53 +0000 Subject: [PATCH 1/2] This is finally working!!! --- services/readDeleteUser.js | 31 ++++++++++++++++++ services/readWriteUser.js | 27 +++++++++++++++ users.json | 22 +++++++++++++ views/addUser.ejs | 62 ++++++++++++++++++++++++++++------- views/deleteUser.ejs | 4 +-- views/index.ejs | 2 +- views/updateUser.ejs | 2 +- views/user.ejs | 2 +- views/users.ejs | 2 +- views/viewDesign.css | 67 ++++++++++++++++++++++++++++++++++++++ 10 files changed, 203 insertions(+), 18 deletions(-) create mode 100644 services/readDeleteUser.js create mode 100644 services/readWriteUser.js create mode 100644 views/viewDesign.css diff --git a/services/readDeleteUser.js b/services/readDeleteUser.js new file mode 100644 index 0000000..16d16ba --- /dev/null +++ b/services/readDeleteUser.js @@ -0,0 +1,31 @@ +const fs = require('fs'); + +class readDeleteUser { + constructor() { + this.filePath = "users.json"; + } + + // Helper function to read users from JSON file + readUsers() { + try { + const data = fs.readFileSync(this.filePath, 'utf8'); + return JSON.parse(data); + } catch (err) { + console.error('Error reading users:', err); + return []; + } + } + + // Delete a user by ID + deleteUser(id) { + const users = this.readUsers(); + const userIndex = users.findIndex(user => user.id === id); + if (userIndex === -1) return null; + + const deletedUser = users.splice(userIndex, 1); + this.writeUsers(users); + return deletedUser[0]; + } +} + +module.exports = readDeleteUser; diff --git a/services/readWriteUser.js b/services/readWriteUser.js new file mode 100644 index 0000000..4ff3729 --- /dev/null +++ b/services/readWriteUser.js @@ -0,0 +1,27 @@ +const fs = require('fs'); + +class readWriteUser { + constructor() { + this.filePath = "users.json"; + } + + // Helper function to write users to JSON file + writeUsers(users) { + try { + fs.writeFileSync(this.filePath, JSON.stringify(users, null, 2), 'utf8'); + } catch (err) { + console.error('Error writing users:', err); + } + } + + // Create a new user + createUser(newUser) { + const users = this.readUsers(); + newUser.id = users.length ? users[users.length - 1].id + 1 : 1; + users.push(newUser); + this.writeUsers(users); + return newUser; + } +} + +module.exports = readWriteUser; diff --git a/users.json b/users.json index c3b48ae..0e915c6 100644 --- a/users.json +++ b/users.json @@ -4,5 +4,27 @@ "name": "Shaun", "email": "shaun@test.com", "role": "Software Engineer" + }, + { + "name": "James", + "email": "kqhkdhwjhw@fhwh.com", + "role": "Employee", + "id": 2 + }, + { + "name": "James Clulow", + "address": "14 Malone Road", + "salary": "100000", + "role": "Senior Software Engineer", + "employeenumber": "123456", + "id": 3 + }, + { + "name": "James", + "address": "14 Malone Road", + "salary": "100000", + "role": "Senior Software Engineer", + "employeenumber": "123456", + "id": 4 } ] \ No newline at end of file diff --git a/views/addUser.ejs b/views/addUser.ejs index 3f556f6..31cb9a5 100644 --- a/views/addUser.ejs +++ b/views/addUser.ejs @@ -1,26 +1,64 @@ +