user.go
943 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package handler
import (
"strconv"
"github.com/gofiber/fiber/v3"
"ui.ac.id/dtd/go-webserver-boilerplate/internal/domain"
"ui.ac.id/dtd/go-webserver-boilerplate/internal/handler/specification"
)
type UserHandler struct {
service domain.UserService
}
func NewUserHandler(service domain.UserService) *UserHandler {
return &UserHandler{
service: service,
}
}
func (h *UserHandler) GetUserList(ctx fiber.Ctx) error {
users, err := h.service.GetList()
if err != nil {
return err
}
response := NewBaseResponse(200, specification.UserListResponse{Users: users}, nil)
return ctx.JSON(response)
}
func (h *UserHandler) GetUserDetail(ctx fiber.Ctx) error {
userIDParams := ctx.Params("id")
userID, err := strconv.Atoi(userIDParams)
user, err := h.service.GetUserDetail(userID)
if err != nil {
return err
}
response := NewBaseResponse(200, specification.UserDetailResponse{User: *user}, nil)
return ctx.JSON(response)
}