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
772f8e8b
Commit
772f8e8b
authored
Mar 12, 2025
by
Ooh-Ao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
projectequirement
parent
5764e416
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
177 additions
and
0 deletions
+177
-0
app.js
API/src/app.js
+3
-0
projectEquipmentController.js
API/src/controllers/projectEquipmentController.js
+106
-0
ProjectEquipment.js
API/src/models/ProjectEquipment.js
+47
-0
projectEquipmentRoutes.js
API/src/routes/projectEquipmentRoutes.js
+21
-0
No files found.
API/src/app.js
View file @
772f8e8b
...
...
@@ -6,6 +6,8 @@ const authRoutes = require('./routes/authRoutes');
const
equipmentRoutes
=
require
(
'./routes/equipmentRoutes'
);
const
projectRoutes
=
require
(
'./routes/projectRoutes'
);
const
projectMemberRoutes
=
require
(
'./routes/projectMemberRoutes'
);
const
projectEquipmentRoutes
=
require
(
'./routes/projectEquipmentRoutes'
);
const
sequelize
=
require
(
'./config/database'
);
// instance ของ sequelize
const
app
=
express
();
...
...
@@ -21,6 +23,7 @@ app.use('/api/auth', authRoutes);
app
.
use
(
'/api/equipments'
,
equipmentRoutes
);
app
.
use
(
'/api/projects'
,
projectRoutes
);
app
.
use
(
'/api/project-members'
,
projectMemberRoutes
);
app
.
use
(
'/api/project-equipments'
,
projectEquipmentRoutes
);
...
...
API/src/controllers/projectEquipmentController.js
0 → 100644
View file @
772f8e8b
// controllers/projectEquipmentController.js
const
ProjectEquipment
=
require
(
'../models/ProjectEquipment'
);
/**
* สร้างข้อมูล ProjectEquipment ใหม่ (Create)
*/
exports
.
createProjectEquipment
=
async
(
req
,
res
)
=>
{
try
{
// ข้อมูลจาก body เช่น { project_id, equipment_id, quantity_in_project }
const
{
project_id
,
equipment_id
,
quantity_in_project
}
=
req
.
body
;
const
newPE
=
await
ProjectEquipment
.
create
({
project_id
,
equipment_id
,
quantity_in_project
});
return
res
.
status
(
201
).
json
({
message
:
'ProjectEquipment created successfully'
,
projectEquipment
:
newPE
});
}
catch
(
error
)
{
console
.
error
(
error
);
return
res
.
status
(
500
).
json
({
error
:
error
.
message
});
}
};
/**
* ดึงข้อมูล ProjectEquipments ทั้งหมด (Read All)
*/
exports
.
getAllProjectEquipments
=
async
(
req
,
res
)
=>
{
try
{
const
pes
=
await
ProjectEquipment
.
findAll
();
return
res
.
status
(
200
).
json
(
pes
);
}
catch
(
error
)
{
console
.
error
(
error
);
return
res
.
status
(
500
).
json
({
error
:
error
.
message
});
}
};
/**
* ดึงข้อมูล ProjectEquipment ตาม pe_id (Read One)
*/
exports
.
getProjectEquipmentById
=
async
(
req
,
res
)
=>
{
try
{
const
{
id
}
=
req
.
params
;
// pe_id
const
pe
=
await
ProjectEquipment
.
findByPk
(
id
);
if
(
!
pe
)
{
return
res
.
status
(
404
).
json
({
error
:
'ProjectEquipment not found'
});
}
return
res
.
status
(
200
).
json
(
pe
);
}
catch
(
error
)
{
console
.
error
(
error
);
return
res
.
status
(
500
).
json
({
error
:
error
.
message
});
}
};
/**
* อัปเดตข้อมูล ProjectEquipment (Update)
*/
exports
.
updateProjectEquipment
=
async
(
req
,
res
)
=>
{
try
{
const
{
id
}
=
req
.
params
;
const
{
project_id
,
equipment_id
,
quantity_in_project
}
=
req
.
body
;
const
[
rowsUpdated
]
=
await
ProjectEquipment
.
update
(
{
project_id
,
equipment_id
,
quantity_in_project
},
{
where
:
{
pe_id
:
id
}
}
);
if
(
!
rowsUpdated
)
{
return
res
.
status
(
404
).
json
({
error
:
'ProjectEquipment not found or no changes'
});
}
// ดึงข้อมูลใหม่หลังอัปเดต
const
updatedPE
=
await
ProjectEquipment
.
findByPk
(
id
);
return
res
.
status
(
200
).
json
({
message
:
'ProjectEquipment updated successfully'
,
projectEquipment
:
updatedPE
});
}
catch
(
error
)
{
console
.
error
(
error
);
return
res
.
status
(
500
).
json
({
error
:
error
.
message
});
}
};
/**
* ลบข้อมูล ProjectEquipment (Delete)
*/
exports
.
deleteProjectEquipment
=
async
(
req
,
res
)
=>
{
try
{
const
{
id
}
=
req
.
params
;
const
rowsDeleted
=
await
ProjectEquipment
.
destroy
({
where
:
{
pe_id
:
id
}
});
if
(
!
rowsDeleted
)
{
return
res
.
status
(
404
).
json
({
error
:
'ProjectEquipment not found'
});
}
return
res
.
status
(
200
).
json
({
message
:
'ProjectEquipment deleted successfully'
});
}
catch
(
error
)
{
console
.
error
(
error
);
return
res
.
status
(
500
).
json
({
error
:
error
.
message
});
}
};
API/src/models/ProjectEquipment.js
0 → 100644
View file @
772f8e8b
// models/ProjectEquipment.js
const
{
DataTypes
}
=
require
(
'sequelize'
);
const
sequelize
=
require
(
'../config/database'
);
const
ProjectEquipment
=
sequelize
.
define
(
'ProjectEquipment'
,
{
pe_id
:
{
type
:
DataTypes
.
UUID
,
defaultValue
:
DataTypes
.
UUIDV4
,
// สร้าง UUID อัตโนมัติ
primaryKey
:
true
,
},
project_id
:
{
type
:
DataTypes
.
UUID
,
allowNull
:
false
,
// references: {
// model: 'projects',
// key: 'project_id'
// },
},
equipment_id
:
{
type
:
DataTypes
.
UUID
,
allowNull
:
false
,
// references: {
// model: 'equipments',
// key: 'equipment_id'
// },
},
quantity_in_project
:
{
type
:
DataTypes
.
INTEGER
,
allowNull
:
false
,
defaultValue
:
0
,
},
created_at
:
{
type
:
DataTypes
.
DATE
,
allowNull
:
false
,
defaultValue
:
DataTypes
.
NOW
,
},
updated_at
:
{
type
:
DataTypes
.
DATE
,
allowNull
:
false
,
defaultValue
:
DataTypes
.
NOW
,
},
},
{
tableName
:
'project_equipments'
,
timestamps
:
false
,
// ถ้าไม่ต้องการให้ Sequelize จัดการ createdAt, updatedAt ให้เอง
});
module
.
exports
=
ProjectEquipment
;
API/src/routes/projectEquipmentRoutes.js
0 → 100644
View file @
772f8e8b
// routes/projectEquipmentRoutes.js
const
express
=
require
(
'express'
);
const
router
=
express
.
Router
();
const
peController
=
require
(
'../controllers/projectEquipmentController'
);
// สร้างข้อมูลใหม่ (Create)
router
.
post
(
'/'
,
peController
.
createProjectEquipment
);
// ดึงข้อมูลทั้งหมด (Read All)
router
.
get
(
'/'
,
peController
.
getAllProjectEquipments
);
// ดึงข้อมูลตาม pe_id (Read One)
router
.
get
(
'/:id'
,
peController
.
getProjectEquipmentById
);
// อัปเดตข้อมูล (Update)
router
.
put
(
'/:id'
,
peController
.
updateProjectEquipment
);
// ลบข้อมูล (Delete)
router
.
delete
(
'/:id'
,
peController
.
deleteProjectEquipment
);
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