perbaikan

This commit is contained in:
2025-08-16 05:01:39 +07:00
parent c14587996e
commit ac15da3ed3
4 changed files with 89 additions and 80 deletions

View File

@@ -3,8 +3,7 @@ package handlers
import (
"net/http"
"api-service/internal/models/employee"
"api-service/internal/models"
"github.com/gin-gonic/gin"
"github.com/google/uuid"
)
@@ -14,66 +13,70 @@ type EmployeeHandler struct{}
// NewEmployeeHandler creates a new EmployeeHandler
func NewEmployeeHandler() *EmployeeHandler {
// return &%!s(MISSING)Handler{}
return &EmployeeHandler{}
}
// GetEmployee godoc
// @Summary Get employee
// @Description Returns a list of employees
// @Tags employee
// @Accept json
// @Produce json
// @Success 200 {object} employee.EmployeeGetResponse "Employee GET response"
// @Success 200 {object} models.EmployeeGetResponse "Employee GET response"
// @Router /api/v1/employees [get]
func (h *EmployeeHandler) GetEmployee(c *gin.Context) {
response := employee.EmployeeGetResponse{
Message: "List of Employee",
response := models.EmployeeGetResponse{
Message: "List of employees",
Data: []string{"Employee 1", "Employee 2"},
}
c.JSON(http.StatusOK, response)
}
// GetemployeeByID godoc
// GetEmployeeByID godoc
// @Summary Get employee by ID
// @Description Returns a single employee by ID
// @Tags Employee
// @Tags employee
// @Accept json
// @Produce json
// @Param id path string true "employee ID"
// @Success 200 {object} Employee.EmployeeGetByIDResponse "employee GET by ID response"
// @Failure 404 {object} Employee.ErrorResponse "Employee not found"
// @Router /api/v1/employee/{id} [get]
func (h *EmployeeHandler) GetemployeeByID(c *gin.Context) {
// @Param id path string true "Employee ID"
// @Success 200 {object} models.EmployeeGetByIDResponse "Employee GET by ID response"
// @Failure 404 {object} models.ErrorResponse "employee not found"
// @Router /api/v1/Employee/{id} [get]
func (h *EmployeeHandler) GetEmployeeByID(c *gin.Context) {
id := c.Param("id")
response := Employee.%!s(MISSING)GetByIDResponse{
response := models.EmployeeGetByIDResponse{
ID: id,
Message: "%!s(MISSING) details",
Message: "employee details",
}
c.JSON(http.StatusOK, response)
}
}%!(EXTRA string=Employee)
// CreateEmployee godoc
// @Summary Create employee
// @Description Creates a new employee
// @Tags employee
// @Accept json
// @Produce json
// @Param request body employee.EmployeeCreateRequest true "Employee creation request"
// @Success 201 {object} employee.EmployeeCreateResponse "Employee created successfully"
// @Failure 400 {object} employee.ErrorResponse "Bad request"
// @Router /api/v1/Employee [post]
func (h *EmployeeHandler) Createemployee(c *gin.Context) {
var req Employee.EmployeeCreateRequest
// @Param request body models.EmployeeCreateRequest true "Employee creation request"
// @Success 201 {object} models.EmployeeCreateResponse "Employee created successfully"
// @Failure 400 {object} models.ErrorResponse "Bad request"
// @Router /api/v1/employees [post]
func (h *EmployeeHandler) CreateEmployee(c *gin.Context) {
var req models.EmployeeCreateRequest
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
response := %!s(MISSING).%!s(MISSING)CreateResponse{
response := models.EmployeeCreateResponse{
ID: uuid.NewString(),
Message: "%!s(MISSING) created successfully",
Message: "Employee created successfully",
Data: req,
}
c.JSON(http.StatusCreated, response)
}
// UpdateEmployee godoc
// @Summary Update employee
// @Description Updates an existing employee
@@ -81,26 +84,27 @@ func (h *EmployeeHandler) Createemployee(c *gin.Context) {
// @Accept json
// @Produce json
// @Param id path string true "Employee ID"
// @Param request body employee.EmployeeUpdateRequest true "Employee update request"
// @Success 200 {object} Employee.employeeUpdateResponse "Employee updated successfully"
// @Failure 400 {object} employee.ErrorResponse "Bad request"
// @Failure 404 {object} Employee.ErrorResponse "employee not found"
// @Param request body models.employeeUpdateRequest true "Employee update request"
// @Success 200 {object} models.EmployeeUpdateResponse "Employee updated successfully"
// @Failure 400 {object} models.ErrorResponse "Bad request"
// @Failure 404 {object} models.ErrorResponse "employee not found"
// @Router /api/v1/Employee/{id} [put]
func (h *EmployeeHandler) UpdateEmployee(c *gin.Context) {
id := c.Param("id")
var req Employee.%!s(MISSING)UpdateRequest
var req models.employeeUpdateRequest
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
response := %!s(MISSING).%!s(MISSING)UpdateResponse{
response := models.EmployeeUpdateResponse{
ID: id,
Message: "%!s(MISSING) updated successfully",
Message: "Employee updated successfully",
Data: req,
}
c.JSON(http.StatusOK, response)
}
}%!(EXTRA string=Employee, string=Employee)
// DeleteEmployee godoc
// @Summary Delete employee
// @Description Deletes a employee by ID
@@ -108,14 +112,14 @@ func (h *EmployeeHandler) UpdateEmployee(c *gin.Context) {
// @Accept json
// @Produce json
// @Param id path string true "Employee ID"
// @Success 200 {object} employee.EmployeeDeleteResponse "Employee deleted successfully"
// @Failure 404 {object} employee.ErrorResponse "Employee not found"
// @Router /api/v1/Employee/{id} [delete]
func (h *employeeHandler) DeleteEmployee(c *gin.Context) {
// @Success 200 {object} models.employeeDeleteResponse "Employee deleted successfully"
// @Failure 404 {object} models.ErrorResponse "Employee not found"
// @Router /api/v1/employee/{id} [delete]
func (h *EmployeeHandler) DeleteEmployee(c *gin.Context) {
id := c.Param("id")
response := Employee.%!s(MISSING)DeleteResponse{
response := models.EmployeeDeleteResponse{
ID: id,
Message: "%!s(MISSING) deleted successfully",
Message: "Employee deleted successfully",
}
c.JSON(http.StatusOK, response)
}