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 3ac2a5b..7b10e8a 100644 --- a/users.json +++ b/users.json @@ -5,7 +5,6 @@ "email": "shaun@test.com", "role": "Software Engineer", "salary": "40,000" - }, { "id": 2, @@ -34,7 +33,28 @@ "email": "noah@test.com", "role": "DevOps Engineer", "salary": "48,000" + }, + { + "name": "John Doe", + "address": "14 Malone Road", + "salary": "46000", + "role": "Employee", + "employeenumber": "46582", + "id": 6 + }, + { + "name": "Dave Smith", + "address": "24 Street Street", + "salary": "39000", + "role": "", + "employeenumber": "1234567", + "id": 7 + }, + { + "name": "James Clulow", + "address": "14 Malone Road", + "salary": "100000", + "employeenumber": "678786", + "id": 8 } -] - - +] \ No newline at end of file diff --git a/views/addUser.ejs b/views/addUser.ejs index 3f556f6..bf8f723 100644 --- a/views/addUser.ejs +++ b/views/addUser.ejs @@ -1,26 +1,75 @@ +