diff --git a/api/services/medications/index.js b/api/services/medications/index.js index 80f526f..bc35ee0 100644 --- a/api/services/medications/index.js +++ b/api/services/medications/index.js @@ -17,10 +17,13 @@ medicationRouter.get('/', async (req, res) => { } }); -medicationRouter.get('/base/', async (req, res) => { +medicationRouter.post('/base/', async (req, res) => { let data; + const body = req?.body; + try { - data = await databaseServices.getBaseMedications(); + await fullMedicationInformationSchema.validate(body); + data = await databaseServices.getBaseMedications(body); res.status(200); } catch (err) { data = { Error: err?.message }; diff --git a/api/services/operations/helpers/medications.js b/api/services/operations/helpers/medications.js index 3edf033..13062ea 100644 --- a/api/services/operations/helpers/medications.js +++ b/api/services/operations/helpers/medications.js @@ -1,10 +1,10 @@ import { paramyxRunQuery } from '../../paramyxConnection.js'; export const medicationHelpers = { - getBaseMedications: async () => { + getBaseMedications: async (region) => { const [medList, medRoutes] = await Promise.all([ - paramyxRunQuery('SELECT * FROM medications'), - paramyxRunQuery('SELECT * FROM medication_routes') + paramyxRunQuery('SELECT * FROM medications WHERE $1 = ANY(region)', [region]), + paramyxRunQuery('SELECT * FROM medication_routes WHERE region = $1', [region]) ]); const medMap = {}; diff --git a/api/services/operations/medications.js b/api/services/operations/medications.js index b55455a..2a6f84a 100644 --- a/api/services/operations/medications.js +++ b/api/services/operations/medications.js @@ -11,9 +11,10 @@ const getMedications = async () => { } }; -const getBaseMedications = async () => { +const getBaseMedications = async (body) => { + const { region } = body; try { - const dataResp = medicationHelpers.getBaseMedications(); + const dataResp = medicationHelpers.getBaseMedications(region); return dataResp; } catch (err) { console.log('GET BASE MEDICATIONS ERROR: ', err); @@ -21,8 +22,8 @@ const getBaseMedications = async () => { } } -const getFullMedicationInformation = async (drug) => { - const { drugId } = drug; +const getFullMedicationInformation = async (body) => { + const { drugId } = body; try { const dataResp = medicationHelpers.getFullMedicationInformation(drugId); return dataResp; diff --git a/api/services/validations/medications.js b/api/services/validations/medications.js index 844cc15..28e75a8 100644 --- a/api/services/validations/medications.js +++ b/api/services/validations/medications.js @@ -1,5 +1,9 @@ import * as Yup from 'yup'; +export const baseMedicationInformationScema = Yup.object().shape({ + region: Yup.string().required("region is required") +}); + export const fullMedicationInformationSchema = Yup.object().shape({ - drugId: Yup.string().required("drugId is required"), + drugId: Yup.string().required("drugId is required") }); \ No newline at end of file