From 237dbfdaeee84dff90d1f7dc920831e7ab17db16 Mon Sep 17 00:00:00 2001 From: Yehia Mohamed <102627389+YehiaFarghaly@users.noreply.github.com> Date: Sun, 8 Oct 2023 00:32:21 +0200 Subject: [PATCH] add axios and cors --- client/src/utils/AxiosConfig.js | 21 +++++++++++++++++++++ clinic/package-lock.json | 26 +++++++++++++++++++++++--- clinic/package.json | 1 + clinic/src/app.js | 7 ++++++- patient/package-lock.json | 26 +++++++++++++++++++++++--- patient/package.json | 1 + patient/src/app.js | 23 ++++++++++++++--------- 7 files changed, 89 insertions(+), 16 deletions(-) create mode 100644 client/src/utils/AxiosConfig.js diff --git a/client/src/utils/AxiosConfig.js b/client/src/utils/AxiosConfig.js new file mode 100644 index 00000000..f35b8d3e --- /dev/null +++ b/client/src/utils/AxiosConfig.js @@ -0,0 +1,21 @@ +import axios from 'axios'; + +// Define the base URLs for each microservice +const clinicBaseUrl = 'http://localhost:8001'; +const patientBaseUrl = 'http://localhost:8002'; +const pharmacyBaseUrl = 'http://localhost:8003'; + +export const clinicAxios = axios.create({ + baseURL: clinicBaseUrl, + withCredentials: true, +}); + +export const patientAxios = axios.create({ + baseURL: patientBaseUrl, + withCredentials: true, +}); + +export const pharmacyAxios = axios.create({ + baseURL: pharmacyBaseUrl, + withCredentials: true, +}); diff --git a/clinic/package-lock.json b/clinic/package-lock.json index 1c6c3cb8..71d08826 100644 --- a/clinic/package-lock.json +++ b/clinic/package-lock.json @@ -10,6 +10,7 @@ "license": "ISC", "dependencies": { "axios": "^1.5.1", + "cors": "^2.8.5", "dotenv": "^16.3.1", "express": "^4.18.2", "mongoose": "^7.5.3", @@ -645,6 +646,18 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -2408,7 +2421,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -4034,6 +4046,15 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -5316,8 +5337,7 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, "object-inspect": { "version": "1.12.3", diff --git a/clinic/package.json b/clinic/package.json index b3b21250..fb7e11cc 100644 --- a/clinic/package.json +++ b/clinic/package.json @@ -16,6 +16,7 @@ }, "dependencies": { "axios": "^1.5.1", + "cors": "^2.8.5", "dotenv": "^16.3.1", "express": "^4.18.2", "mongoose": "^7.5.3", diff --git a/clinic/src/app.js b/clinic/src/app.js index b96477d1..fab3b8ff 100644 --- a/clinic/src/app.js +++ b/clinic/src/app.js @@ -3,6 +3,7 @@ import mongoose from 'mongoose'; import dotenv from 'dotenv'; import { healthPackage } from './api/HealthPackageAPI.js'; import { PORT } from './utils/Constants.js'; +import cors from 'cors'; //import {doctor } from './api/doctor.js'; //import {appointment } from './api/appointment.js'; //import {admin } from './api/admin.js'; @@ -18,13 +19,17 @@ const connect = async () => { await mongoose.connect(mongoURL); console.log('Database connected'); } catch (err) { - console.error('Error connecting to the database:', err); + console.error('Error connecting to the database:', err); } }; await connect(); app.use(express.json()); +app.use(cors({ + origin: ["http://localhost:3000","http://localhost:3001", "http://localhost:3002"], + credentials: true + })) healthPackage(app); //admin(app); diff --git a/patient/package-lock.json b/patient/package-lock.json index 20207fa2..7d4fc7a5 100644 --- a/patient/package-lock.json +++ b/patient/package-lock.json @@ -9,6 +9,7 @@ "version": "1.0.0", "license": "ISC", "dependencies": { + "cors": "^2.8.5", "dotenv": "^16.3.1", "express": "^4.18.2", "mongoose": "^7.5.3", @@ -661,6 +662,18 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -2390,7 +2403,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -4000,6 +4012,15 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -5263,8 +5284,7 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, "object-inspect": { "version": "1.12.3", diff --git a/patient/package.json b/patient/package.json index 5806c2d6..d45d4a62 100644 --- a/patient/package.json +++ b/patient/package.json @@ -11,6 +11,7 @@ "author": "", "license": "ISC", "dependencies": { + "cors": "^2.8.5", "dotenv": "^16.3.1", "express": "^4.18.2", "mongoose": "^7.5.3", diff --git a/patient/src/app.js b/patient/src/app.js index 4a321200..8bcde78f 100644 --- a/patient/src/app.js +++ b/patient/src/app.js @@ -3,6 +3,7 @@ import mongoose from 'mongoose'; import dotenv from 'dotenv'; import { patient } from './api/patient.js'; import { PORT_NUMBER } from './utils/Constants.js'; +import cors from 'cors'; dotenv.config(); const app = express(); @@ -11,21 +12,25 @@ const mongoURL = process.env.MONGO_URI; const connect = async () => { try { - await mongoose.connect( mongoURL ); - console.log( 'Database connected' ); - } catch ( err ) { - console.error( 'Error connecting to the database:', err ); + await mongoose.connect(mongoURL); + console.log('Database connected'); + } catch (err) { + console.error('Error connecting to the database:', err); } }; await connect(); -app.use( express.json() ); +app.use(express.json()); +app.use(cors({ + origin: ["http://localhost:3000","http://localhost:3001", "http://localhost:3002"], + credentials: true +})) -patient( app ); +patient(app); const port = process.env.PORT || PORT_NUMBER; -app.listen( port, () => { - console.log( `Server is running on port ${port}` ); -} ); \ No newline at end of file +app.listen(port, () => { + console.log(`Server is running on port ${port}`); +}); \ No newline at end of file