From c136a0a5d942d4307691e628a0137f8e7d8d7744 Mon Sep 17 00:00:00 2001 From: Olaoluwa Oyebode Date: Fri, 20 Sep 2024 11:14:50 +0100 Subject: [PATCH 1/5] updated user/getall route --- src/controllers/user.js | 45 ++++++++++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 10 deletions(-) diff --git a/src/controllers/user.js b/src/controllers/user.js index 40ff0f1c..702f7ea7 100644 --- a/src/controllers/user.js +++ b/src/controllers/user.js @@ -36,18 +36,43 @@ export const getById = async (req, res) => { } export const getAll = async (req, res) => { - // eslint-disable-next-line camelcase - const { first_name: firstName } = req.query - - let foundUsers - - if (firstName) { - foundUsers = await User.findManyByFirstName(firstName) - } else { - foundUsers = await User.findAll() + // Destructure first_name and last_name from query parameters + const { first_name: firstName, last_name: lastName } = req.query + + let foundAllUsers + + // If both firstName and lastName are provided, search by both + if (firstName && lastName) { + foundAllUsers = await User.findAll({ + where: { + first_name: firstName, + last_name: lastName + } + }) + } + // If only firstName is provided, search by first name + else if (firstName) { + foundAllUsers = await User.findAll({ + where: { + first_name: firstName + } + }) + } + // If only lastName is provided, search by last name + else if (lastName) { + foundAllUsers = await User.findAll({ + where: { + last_name: lastName + } + }) + } + // If no search criteria, fetch all users + else { + foundAllUsers = await User.findAll() } - const formattedUsers = foundUsers.map((user) => { + // Format the users for response + const formattedUsers = foundAllUsers.map((user) => { return { ...user.toJSON().user } From e083e68e505a0d86d70e2ade5f3b793110d02720 Mon Sep 17 00:00:00 2001 From: Olaoluwa Oyebode Date: Fri, 20 Sep 2024 12:18:16 +0100 Subject: [PATCH 2/5] updated user/getall and updateByID --- src/controllers/user.js | 45 ++++++++++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 10 deletions(-) diff --git a/src/controllers/user.js b/src/controllers/user.js index 40ff0f1c..702f7ea7 100644 --- a/src/controllers/user.js +++ b/src/controllers/user.js @@ -36,18 +36,43 @@ export const getById = async (req, res) => { } export const getAll = async (req, res) => { - // eslint-disable-next-line camelcase - const { first_name: firstName } = req.query - - let foundUsers - - if (firstName) { - foundUsers = await User.findManyByFirstName(firstName) - } else { - foundUsers = await User.findAll() + // Destructure first_name and last_name from query parameters + const { first_name: firstName, last_name: lastName } = req.query + + let foundAllUsers + + // If both firstName and lastName are provided, search by both + if (firstName && lastName) { + foundAllUsers = await User.findAll({ + where: { + first_name: firstName, + last_name: lastName + } + }) + } + // If only firstName is provided, search by first name + else if (firstName) { + foundAllUsers = await User.findAll({ + where: { + first_name: firstName + } + }) + } + // If only lastName is provided, search by last name + else if (lastName) { + foundAllUsers = await User.findAll({ + where: { + last_name: lastName + } + }) + } + // If no search criteria, fetch all users + else { + foundAllUsers = await User.findAll() } - const formattedUsers = foundUsers.map((user) => { + // Format the users for response + const formattedUsers = foundAllUsers.map((user) => { return { ...user.toJSON().user } From 1115a072ba1d7ee0e66a687fcb12532a1a51b98f Mon Sep 17 00:00:00 2001 From: Olaoluwa Oyebode Date: Fri, 20 Sep 2024 13:31:41 +0100 Subject: [PATCH 3/5] user/getall and updateByID update --- .env.example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 932b9f1e..24082b05 100644 --- a/.env.example +++ b/.env.example @@ -1,5 +1,5 @@ PORT=4000 -DATABASE_URL="?schema=prisma" +DATABASE_URL=""postgresql://neondb_owner:2lI6UfidxAPz@ep-damp-butterfly-a5ikepwz.us-east-2.aws.neon.tech/team-dev-sim?sslmode=require"" SHADOW_DATABASE_URL="?schema=shadow" JWT_SECRET="somesecurestring" JWT_EXPIRY="24h" \ No newline at end of file From 9187e782c0f648d8ab6165b7ecd9f4f0f3b54e5f Mon Sep 17 00:00:00 2001 From: Olaoluwa Oyebode Date: Fri, 20 Sep 2024 13:33:28 +0100 Subject: [PATCH 4/5] user/getall and updateByID update --- .env.example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 24082b05..a9d5e0ae 100644 --- a/.env.example +++ b/.env.example @@ -1,5 +1,5 @@ PORT=4000 -DATABASE_URL=""postgresql://neondb_owner:2lI6UfidxAPz@ep-damp-butterfly-a5ikepwz.us-east-2.aws.neon.tech/team-dev-sim?sslmode=require"" +DATABASE_URL="postgresql://neondb_owner:2lI6UfidxAPz@ep-damp-butterfly-a5ikepwz.us-east-2.aws.neon.tech/team-dev-sim?sslmode=require" SHADOW_DATABASE_URL="?schema=shadow" JWT_SECRET="somesecurestring" JWT_EXPIRY="24h" \ No newline at end of file From 3373695b04228b429926118f7452bcb8986a7810 Mon Sep 17 00:00:00 2001 From: Olaoluwa Oyebode Date: Fri, 20 Sep 2024 13:41:28 +0100 Subject: [PATCH 5/5] user/getall and updateByID update --- .env.example | 2 +- package-lock.json | 183 ++++++++++++++++++++++++++++++++++------------ package.json | 4 +- 3 files changed, 139 insertions(+), 50 deletions(-) diff --git a/.env.example b/.env.example index a9d5e0ae..932b9f1e 100644 --- a/.env.example +++ b/.env.example @@ -1,5 +1,5 @@ PORT=4000 -DATABASE_URL="postgresql://neondb_owner:2lI6UfidxAPz@ep-damp-butterfly-a5ikepwz.us-east-2.aws.neon.tech/team-dev-sim?sslmode=require" +DATABASE_URL="?schema=prisma" SHADOW_DATABASE_URL="?schema=shadow" JWT_SECRET="somesecurestring" JWT_EXPIRY="24h" \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 3ede3253..0d0e2f76 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "@prisma/client": "^3.12.0", + "@prisma/client": "^5.19.1", "bcrypt": "^5.0.1", "cors": "^2.8.5", "dotenv": "^16.4.5", @@ -30,7 +30,7 @@ "husky": "^7.0.4", "nodemon": "^2.0.15", "prettier": "^2.6.2", - "prisma": "^3.12.0" + "prisma": "^5.19.1" } }, "node_modules/@babel/code-frame": { @@ -202,15 +202,13 @@ } }, "node_modules/@prisma/client": { - "version": "3.15.2", - "resolved": "https://registry.npmjs.org/@prisma/client/-/client-3.15.2.tgz", - "integrity": "sha512-ErqtwhX12ubPhU4d++30uFY/rPcyvjk+mdifaZO5SeM21zS3t4jQrscy8+6IyB0GIYshl5ldTq6JSBo1d63i8w==", + "version": "5.19.1", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.19.1.tgz", + "integrity": "sha512-x30GFguInsgt+4z5I4WbkZP2CGpotJMUXy+Gl/aaUjHn2o1DnLYNTA+q9XdYmAQZM8fIIkvUiA2NpgosM3fneg==", "hasInstallScript": true, - "dependencies": { - "@prisma/engines-version": "3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e" - }, + "license": "Apache-2.0", "engines": { - "node": ">=12.6" + "node": ">=16.13" }, "peerDependencies": { "prisma": "*" @@ -221,17 +219,62 @@ } } }, + "node_modules/@prisma/debug": { + "version": "5.19.1", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.19.1.tgz", + "integrity": "sha512-lAG6A6QnG2AskAukIEucYJZxxcSqKsMK74ZFVfCTOM/7UiyJQi48v6TQ47d6qKG3LbMslqOvnTX25dj/qvclGg==", + "devOptional": true, + "license": "Apache-2.0" + }, "node_modules/@prisma/engines": { - "version": "3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e", - "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e.tgz", - "integrity": "sha512-NHlojO1DFTsSi3FtEleL9QWXeSF/UjhCW0fgpi7bumnNZ4wj/eQ+BJJ5n2pgoOliTOGv9nX2qXvmHap7rJMNmg==", + "version": "5.19.1", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.19.1.tgz", + "integrity": "sha512-kR/PoxZDrfUmbbXqqb8SlBBgCjvGaJYMCOe189PEYzq9rKqitQ2fvT/VJ8PDSe8tTNxhc2KzsCfCAL+Iwm/7Cg==", "devOptional": true, - "hasInstallScript": true + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "5.19.1", + "@prisma/engines-version": "5.19.1-2.69d742ee20b815d88e17e54db4a2a7a3b30324e3", + "@prisma/fetch-engine": "5.19.1", + "@prisma/get-platform": "5.19.1" + } }, - "node_modules/@prisma/engines-version": { - "version": "3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e", - "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e.tgz", - "integrity": "sha512-e3k2Vd606efd1ZYy2NQKkT4C/pn31nehyLhVug6To/q8JT8FpiMrDy7zmm3KLF0L98NOQQcutaVtAPhzKhzn9w==" + "node_modules/@prisma/engines/node_modules/@prisma/engines-version": { + "version": "5.19.1-2.69d742ee20b815d88e17e54db4a2a7a3b30324e3", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.19.1-2.69d742ee20b815d88e17e54db4a2a7a3b30324e3.tgz", + "integrity": "sha512-xR6rt+z5LnNqTP5BBc+8+ySgf4WNMimOKXRn6xfNRDSpHvbOEmd7+qAOmzCrddEc4Cp8nFC0txU14dstjH7FXA==", + "devOptional": true, + "license": "Apache-2.0" + }, + "node_modules/@prisma/fetch-engine": { + "version": "5.19.1", + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.19.1.tgz", + "integrity": "sha512-pCq74rtlOVJfn4pLmdJj+eI4P7w2dugOnnTXpRilP/6n5b2aZiA4ulJlE0ddCbTPkfHmOL9BfaRgA8o+1rfdHw==", + "devOptional": true, + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "5.19.1", + "@prisma/engines-version": "5.19.1-2.69d742ee20b815d88e17e54db4a2a7a3b30324e3", + "@prisma/get-platform": "5.19.1" + } + }, + "node_modules/@prisma/fetch-engine/node_modules/@prisma/engines-version": { + "version": "5.19.1-2.69d742ee20b815d88e17e54db4a2a7a3b30324e3", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.19.1-2.69d742ee20b815d88e17e54db4a2a7a3b30324e3.tgz", + "integrity": "sha512-xR6rt+z5LnNqTP5BBc+8+ySgf4WNMimOKXRn6xfNRDSpHvbOEmd7+qAOmzCrddEc4Cp8nFC0txU14dstjH7FXA==", + "devOptional": true, + "license": "Apache-2.0" + }, + "node_modules/@prisma/get-platform": { + "version": "5.19.1", + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.19.1.tgz", + "integrity": "sha512-sCeoJ+7yt0UjnR+AXZL7vXlg5eNxaFOwC23h0KvW1YIXUoa7+W2ZcAUhoEQBmJTW4GrFqCuZ8YSP0mkDa4k3Zg==", + "devOptional": true, + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "5.19.1" + } }, "node_modules/@types/json5": { "version": "0.0.29", @@ -1525,11 +1568,12 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -2770,20 +2814,23 @@ } }, "node_modules/prisma": { - "version": "3.15.2", - "resolved": "https://registry.npmjs.org/prisma/-/prisma-3.15.2.tgz", - "integrity": "sha512-nMNSMZvtwrvoEQ/mui8L/aiCLZRCj5t6L3yujKpcDhIPk7garp8tL4nMx2+oYsN0FWBacevJhazfXAbV1kfBzA==", + "version": "5.19.1", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.19.1.tgz", + "integrity": "sha512-c5K9MiDaa+VAAyh1OiYk76PXOme9s3E992D7kvvIOhCrNsBQfy2mP2QAQtX0WNj140IgG++12kwZpYB9iIydNQ==", "devOptional": true, "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { - "@prisma/engines": "3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e" + "@prisma/engines": "5.19.1" }, "bin": { - "prisma": "build/index.js", - "prisma2": "build/index.js" + "prisma": "build/index.js" }, "engines": { - "node": ">=12.6" + "node": ">=16.13" + }, + "optionalDependencies": { + "fsevents": "2.3.3" } }, "node_modules/progress": { @@ -3727,23 +3774,64 @@ } }, "@prisma/client": { - "version": "3.15.2", - "resolved": "https://registry.npmjs.org/@prisma/client/-/client-3.15.2.tgz", - "integrity": "sha512-ErqtwhX12ubPhU4d++30uFY/rPcyvjk+mdifaZO5SeM21zS3t4jQrscy8+6IyB0GIYshl5ldTq6JSBo1d63i8w==", + "version": "5.19.1", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.19.1.tgz", + "integrity": "sha512-x30GFguInsgt+4z5I4WbkZP2CGpotJMUXy+Gl/aaUjHn2o1DnLYNTA+q9XdYmAQZM8fIIkvUiA2NpgosM3fneg==", + "requires": {} + }, + "@prisma/debug": { + "version": "5.19.1", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.19.1.tgz", + "integrity": "sha512-lAG6A6QnG2AskAukIEucYJZxxcSqKsMK74ZFVfCTOM/7UiyJQi48v6TQ47d6qKG3LbMslqOvnTX25dj/qvclGg==", + "devOptional": true + }, + "@prisma/engines": { + "version": "5.19.1", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.19.1.tgz", + "integrity": "sha512-kR/PoxZDrfUmbbXqqb8SlBBgCjvGaJYMCOe189PEYzq9rKqitQ2fvT/VJ8PDSe8tTNxhc2KzsCfCAL+Iwm/7Cg==", + "devOptional": true, "requires": { - "@prisma/engines-version": "3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e" + "@prisma/debug": "5.19.1", + "@prisma/engines-version": "5.19.1-2.69d742ee20b815d88e17e54db4a2a7a3b30324e3", + "@prisma/fetch-engine": "5.19.1", + "@prisma/get-platform": "5.19.1" + }, + "dependencies": { + "@prisma/engines-version": { + "version": "5.19.1-2.69d742ee20b815d88e17e54db4a2a7a3b30324e3", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.19.1-2.69d742ee20b815d88e17e54db4a2a7a3b30324e3.tgz", + "integrity": "sha512-xR6rt+z5LnNqTP5BBc+8+ySgf4WNMimOKXRn6xfNRDSpHvbOEmd7+qAOmzCrddEc4Cp8nFC0txU14dstjH7FXA==", + "devOptional": true + } } }, - "@prisma/engines": { - "version": "3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e", - "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e.tgz", - "integrity": "sha512-NHlojO1DFTsSi3FtEleL9QWXeSF/UjhCW0fgpi7bumnNZ4wj/eQ+BJJ5n2pgoOliTOGv9nX2qXvmHap7rJMNmg==", - "devOptional": true + "@prisma/fetch-engine": { + "version": "5.19.1", + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.19.1.tgz", + "integrity": "sha512-pCq74rtlOVJfn4pLmdJj+eI4P7w2dugOnnTXpRilP/6n5b2aZiA4ulJlE0ddCbTPkfHmOL9BfaRgA8o+1rfdHw==", + "devOptional": true, + "requires": { + "@prisma/debug": "5.19.1", + "@prisma/engines-version": "5.19.1-2.69d742ee20b815d88e17e54db4a2a7a3b30324e3", + "@prisma/get-platform": "5.19.1" + }, + "dependencies": { + "@prisma/engines-version": { + "version": "5.19.1-2.69d742ee20b815d88e17e54db4a2a7a3b30324e3", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.19.1-2.69d742ee20b815d88e17e54db4a2a7a3b30324e3.tgz", + "integrity": "sha512-xR6rt+z5LnNqTP5BBc+8+ySgf4WNMimOKXRn6xfNRDSpHvbOEmd7+qAOmzCrddEc4Cp8nFC0txU14dstjH7FXA==", + "devOptional": true + } + } }, - "@prisma/engines-version": { - "version": "3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e", - "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e.tgz", - "integrity": "sha512-e3k2Vd606efd1ZYy2NQKkT4C/pn31nehyLhVug6To/q8JT8FpiMrDy7zmm3KLF0L98NOQQcutaVtAPhzKhzn9w==" + "@prisma/get-platform": { + "version": "5.19.1", + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.19.1.tgz", + "integrity": "sha512-sCeoJ+7yt0UjnR+AXZL7vXlg5eNxaFOwC23h0KvW1YIXUoa7+W2ZcAUhoEQBmJTW4GrFqCuZ8YSP0mkDa4k3Zg==", + "devOptional": true, + "requires": { + "@prisma/debug": "5.19.1" + } }, "@types/json5": { "version": "0.0.29", @@ -4727,9 +4815,9 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "optional": true }, @@ -5621,12 +5709,13 @@ } }, "prisma": { - "version": "3.15.2", - "resolved": "https://registry.npmjs.org/prisma/-/prisma-3.15.2.tgz", - "integrity": "sha512-nMNSMZvtwrvoEQ/mui8L/aiCLZRCj5t6L3yujKpcDhIPk7garp8tL4nMx2+oYsN0FWBacevJhazfXAbV1kfBzA==", + "version": "5.19.1", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.19.1.tgz", + "integrity": "sha512-c5K9MiDaa+VAAyh1OiYk76PXOme9s3E992D7kvvIOhCrNsBQfy2mP2QAQtX0WNj140IgG++12kwZpYB9iIydNQ==", "devOptional": true, "requires": { - "@prisma/engines": "3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e" + "@prisma/engines": "5.19.1", + "fsevents": "2.3.3" } }, "progress": { diff --git a/package.json b/package.json index 737fda8c..54fb0b3b 100644 --- a/package.json +++ b/package.json @@ -36,10 +36,10 @@ "husky": "^7.0.4", "nodemon": "^2.0.15", "prettier": "^2.6.2", - "prisma": "^3.12.0" + "prisma": "^5.19.1" }, "dependencies": { - "@prisma/client": "^3.12.0", + "@prisma/client": "^5.19.1", "bcrypt": "^5.0.1", "cors": "^2.8.5", "dotenv": "^16.4.5",