feat: complete day 14

This commit is contained in:
Ayobami
2025-07-18 20:12:09 +01:00
parent 7d9350c3df
commit 9113ba4c74
12 changed files with 437 additions and 43 deletions
@@ -0,0 +1,51 @@
const express = require('express');
const router = express.Router();
const model = require('../models/email.model.js');
// CREATE
router.post('/', async (req, res) => {
try {
const data = await model.create(req.body);
res.status(201).json(data);
} catch (error) {
res.status(400).json({ error: error.message });
}
});
// READ ALL
router.get('/', async (req, res) => {
try {
const data = await model.findAll();
res.json(data);
} catch (error) {
res.status(500).json({ error: error.message });
}
});
// UPDATE
router.put('/:id', async (req, res) => {
try {
const updated = await model.update(req.body, {
where: { id: req.params.id }
});
if (updated[0] === 0) return res.status(404).json({ error: 'Not found' });
res.json(await model.findByPk(req.params.id));
} catch (error) {
res.status(400).json({ error: error.message });
}
});
// DELETE
router.delete('/:id', async (req, res) => {
try {
const deleted = await model.destroy({
where: { id: req.params.id }
});
if (!deleted) return res.status(404).json({ error: 'Not found' });
res.status(204).send();
} catch (error) {
res.status(500).json({ error: error.message });
}
});
module.exports = router;
@@ -0,0 +1,51 @@
const express = require('express');
const router = express.Router();
const model = require('../models/location.model.js');
// CREATE
router.post('/', async (req, res) => {
try {
const data = await model.create(req.body);
res.status(201).json(data);
} catch (error) {
res.status(400).json({ error: error.message });
}
});
// READ ALL
router.get('/', async (req, res) => {
try {
const data = await model.findAll();
res.json(data);
} catch (error) {
res.status(500).json({ error: error.message });
}
});
// UPDATE
router.put('/:id', async (req, res) => {
try {
const updated = await model.update(req.body, {
where: { id: req.params.id }
});
if (updated[0] === 0) return res.status(404).json({ error: 'Not found' });
res.json(await model.findByPk(req.params.id));
} catch (error) {
res.status(400).json({ error: error.message });
}
});
// DELETE
router.delete('/:id', async (req, res) => {
try {
const deleted = await model.destroy({
where: { id: req.params.id }
});
if (!deleted) return res.status(404).json({ error: 'Not found' });
res.status(204).send();
} catch (error) {
res.status(500).json({ error: error.message });
}
});
module.exports = router;
@@ -0,0 +1,51 @@
const express = require('express');
const router = express.Router();
const model = require('../models/sms.model.js');
// CREATE
router.post('/', async (req, res) => {
try {
const data = await model.create(req.body);
res.status(201).json(data);
} catch (error) {
res.status(400).json({ error: error.message });
}
});
// READ ALL
router.get('/', async (req, res) => {
try {
const data = await model.findAll();
res.json(data);
} catch (error) {
res.status(500).json({ error: error.message });
}
});
// UPDATE
router.put('/:id', async (req, res) => {
try {
const updated = await model.update(req.body, {
where: { id: req.params.id }
});
if (updated[0] === 0) return res.status(404).json({ error: 'Not found' });
res.json(await model.findByPk(req.params.id));
} catch (error) {
res.status(400).json({ error: error.message });
}
});
// DELETE
router.delete('/:id', async (req, res) => {
try {
const deleted = await model.destroy({
where: { id: req.params.id }
});
if (!deleted) return res.status(404).json({ error: 'Not found' });
res.status(204).send();
} catch (error) {
res.status(500).json({ error: error.message });
}
});
module.exports = router;
@@ -0,0 +1,51 @@
const express = require('express');
const router = express.Router();
const model = require('../models/user.model.js');
// CREATE
router.post('/', async (req, res) => {
try {
const data = await model.create(req.body);
res.status(201).json(data);
} catch (error) {
res.status(400).json({ error: error.message });
}
});
// READ ALL
router.get('/', async (req, res) => {
try {
const data = await model.findAll();
res.json(data);
} catch (error) {
res.status(500).json({ error: error.message });
}
});
// UPDATE
router.put('/:id', async (req, res) => {
try {
const updated = await model.update(req.body, {
where: { id: req.params.id }
});
if (updated[0] === 0) return res.status(404).json({ error: 'Not found' });
res.json(await model.findByPk(req.params.id));
} catch (error) {
res.status(400).json({ error: error.message });
}
});
// DELETE
router.delete('/:id', async (req, res) => {
try {
const deleted = await model.destroy({
where: { id: req.params.id }
});
if (!deleted) return res.status(404).json({ error: 'Not found' });
res.status(204).send();
} catch (error) {
res.status(500).json({ error: error.message });
}
});
module.exports = router;
+20
View File
@@ -0,0 +1,20 @@
const { DataTypes } = require('sequelize');
module.exports = (sequelize) => {
return sequelize.define('email', {
id: {
type: DataTypes.INTEGER,
allowNull: false
},
email: {
type: DataTypes.STRING,
allowNull: false
},
status: {
type: DataTypes.INTEGER,
allowNull: false
}
}, {
timestamps: true
});
};
+20
View File
@@ -0,0 +1,20 @@
const { DataTypes } = require('sequelize');
module.exports = (sequelize) => {
return sequelize.define('location', {
id: {
type: DataTypes.INTEGER,
allowNull: false
},
name: {
type: DataTypes.STRING,
allowNull: false
},
status: {
type: DataTypes.INTEGER,
allowNull: false
}
}, {
timestamps: true
});
};
+20
View File
@@ -0,0 +1,20 @@
const { DataTypes } = require('sequelize');
module.exports = (sequelize) => {
return sequelize.define('sms', {
id: {
type: DataTypes.INTEGER,
allowNull: false
},
phone: {
type: DataTypes.STRING,
allowNull: false
},
status: {
type: DataTypes.INTEGER,
allowNull: false
}
}, {
timestamps: true
});
};
+24
View File
@@ -0,0 +1,24 @@
const { DataTypes } = require('sequelize');
module.exports = (sequelize) => {
return sequelize.define('user', {
id: {
type: DataTypes.INTEGER,
allowNull: false
},
name: {
type: DataTypes.STRING,
allowNull: false
},
email: {
type: DataTypes.STRING,
allowNull: false
},
status: {
type: DataTypes.INTEGER,
allowNull: false
}
}, {
timestamps: true
});
};