LCOV - code coverage report
Current view: top level - adapter/http/controller - user_handler.go Coverage Total Hit
Test: coverage.lcov Lines: 0.0 % 26 0
Test Date: 2026-04-14 06:42:22 Functions: - 0 0

            Line data    Source code
       1              : // Package controller はエンドポイント処理を担当します。
       2              : package controller
       3              : 
       4              : import (
       5              :         "net/http"
       6              :         "strconv"
       7              : 
       8              :         "github.com/gin-gonic/gin"
       9              : 
      10              :         resp "resume/internal/adapter/http/dto/response"
      11              :         "resume/internal/adapter/http/handlerutil"
      12              :         "resume/internal/shared/apperr"
      13              :         "resume/internal/usecase/user"
      14              : )
      15              : 
      16              : // UserHandler はユーザー情報用のハンドラです。
      17              : type UserHandler struct {
      18              :         uc user.Usecase
      19              : }
      20              : 
      21              : // NewUserHandler は UserHandler の新しいインスタンスを生成して返します。
      22              : // ユーザー情報の HTTP リクエストを処理するためのハンドラを初期化します。
      23            0 : func NewUserHandler(uc user.Usecase) *UserHandler {
      24            0 :         return &UserHandler{uc: uc}
      25            0 : }
      26              : 
      27              : // GetByID は GET /api/users/:id を処理します。
      28            0 : func (h *UserHandler) GetByID(c *gin.Context) {
      29            0 :         idStr := c.Param("id")
      30            0 :         id64, err := strconv.ParseUint(idStr, 10, 64)
      31            0 :         if err != nil {
      32            0 :                 handlerutil.WriteError(c,
      33            0 :                         apperr.New(apperr.CodeBadRequest, "invalid user id", map[string]any{
      34            0 :                                 "param": idStr,
      35            0 :                         }))
      36            0 :                 return
      37            0 :         }
      38              : 
      39            0 :         out, err := h.uc.GetByID(c.Request.Context(), user.GetUserInput{ID: id64})
      40            0 :         if err != nil {
      41            0 :                 handlerutil.WriteError(c, err) // usecase側がapperr返却する想定
      42            0 :                 return
      43            0 :         }
      44              : 
      45            0 :         c.JSON(
      46            0 :                 http.StatusOK,
      47            0 :                 resp.FromUsecase(
      48            0 :                         out.ID,
      49            0 :                         out.DisplayName,
      50            0 :                         out.Email,
      51            0 :                 ),
      52            0 :         )
      53              : }
        

Generated by: LCOV version 2.3.1-1