# All files / controllers toolsController.js

0% Statements 0/20
100% Branches 0/0
0% Functions 0/5
0% Lines 0/20

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76

     /**
     * 도구 관리 컨트롤러
     *
     * 도구(공구) 재고 및 위치 관리 API 엔드포인트 핸들러
     *
     * @author TK-FB-Project
     * @since 2025-12-11
     */

    const toolsService = require('../services/toolsService');
    const { asyncHandler } = require('../middlewares/errorHandler');

    /**
     * 전체 도구 조회
     */
    exports.getAll = asyncHandler(async (req, res) => {
      const rows = await toolsService.getAllToolsService();

      res.json({
        success: true,
        data: rows,
        message: '도구 목록 조회 성공'
      });
    });

    /**
     * 단일 도구 조회
     */
    exports.getById = asyncHandler(async (req, res) => {
      const id = parseInt(req.params.id, 10);
      const row = await toolsService.getToolByIdService(id);

      res.json({
        success: true,
        data: row,
        message: '도구 조회 성공'
      });
    });

    /**
     * 도구 생성
     */
    exports.create = asyncHandler(async (req, res) => {
      const result = await toolsService.createToolService(req.body);

      res.status(201).json({
        success: true,
        data: result,
        message: '도구가 성공적으로 생성되었습니다'
      });
    });

    /**
     * 도구 수정
     */
    exports.update = asyncHandler(async (req, res) => {
      const id = parseInt(req.params.id, 10);
      const result = await toolsService.updateToolService(id, req.body);

      res.json({
        success: true,
        data: result,
        message: '도구 정보가 성공적으로 수정되었습니다'
      });
    });

    /**
     * 도구 삭제
     */
    exports.delete = asyncHandler(async (req, res) => {
      const id = parseInt(req.params.id, 10);
      await toolsService.deleteToolService(id);

      res.status(204).send();
    });