get_safety_agreement_upload_token (무사고 동의서 업로드 토큰)
무사고 동의서 이미지를 업로드하기 위한 Cloudflare 토큰을 발급합니다.
기본 정보
| 항목 |
값 |
| URL |
https://asia-northeast3-construction24-test.cloudfunctions.net/get_safety_agreement_upload_token |
| Method |
POST |
| 인증 |
Firebase ID Token 필요 |
| 권한 |
현장 소속 근로자/장비 |
요청
Body
| 필드 |
타입 |
필수 |
설명 |
검증 |
| company_id |
string |
O |
회사 ID |
- |
| site_id |
string |
O |
현장 ID |
- |
| file_name |
string |
O |
파일명 |
- |
| file_size |
int |
O |
파일 크기 (바이트) |
0 < size <= 500MB |
| file_mime |
string |
O |
MIME 타입 |
허용 MIME 타입만 가능 |
| signed_date |
string |
O |
서명 일자 |
YYYY-MM-DD |
요청 예시
{
"company_id": "company_123",
"site_id": "site_456",
"file_name": "agreement.jpg",
"file_size": 1048576,
"file_mime": "image/jpeg",
"signed_date": "2026-02-25"
}
응답
성공 (200)
{
"status": "ok",
"message": "무사고 동의서 업로드 토큰 발급 완료",
"data": {
"token": "eyJhbGci..."
}
}
실패
| 코드 |
message |
원인 |
| 400 |
"필수 필드가 누락되었습니다" |
필수 입력값 누락 |
| 403 |
"권한이 없습니다" |
현장 소속이 아님 |
| 500 |
"서버 오류" |
내부 오류 |
업로드 흐름
- 이 API로 업로드 토큰 발급 → 응답의
data.token 획득
- 발급받은 토큰으로 Cloudflare Worker에 파일 PUT 요청 (업로드 API 상세)
upload_report(Firestore 메타데이터 저장)는 Cloudflare Worker가 업로드 성공 시 자동 호출합니다. 프론트에서 별도로 호출할 필요가 없습니다.
참고
- 출근한 근로자 본인이 직접 제출하는 용도입니다.
- 무사고 동의서를 제출하지 않으면 출근 요청이 차단됩니다. (site_check_in_request)
signed_date는 실제 서명 일자로, 서버 업로드 시간과 별도로 기록됩니다.
- 파일은
companies/{company_id}/sites/{site_id}/safety_agreements/{UID}/ 경로에 저장됩니다.