From e7a27d7fe95ae58626d11cf241187d6019276c34 Mon Sep 17 00:00:00 2001 From: Mikayla Dobson <93477693+innocuous-symmetry@users.noreply.github.com> Date: Sat, 18 Feb 2023 12:21:50 -0600 Subject: [PATCH] add course dropdown values --- server/controllers/DropdownCtl.ts | 15 ++++++++++++++- server/db/populate.ts | 8 +++++++- server/models/dropdownValues.ts | 11 +++++++++++ server/routes/dropdownValues.ts | 8 ++++++-- 4 files changed, 38 insertions(+), 4 deletions(-) diff --git a/server/controllers/DropdownCtl.ts b/server/controllers/DropdownCtl.ts index 16f9b34..2b6ec16 100644 --- a/server/controllers/DropdownCtl.ts +++ b/server/controllers/DropdownCtl.ts @@ -8,7 +8,7 @@ export default class DropdownCtl { async getMeasurements() { try { const result = await DDInstance.getMeasurements(); - return new ControllerResponse( + return new ControllerResponse( ((result !== null) ? StatusCode.OK : StatusCode.NotFound), result || "Measurement unit data not found", (result !== null) @@ -18,6 +18,19 @@ export default class DropdownCtl { } } + async getCourses() { + try { + const result = await DDInstance.getCourses(); + return new ControllerResponse( + ((result !== null) ? StatusCode.OK : StatusCode.NotFound), + result || "Course data not found", + (result !== null) + ); + } catch (error: any) { + throw new Error(error); + } + } + async getByType(type: DropdownDataType) { switch (type) { case "measurement": diff --git a/server/db/populate.ts b/server/db/populate.ts index 63cad5e..1bf8b14 100644 --- a/server/db/populate.ts +++ b/server/db/populate.ts @@ -111,7 +111,13 @@ export default async function populate() { ('gram', 'MEASUREMENTS', $1), ('ounce', 'MEASUREMENTS', $1), ('fluid ounce', 'MEASUREMENTS', $1), - ('pound', 'MEASUREMENTS', $1) + ('pound', 'MEASUREMENTS', $1), + ('breakfast', 'COURSE', $1), + ('lunch', 'COURSE', $1), + ('dinner', 'COURSE', $1), + ('dessert', 'COURSE', $1), + ('appetizer', 'COURSE', $1), + ('side', 'COURSE', $1) ; ` diff --git a/server/models/dropdownValues.ts b/server/models/dropdownValues.ts index cc4e38b..86daaa5 100644 --- a/server/models/dropdownValues.ts +++ b/server/models/dropdownValues.ts @@ -11,4 +11,15 @@ export default class Dropdown { throw new Error(error); } } + + async getCourses() { + try { + const statement = `SELECT * FROM recipin.dropdownVals WHERE datatype = 'COURSE'`; + const result = await pool.query(statement); + if (result.rows.length) return result.rows; + return null; + } catch (error: any) { + throw new Error(error); + } + } } \ No newline at end of file diff --git a/server/routes/dropdownValues.ts b/server/routes/dropdownValues.ts index d090d46..6843148 100644 --- a/server/routes/dropdownValues.ts +++ b/server/routes/dropdownValues.ts @@ -14,8 +14,12 @@ export const dropdownValueRouter = (app: Express) => { try { switch (datatype) { case "measurement": - const { code, data } = await DDInstance.getMeasurements(); - res.status(code).send(data); + const measurements = await DDInstance.getMeasurements(); + res.status(measurements.code).send(measurements.data); + break; + case "course": + const courses = await DDInstance.getCourses(); + res.status(courses.code).send(courses.data); break; default: break; }