site_assign_request_approval (현장 입사 신청 승인/거절)
현장 관리자가 입사 신청을 승인하거나 거절합니다.
기본 정보
| 항목 |
값 |
| URL |
https://asia-northeast3-construction24-test.cloudfunctions.net/site_assign_request_approval |
| Method |
POST |
| 인증 |
Firebase ID Token 필요 |
| 권한 |
회사 멤버여야 함 |
요청
| 헤더 |
값 |
필수 |
설명 |
| Authorization |
Bearer |
O |
Firebase ID Token |
| Content-Type |
application/json |
O |
- |
Body
| 필드 |
타입 |
필수 |
설명 |
검증 |
| company_id |
string |
O |
회사 ID |
- |
| site_id |
string |
O |
현장 ID |
- |
| request_ids |
array |
O |
처리할 요청 ID 배열 |
- |
| request_state |
string |
O |
처리 상태 |
approved 또는 rejected |
| field |
string |
X |
직종 (승인 시) |
- |
| labor_supplier |
string |
X |
소속 업체명 (승인 시) |
빈 값이면 "없음"으로 저장 |
요청 예시
{
"company_id": "company123",
"site_id": "site456",
"request_ids": ["request1", "request2"],
"request_state": "approved",
"field": "목수",
"labor_supplier": "협력업체A"
}
응답
성공 (200)
{
"message": "사이트 신청 요청 처리 완료",
"fail_list": []
}
부분 실패 시
{
"message": "사이트 신청 요청 처리 완료",
"fail_list": [
{"request_id": "request1", "error": "요청 데이터가 없습니다."},
{"request_id": "request2", "error": "요청 상태가 pending 이 아닙니다."}
]
}
실패
| 코드 |
message |
원인 |
| 400 |
"권한이 없습니다." |
요청자가 회사 멤버가 아님 |
| 400 |
"올바르지 않은 상태입니다." |
request_state가 approved/rejected가 아님 |
| 400 |
"존재하지 않는 사이트입니다." |
site_id에 해당하는 현장이 없음 |
| 400 |
"태그 설정을 찾을 수 없습니다." |
회사의 태그 설정이 없음 |
| 400 |
"존재하지 않는 직종입니다: {field}" |
등록되지 않은 직종 |
| 400 |
"존재하지 않는 업체입니다: {labor_supplier}" |
등록되지 않은 업체 |
| 400 |
"이미 입사 사용자입니다." |
이미 해당 현장의 멤버임 |
| 500 |
"{에러메시지}" |
서버 내부 오류 |
참고
- 여러 요청을 한 번에 처리할 수 있습니다.
- 승인 시 field와 labor_supplier를 지정하지 않으면 "없음"으로 설정됩니다.
- 승인 시 해당 직종의 단가(wage_rate)가 자동으로 적용됩니다.
- 관련 API: site_assign_request, site_assign_request_cancel