From ce1ba092ad295319a1f851e8d782aad349aa21f6 Mon Sep 17 00:00:00 2001 From: Aydan Pirani Date: Tue, 16 Jul 2024 19:47:53 -0700 Subject: [PATCH 1/5] Added the change --- src/services/attendee/attendee-schema.ts | 2 ++ src/services/registration/registration-schema.ts | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/services/attendee/attendee-schema.ts b/src/services/attendee/attendee-schema.ts index bd10f88..50c24ee 100644 --- a/src/services/attendee/attendee-schema.ts +++ b/src/services/attendee/attendee-schema.ts @@ -12,6 +12,7 @@ export const AttendeeValidator = z.object({ hasCheckedIn: z.boolean().default(false), points: z.number().min(0).default(0), foodWave: z.number().int().min(0).default(0), + hasResume: z.boolean(), hasPriority: z .object({ Mon: z.boolean().default(false), @@ -44,6 +45,7 @@ export const AttendeeSchema = new Schema({ hasCheckedIn: { type: Boolean, default: false }, points: { type: Number, default: 0 }, foodWave: { type: Number, default: 0 }, + hasResume: { type: Boolean, default: false }, hasPriority: { type: new Schema( { diff --git a/src/services/registration/registration-schema.ts b/src/services/registration/registration-schema.ts index 22de35b..30f5a80 100644 --- a/src/services/registration/registration-schema.ts +++ b/src/services/registration/registration-schema.ts @@ -21,7 +21,7 @@ const RegistrationValidator = z.object({ jobInterest: z.array(z.string()).nullable().optional(), isInterestedMechMania: z.boolean(), isInterestedPuzzleBang: z.boolean(), - hasResume: z.boolean().optional(), + hasResume: z.boolean().default(false), hasSubmitted: z.boolean().optional(), }); From 184cf0681ccb64cdc39be08c76bbc6a1920fb892 Mon Sep 17 00:00:00 2001 From: Aydan Pirani Date: Tue, 16 Jul 2024 19:51:39 -0700 Subject: [PATCH 2/5] Added the filtration methods --- src/services/attendee/attendee-router.ts | 4 ++-- src/services/attendee/attendee-schema.ts | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/services/attendee/attendee-router.ts b/src/services/attendee/attendee-router.ts index d00295a..000ca97 100644 --- a/src/services/attendee/attendee-router.ts +++ b/src/services/attendee/attendee-router.ts @@ -3,7 +3,7 @@ import { StatusCodes } from "http-status-codes"; import { AttendeeValidator, EventIdValidator, - PartialAttendeeValidator, + AttendeeFilterValidator, } from "./attendee-schema"; import { Database } from "../../database"; import RoleChecker from "../../middleware/role-checker"; @@ -160,7 +160,7 @@ attendeeRouter.get( RoleChecker([Role.Enum.STAFF, Role.Enum.CORPORATE]), async (req, res, next) => { try { - const attendeeData = PartialAttendeeValidator.parse(req.body); + const attendeeData = AttendeeFilterValidator.parse(req.body); const attendees = await Database.ATTENDEE.find( attendeeData, "userId" diff --git a/src/services/attendee/attendee-schema.ts b/src/services/attendee/attendee-schema.ts index 50c24ee..f3dd689 100644 --- a/src/services/attendee/attendee-schema.ts +++ b/src/services/attendee/attendee-schema.ts @@ -92,3 +92,8 @@ export const EventIdValidator = z.object({ // Partial schema for attendee filter export const PartialAttendeeValidator = AttendeeValidator.partial(); + +export const AttendeeFilterValidator = z.object({ + in: PartialAttendeeValidator, + out: PartialAttendeeValidator, +}) From 84702d2ec6a5776ace2305adaa37b8eb08f5560d Mon Sep 17 00:00:00 2001 From: Aydan Pirani Date: Tue, 16 Jul 2024 19:52:39 -0700 Subject: [PATCH 3/5] remove sposnor service --- src/services/sponsor/sponsor-router.ts | 33 -------------------------- 1 file changed, 33 deletions(-) delete mode 100644 src/services/sponsor/sponsor-router.ts diff --git a/src/services/sponsor/sponsor-router.ts b/src/services/sponsor/sponsor-router.ts deleted file mode 100644 index 52afa16..0000000 --- a/src/services/sponsor/sponsor-router.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Router } from "express"; -import { Database } from "../../database"; -import RoleChecker from "../../middleware/role-checker"; -import { Role } from "../auth/auth-models"; -import { StatusCodes } from "http-status-codes"; - -const sponsorRouter = Router(); - -// Get favorite events for an attendee -sponsorRouter.get( - "/", - RoleChecker([Role.Enum.CORPORATE]), - async (req, res, next) => { - try { - const resumeUsers = await Database.REGISTRATION.find( - { hasResume: true }, - { userId: 1 } - ); - - if (!resumeUsers) { - return res - .status(StatusCodes.NOT_FOUND) - .json({ error: "UserNotFound" }); - } - - return res.status(StatusCodes.OK).json(resumeUsers); - } catch (error) { - next(error); - } - } -); - -export default sponsorRouter; From 2a107f9e0f696e40aea2ad7ef42e4d9304d01f07 Mon Sep 17 00:00:00 2001 From: Aydan Pirani Date: Tue, 16 Jul 2024 19:53:24 -0700 Subject: [PATCH 4/5] Added proper projection --- src/services/attendee/attendee-router.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/services/attendee/attendee-router.ts b/src/services/attendee/attendee-router.ts index 000ca97..2b6bb2a 100644 --- a/src/services/attendee/attendee-router.ts +++ b/src/services/attendee/attendee-router.ts @@ -162,8 +162,8 @@ attendeeRouter.get( try { const attendeeData = AttendeeFilterValidator.parse(req.body); const attendees = await Database.ATTENDEE.find( - attendeeData, - "userId" + attendeeData.in, + attendeeData.out, ); return res.status(StatusCodes.OK).json(attendees); From 0387b9eb8c3d2c4f9d518ec58c878afb6b2a754f Mon Sep 17 00:00:00 2001 From: Aydan Pirani Date: Tue, 16 Jul 2024 19:54:09 -0700 Subject: [PATCH 5/5] cleaned up more code --- src/app.ts | 2 - src/services/attendee/attendee-router.ts | 2 +- src/services/attendee/attendee-schema.ts | 2 +- yarn.lock | 78 ++++++++++++++++++++---- 4 files changed, 69 insertions(+), 15 deletions(-) diff --git a/src/app.ts b/src/app.ts index c79eac8..d983007 100644 --- a/src/app.ts +++ b/src/app.ts @@ -18,7 +18,6 @@ import notificationsRouter from "./services/notifications/notifications-router"; import registrationRouter from "./services/registration/registration-router"; import s3Router from "./services/s3/s3-router"; import statsRouter from "./services/stats/stats-router"; -import sponsorRouter from "./services/sponsor/sponsor-router"; import subscriptionRouter from "./services/subscription/subscription-router"; import speakersRouter from "./services/speakers/speakers-router"; @@ -46,7 +45,6 @@ app.use("/notifications", databaseMiddleware, notificationsRouter); app.use("/registration", databaseMiddleware, registrationRouter); app.use("/s3", databaseMiddleware, s3Router); app.use("/stats", databaseMiddleware, statsRouter); -app.use("/sponsor", databaseMiddleware, sponsorRouter); app.use("/subscription", databaseMiddleware, subscriptionRouter); app.use("/speakers", databaseMiddleware, speakersRouter); diff --git a/src/services/attendee/attendee-router.ts b/src/services/attendee/attendee-router.ts index 2b6bb2a..42ad60d 100644 --- a/src/services/attendee/attendee-router.ts +++ b/src/services/attendee/attendee-router.ts @@ -163,7 +163,7 @@ attendeeRouter.get( const attendeeData = AttendeeFilterValidator.parse(req.body); const attendees = await Database.ATTENDEE.find( attendeeData.in, - attendeeData.out, + attendeeData.out ); return res.status(StatusCodes.OK).json(attendees); diff --git a/src/services/attendee/attendee-schema.ts b/src/services/attendee/attendee-schema.ts index f3dd689..04032de 100644 --- a/src/services/attendee/attendee-schema.ts +++ b/src/services/attendee/attendee-schema.ts @@ -96,4 +96,4 @@ export const PartialAttendeeValidator = AttendeeValidator.partial(); export const AttendeeFilterValidator = z.object({ in: PartialAttendeeValidator, out: PartialAttendeeValidator, -}) +}); diff --git a/yarn.lock b/yarn.lock index a55c93b..cb0c4e5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -702,6 +702,16 @@ "@jridgewell/trace-mapping" "^0.3.25" jsesc "^2.5.1" +"@babel/generator@^7.24.8": + version "7.24.10" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.10.tgz#a4ab681ec2a78bbb9ba22a3941195e28a81d8e76" + integrity sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg== + dependencies: + "@babel/types" "^7.24.9" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + "@babel/helper-compilation-targets@^7.24.7": version "7.24.7" resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz" @@ -774,10 +784,10 @@ dependencies: "@babel/types" "^7.24.7" -"@babel/helper-string-parser@^7.24.7": - version "7.24.7" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz" - integrity sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg== +"@babel/helper-string-parser@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d" + integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== "@babel/helper-validator-identifier@^7.24.7": version "7.24.7" @@ -812,6 +822,11 @@ resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz" integrity sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw== +"@babel/parser@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.8.tgz#58a4dbbcad7eb1d48930524a3fd93d93e9084c6f" + integrity sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w== + "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" @@ -925,6 +940,52 @@ dependencies: regenerator-runtime "^0.14.0" +"@babel/template@^7.24.7", "@babel/template@^7.3.3": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.7.tgz#02efcee317d0609d2c07117cb70ef8fb17ab7315" + integrity sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/parser" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/traverse@^7.24.7": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.8.tgz#6c14ed5232b7549df3371d820fbd9abfcd7dfab7" + integrity sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.24.8" + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-function-name" "^7.24.7" + "@babel/helper-hoist-variables" "^7.24.7" + "@babel/helper-split-export-declaration" "^7.24.7" + "@babel/parser" "^7.24.8" + "@babel/types" "^7.24.8" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.24.9", "@babel/types@^7.3.3": + version "7.24.9" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.9.tgz#228ce953d7b0d16646e755acf204f4cf3d08cc73" + integrity sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ== + dependencies: + "@babel/helper-string-parser" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + "@esbuild/aix-ppc64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537" @@ -2994,7 +3055,7 @@ debug@2.6.9, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4.x, debug@^4, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: +debug@4, debug@4.x, debug@^4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5: version "4.3.5" resolved "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz" integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== @@ -3100,12 +3161,7 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dotenv@*: - version "16.4.5" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz" - integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== - -dotenv@^16.4.5: +dotenv@*, dotenv@^16.4.5: version "16.4.5" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==