Skip to content

Commit cee84d2

Browse files
committed
medicine backend integrated
1 parent b39214c commit cee84d2

File tree

6 files changed

+478
-147
lines changed

6 files changed

+478
-147
lines changed

back_end/.env

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
PORT=5000
2+
DB_USER=sa
3+
DB_PASSWORD=hammad123
4+
DB_SERVER=DESKTOP-C0O50OH
5+
DB_DATABASE=Healvista

back_end/config/db.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
const sql = require('mssql');
2+
require('dotenv').config();
3+
4+
const config = {
5+
user: process.env.DB_USER,
6+
password: process.env.DB_PASSWORD,
7+
server: process.env.DB_SERVER, // e.g. 'DESKTOP-C0O50OH'
8+
database: process.env.DB_DATABASE,
9+
options: {
10+
encrypt: false, // set to true if using Azure
11+
trustServerCertificate: true
12+
},
13+
port: 1433 // ✅ explicitly define this if needed
14+
};
15+
16+
sql.connect(config)
17+
.then(() => console.log('✅ MSSQL Connected'))
18+
.catch(err => console.error('❌ DB Connection Failed', err));
19+
20+
module.exports = sql;
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
const sql = require('mssql');
2+
3+
// Get all medicines
4+
const getAllMedicines = async (req, res) => {
5+
try {
6+
const request = new sql.Request();
7+
const result = await request.query(`
8+
SELECT
9+
medicine_id,
10+
medicine_name,
11+
stock_quantity,
12+
expiry_date
13+
FROM Pharmacy
14+
`);
15+
res.json(result.recordset);
16+
} catch (err) {
17+
console.error('Database error:', err);
18+
res.status(500).json({ message: 'Error fetching medicines', error: err.message });
19+
}
20+
};
21+
22+
// Add new medicine
23+
const addMedicine = async (req, res) => {
24+
const { medicine_name, stock_quantity, expiry_date } = req.body;
25+
26+
try {
27+
const request = new sql.Request();
28+
request.input('medicine_name', sql.VarChar, medicine_name);
29+
request.input('stock_quantity', sql.Int, stock_quantity);
30+
request.input('expiry_date', sql.Date, new Date(expiry_date));
31+
32+
await request.query(`
33+
INSERT INTO Pharmacy (medicine_name, stock_quantity, expiry_date)
34+
VALUES (@medicine_name, @stock_quantity, @expiry_date)
35+
`);
36+
37+
res.status(201).json({ message: 'Medicine added successfully' });
38+
} catch (err) {
39+
console.error('Database error:', err);
40+
res.status(500).json({ message: 'Error adding medicine', error: err.message });
41+
}
42+
};
43+
44+
// Update medicine
45+
const updateMedicine = async (req, res) => {
46+
const { id } = req.params;
47+
const { medicine_name, stock_quantity, expiry_date } = req.body;
48+
49+
try {
50+
const request = new sql.Request();
51+
request.input('id', sql.Int, id);
52+
request.input('medicine_name', sql.VarChar, medicine_name);
53+
request.input('stock_quantity', sql.Int, stock_quantity);
54+
request.input('expiry_date', sql.Date, new Date(expiry_date));
55+
56+
await request.query(`
57+
UPDATE Pharmacy
58+
SET medicine_name = @medicine_name,
59+
stock_quantity = @stock_quantity,
60+
expiry_date = @expiry_date
61+
WHERE medicine_id = @id
62+
`);
63+
64+
res.json({ message: 'Medicine updated successfully' });
65+
} catch (err) {
66+
console.error('Database error:', err);
67+
res.status(500).json({ message: 'Error updating medicine', error: err.message });
68+
}
69+
};
70+
71+
// Delete medicine
72+
const deleteMedicine = async (req, res) => {
73+
const { id } = req.params;
74+
try {
75+
const request = new sql.Request();
76+
request.input('id', sql.Int, id);
77+
await request.query('DELETE FROM Pharmacy WHERE medicine_id = @id');
78+
res.json({ message: 'Medicine deleted successfully' });
79+
} catch (err) {
80+
console.error('Database error:', err);
81+
res.status(500).json({ message: 'Error deleting medicine', error: err.message });
82+
}
83+
};
84+
85+
module.exports = {
86+
getAllMedicines,
87+
addMedicine,
88+
updateMedicine,
89+
deleteMedicine
90+
};

back_end/routes/pharmacy_routes.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const express = require('express');
2+
const {
3+
getAllMedicines,
4+
addMedicine,
5+
updateMedicine,
6+
deleteMedicine
7+
} = require('../controller/pharmacyController');
8+
9+
const router = express.Router();
10+
11+
router.get('/', getAllMedicines); // GET all medicines
12+
router.post('/', addMedicine); // ADD a new medicine
13+
router.put('/:id', updateMedicine); // UPDATE a medicine
14+
router.delete('/:id', deleteMedicine); // DELETE a medicine
15+
16+
module.exports = router;

back_end/server.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
const express = require('express');
2+
const cors = require('cors');
3+
require('dotenv').config();
4+
require('./config/db'); // connect DB
5+
6+
const app = express();
7+
8+
app.use(cors());
9+
app.use(express.json());
10+
11+
const pharmacyRoutes = require('./routes/pharmacy_routes');
12+
app.use('/api/pharmacy', pharmacyRoutes);
13+
14+
app.get('/', (req, res) => {
15+
res.send("🚀 Healvista Pharmacy Backend Running");
16+
});
17+
18+
const PORT = process.env.PORT || 5000;
19+
app.listen(PORT, () => {
20+
console.log(`🚀 Server started on http://localhost:${PORT}`);
21+
});

0 commit comments

Comments
 (0)