Files
Hyungi Ahn 2b1c7bfb88 feat: 다수 기능 개선 - 순찰, 출근, 작업분석, 모바일 UI 등
- 순찰/점검 기능 개선 (zone-detail 페이지 추가)
- 출근/근태 시스템 개선 (연차 조회, 근무현황)
- 작업분석 대분류 그룹화 및 마이그레이션 스크립트
- 모바일 네비게이션 UI 추가
- NAS 배포 도구 및 문서 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 14:41:01 +09:00

228 lines
6.5 KiB
JavaScript

/**
* @swagger
* tags:
* name: Workers
* description: 작업자 관리 API
*/
const express = require('express');
const router = express.Router();
const workerController = require('../controllers/workerController');
/**
* @swagger
* /api/workers:
* post:
* tags: [Workers]
* summary: 작업자 생성
* description: 새로운 작업자를 생성합니다.
* security:
* - bearerAuth: []
* requestBody:
* required: true
* content:
* application/json:
* schema:
* type: object
* required:
* - worker_name
* properties:
* worker_name:
* type: string
* example: "김철수"
* position:
* type: string
* example: "용접공"
* department:
* type: string
* example: "생산부"
* phone:
* type: string
* example: "010-1234-5678"
* email:
* type: string
* format: email
* example: "worker@technicalkorea.com"
* responses:
* 201:
* description: 작업자 생성 성공
* content:
* application/json:
* schema:
* $ref: '#/components/schemas/SuccessResponse'
* 400:
* description: 잘못된 요청
* 401:
* description: 인증 필요
* 500:
* description: 서버 오류
* get:
* tags: [Workers]
* summary: 전체 작업자 조회
* description: 모든 작업자 목록을 조회합니다.
* security:
* - bearerAuth: []
* responses:
* 200:
* description: 작업자 목록 조회 성공
* content:
* application/json:
* schema:
* type: object
* properties:
* success:
* type: boolean
* example: true
* message:
* type: string
* example: "작업자 목록 조회 성공"
* data:
* type: array
* items:
* $ref: '#/components/schemas/Worker'
* meta:
* type: object
* properties:
* count:
* type: integer
* example: 10
* 401:
* description: 인증 필요
* 500:
* description: 서버 오류
*/
router.post('/', workerController.createWorker);
router.get('/', workerController.getAllWorkers);
/**
* @swagger
* /api/workers/{worker_id}:
* get:
* tags: [Workers]
* summary: 특정 작업자 조회
* description: ID로 특정 작업자 정보를 조회합니다.
* security:
* - bearerAuth: []
* parameters:
* - in: path
* name: worker_id
* required: true
* schema:
* type: integer
* description: 작업자 ID
* responses:
* 200:
* description: 작업자 조회 성공
* content:
* application/json:
* schema:
* type: object
* properties:
* success:
* type: boolean
* example: true
* message:
* type: string
* example: "작업자 조회 성공"
* data:
* $ref: '#/components/schemas/Worker'
* 400:
* description: 잘못된 작업자 ID
* 401:
* description: 인증 필요
* 404:
* description: 작업자를 찾을 수 없음
* 500:
* description: 서버 오류
* put:
* tags: [Workers]
* summary: 작업자 정보 수정
* description: 작업자 정보를 수정합니다.
* security:
* - bearerAuth: []
* parameters:
* - in: path
* name: worker_id
* required: true
* schema:
* type: integer
* description: 작업자 ID
* requestBody:
* required: true
* content:
* application/json:
* schema:
* type: object
* properties:
* worker_name:
* type: string
* example: "김철수"
* position:
* type: string
* example: "용접공"
* department:
* type: string
* example: "생산부"
* phone:
* type: string
* example: "010-1234-5678"
* email:
* type: string
* format: email
* example: "worker@technicalkorea.com"
* responses:
* 200:
* description: 작업자 수정 성공
* content:
* application/json:
* schema:
* $ref: '#/components/schemas/SuccessResponse'
* 400:
* description: 잘못된 요청
* 401:
* description: 인증 필요
* 404:
* description: 작업자를 찾을 수 없음
* 500:
* description: 서버 오류
* delete:
* tags: [Workers]
* summary: 작업자 삭제
* description: 작업자를 삭제합니다.
* security:
* - bearerAuth: []
* parameters:
* - in: path
* name: worker_id
* required: true
* schema:
* type: integer
* description: 작업자 ID
* responses:
* 200:
* description: 작업자 삭제 성공
* content:
* application/json:
* schema:
* type: object
* properties:
* success:
* type: boolean
* example: true
* message:
* type: string
* example: "작업자가 성공적으로 삭제되었습니다."
* 400:
* description: 잘못된 작업자 ID
* 401:
* description: 인증 필요
* 404:
* description: 작업자를 찾을 수 없음
* 500:
* description: 서버 오류
*/
router.get('/:worker_id', workerController.getWorkerById);
router.put('/:worker_id', workerController.updateWorker);
router.delete('/:worker_id', workerController.removeWorker);
module.exports = router;