Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
BookingMyHrManagement
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Registry
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chanachai
BookingMyHrManagement
Commits
2ef7f920
Commit
2ef7f920
authored
Mar 11, 2025
by
Ooh-Ao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
equrement
parent
6b82e1aa
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
187 additions
and
1 deletions
+187
-1
app.js
API/src/app.js
+10
-1
equipmentController.js
API/src/controllers/equipmentController.js
+113
-0
Equipment.js
API/src/models/Equipment.js
+43
-0
equipmentRoutes.js
API/src/routes/equipmentRoutes.js
+21
-0
No files found.
API/src/app.js
View file @
2ef7f920
...
...
@@ -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
();
...
...
API/src/controllers/equipmentController.js
0 → 100644
View file @
2ef7f920
// 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
});
}
};
API/src/models/Equipment.js
0 → 100644
View file @
2ef7f920
// 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
;
API/src/routes/equipmentRoutes.js
0 → 100644
View file @
2ef7f920
// 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
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment