Commit 2ef7f920 by Ooh-Ao

equrement

parent 6b82e1aa
......@@ -3,6 +3,8 @@ const cors = require('cors');
const { connectDB } = require('./utils/db');
const userRoutes = require('./routes/userRoutes');
const authRoutes = require('./routes/authRoutes');
const equipmentRoutes = require('./routes/equipmentRoutes');
const sequelize = require('./config/database'); // instance ของ sequelize
const app = express();
app.use(cors({
......@@ -14,10 +16,17 @@ app.use(cors({
app.use(express.json());
app.use('/api/users', userRoutes);
app.use('/api/auth', authRoutes);
app.use('/equipments', equipmentRoutes);
sequelize.sync({ force: false })
.then(() => {
console.log('Database synced successfully');
})
.catch((err) => {
console.error('Error syncing database', err);
});
connectDB();
......
// controllers/equipmentController.js
const Equipment = require('../models/Equipment');
/**
* สร้างอุปกรณ์ใหม่ (Create)
*/
exports.createEquipment = async (req, res) => {
try {
// ข้อมูลที่จะรับจาก client ตัวอย่าง req.body = { equipment_name, description, quantity_total, location }
const { equipment_name, description, quantity_total, location } = req.body;
const newEquipment = await Equipment.create({
equipment_name,
description,
quantity_total,
location
});
return res.status(201).json({
message: 'Equipment created successfully',
equipment: newEquipment
});
} catch (error) {
console.error(error);
return res.status(500).json({ error: error.message });
}
};
/**
* ดึงข้อมูลอุปกรณ์ทั้งหมด (Read All)
*/
exports.getAllEquipment = async (req, res) => {
try {
const equipments = await Equipment.findAll();
return res.status(200).json(equipments);
} catch (error) {
console.error(error);
return res.status(500).json({ error: error.message });
}
};
/**
* ดึงข้อมูลอุปกรณ์เฉพาะตัว (Read One)
*/
exports.getEquipmentById = async (req, res) => {
try {
const { id } = req.params; // equipment_id
const equipment = await Equipment.findByPk(id);
if (!equipment) {
return res.status(404).json({ error: 'Equipment not found' });
}
return res.status(200).json(equipment);
} catch (error) {
console.error(error);
return res.status(500).json({ error: error.message });
}
};
/**
* อัปเดตข้อมูลอุปกรณ์ (Update)
*/
exports.updateEquipment = async (req, res) => {
try {
const { id } = req.params;
const { equipment_name, description, quantity_total, location } = req.body;
const [rowsUpdated] = await Equipment.update(
{
equipment_name,
description,
quantity_total,
location
},
{
where: { equipment_id: id },
}
);
if (!rowsUpdated) {
return res.status(404).json({ error: 'Equipment not found or no changes' });
}
// หากต้องการส่งข้อมูลใหม่ที่เพิ่งอัปเดตกลับไป
const updatedEquipment = await Equipment.findByPk(id);
return res.status(200).json({
message: 'Equipment updated successfully',
equipment: updatedEquipment
});
} catch (error) {
console.error(error);
return res.status(500).json({ error: error.message });
}
};
/**
* ลบอุปกรณ์ (Delete)
*/
exports.deleteEquipment = async (req, res) => {
try {
const { id } = req.params;
const rowsDeleted = await Equipment.destroy({ where: { equipment_id: id } });
if (!rowsDeleted) {
return res.status(404).json({ error: 'Equipment not found' });
}
return res.status(200).json({ message: 'Equipment deleted successfully' });
} catch (error) {
console.error(error);
return res.status(500).json({ error: error.message });
}
};
// models/Equipment.js
const { DataTypes } = require('sequelize');
const sequelize = require('../config/database');
const Equipment = sequelize.define('Equipment', {
equipment_id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4, // สร้าง UUID อัตโนมัติ
primaryKey: true,
},
equipment_name: {
type: DataTypes.STRING(255),
allowNull: false,
},
description: {
type: DataTypes.TEXT,
allowNull: true,
},
quantity_total: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 0,
},
location: {
type: DataTypes.STRING(255),
allowNull: true,
},
created_at: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: DataTypes.NOW,
},
updated_at: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: DataTypes.NOW,
},
}, {
tableName: 'equipments',
timestamps: false, // ถ้าไม่ใช้ createdAt, updatedAt ตามค่า default ของ sequelize
});
module.exports = Equipment;
// routes/equipmentRoutes.js
const express = require('express');
const router = express.Router();
const equipmentController = require('../controllers/equipmentController');
// สร้างอุปกรณ์ใหม่
router.post('/', equipmentController.createEquipment);
// ดึงข้อมูลอุปกรณ์ทั้งหมด
router.get('/', equipmentController.getAllEquipment);
// ดึงข้อมูลอุปกรณ์จาก ID
router.get('/:id', equipmentController.getEquipmentById);
// อัปเดตข้อมูลอุปกรณ์
router.put('/:id', equipmentController.updateEquipment);
// ลบอุปกรณ์
router.delete('/:id', equipmentController.deleteEquipment);
module.exports = router;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment