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
d0a0adcd
Commit
d0a0adcd
authored
Mar 11, 2025
by
Ooh-Ao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
projects
parent
757e1cfe
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
180 additions
and
0 deletions
+180
-0
app.js
API/src/app.js
+4
-0
projectController.js
API/src/controllers/projectController.js
+113
-0
Project.js
API/src/models/Project.js
+42
-0
projectRoutes.js
API/src/routes/projectRoutes.js
+21
-0
No files found.
API/src/app.js
View file @
d0a0adcd
...
...
@@ -4,6 +4,8 @@ const { connectDB } = require('./utils/db');
const
userRoutes
=
require
(
'./routes/userRoutes'
);
const
authRoutes
=
require
(
'./routes/authRoutes'
);
const
equipmentRoutes
=
require
(
'./routes/equipmentRoutes'
);
const
projectRoutes
=
require
(
'./routes/projectRoutes'
);
const
sequelize
=
require
(
'./config/database'
);
// instance ของ sequelize
const
app
=
express
();
...
...
@@ -17,6 +19,8 @@ app.use(express.json());
app
.
use
(
'/api/users'
,
userRoutes
);
app
.
use
(
'/api/auth'
,
authRoutes
);
app
.
use
(
'/api/equipments'
,
equipmentRoutes
);
app
.
use
(
'/api/projects'
,
projectRoutes
);
...
...
API/src/controllers/projectController.js
0 → 100644
View file @
d0a0adcd
// controllers/projectController.js
const
Project
=
require
(
'../models/Project'
);
/**
* สร้างโครงการใหม่ (Create)
*/
exports
.
createProject
=
async
(
req
,
res
)
=>
{
try
{
// ข้อมูลที่ต้องการจาก body เช่น: { project_name, project_desc, start_date, end_date }
const
{
project_name
,
project_desc
,
start_date
,
end_date
}
=
req
.
body
;
const
newProject
=
await
Project
.
create
({
project_name
,
project_desc
,
start_date
,
end_date
});
return
res
.
status
(
201
).
json
({
message
:
'Project created successfully'
,
project
:
newProject
});
}
catch
(
error
)
{
console
.
error
(
error
);
return
res
.
status
(
500
).
json
({
error
:
error
.
message
});
}
};
/**
* ดึงข้อมูลโครงการทั้งหมด (Read All)
*/
exports
.
getAllProjects
=
async
(
req
,
res
)
=>
{
try
{
const
projects
=
await
Project
.
findAll
();
return
res
.
status
(
200
).
json
(
projects
);
}
catch
(
error
)
{
console
.
error
(
error
);
return
res
.
status
(
500
).
json
({
error
:
error
.
message
});
}
};
/**
* ดึงข้อมูลโครงการจาก ID (Read One)
*/
exports
.
getProjectById
=
async
(
req
,
res
)
=>
{
try
{
const
{
id
}
=
req
.
params
;
const
project
=
await
Project
.
findByPk
(
id
);
if
(
!
project
)
{
return
res
.
status
(
404
).
json
({
error
:
'Project not found'
});
}
return
res
.
status
(
200
).
json
(
project
);
}
catch
(
error
)
{
console
.
error
(
error
);
return
res
.
status
(
500
).
json
({
error
:
error
.
message
});
}
};
/**
* อัปเดตข้อมูลโครงการ (Update)
*/
exports
.
updateProject
=
async
(
req
,
res
)
=>
{
try
{
const
{
id
}
=
req
.
params
;
const
{
project_name
,
project_desc
,
start_date
,
end_date
}
=
req
.
body
;
const
[
rowsUpdated
]
=
await
Project
.
update
(
{
project_name
,
project_desc
,
start_date
,
end_date
},
{
where
:
{
project_id
:
id
},
}
);
if
(
!
rowsUpdated
)
{
return
res
.
status
(
404
).
json
({
error
:
'Project not found or no changes'
});
}
// ค้นหาข้อมูลที่เพิ่งอัปเดตเพื่อส่งกลับ
const
updatedProject
=
await
Project
.
findByPk
(
id
);
return
res
.
status
(
200
).
json
({
message
:
'Project updated successfully'
,
project
:
updatedProject
});
}
catch
(
error
)
{
console
.
error
(
error
);
return
res
.
status
(
500
).
json
({
error
:
error
.
message
});
}
};
/**
* ลบโครงการ (Delete)
*/
exports
.
deleteProject
=
async
(
req
,
res
)
=>
{
try
{
const
{
id
}
=
req
.
params
;
const
rowsDeleted
=
await
Project
.
destroy
({
where
:
{
project_id
:
id
}
});
if
(
!
rowsDeleted
)
{
return
res
.
status
(
404
).
json
({
error
:
'Project not found'
});
}
return
res
.
status
(
200
).
json
({
message
:
'Project deleted successfully'
});
}
catch
(
error
)
{
console
.
error
(
error
);
return
res
.
status
(
500
).
json
({
error
:
error
.
message
});
}
};
API/src/models/Project.js
0 → 100644
View file @
d0a0adcd
// models/Project.js
const
{
DataTypes
}
=
require
(
'sequelize'
);
const
sequelize
=
require
(
'../config/database'
);
const
Project
=
sequelize
.
define
(
'Project'
,
{
project_id
:
{
type
:
DataTypes
.
UUID
,
defaultValue
:
DataTypes
.
UUIDV4
,
// สร้าง UUID อัตโนมัติ
primaryKey
:
true
,
},
project_name
:
{
type
:
DataTypes
.
STRING
(
255
),
allowNull
:
false
,
},
project_desc
:
{
type
:
DataTypes
.
TEXT
,
allowNull
:
true
,
},
start_date
:
{
type
:
DataTypes
.
DATEONLY
,
// ถ้าต้องการเฉพาะวัน (YYYY-MM-DD)
allowNull
:
true
,
},
end_date
:
{
type
:
DataTypes
.
DATEONLY
,
allowNull
:
true
,
},
created_at
:
{
type
:
DataTypes
.
DATE
,
allowNull
:
false
,
defaultValue
:
DataTypes
.
NOW
,
},
updated_at
:
{
type
:
DataTypes
.
DATE
,
allowNull
:
false
,
defaultValue
:
DataTypes
.
NOW
,
},
},
{
tableName
:
'projects'
,
timestamps
:
false
,
// ถ้าไม่ใช้ createdAt, updatedAt แบบอัตโนมัติ
});
module
.
exports
=
Project
;
API/src/routes/projectRoutes.js
0 → 100644
View file @
d0a0adcd
// routes/projectRoutes.js
const
express
=
require
(
'express'
);
const
router
=
express
.
Router
();
const
projectController
=
require
(
'../controllers/projectController'
);
// สร้างโครงการใหม่
router
.
post
(
'/'
,
projectController
.
createProject
);
// ดึงข้อมูลโครงการทั้งหมด
router
.
get
(
'/'
,
projectController
.
getAllProjects
);
// ดึงข้อมูลโครงการโดย ID
router
.
get
(
'/:id'
,
projectController
.
getProjectById
);
// อัปเดตข้อมูลโครงการ
router
.
put
(
'/:id'
,
projectController
.
updateProject
);
// ลบโครงการ
router
.
delete
(
'/:id'
,
projectController
.
deleteProject
);
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