콘텐츠로 이동

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 "서버 오류" 내부 오류

업로드 흐름

  1. 이 API로 업로드 토큰 발급 → 응답의 data.token 획득
  2. 발급받은 토큰으로 Cloudflare Worker에 파일 PUT 요청 (업로드 API 상세)

upload_report(Firestore 메타데이터 저장)는 Cloudflare Worker가 업로드 성공 시 자동 호출합니다. 프론트에서 별도로 호출할 필요가 없습니다.

참고

  • 출근한 근로자 본인이 직접 제출하는 용도입니다.
  • 무사고 동의서를 제출하지 않으면 출근 요청이 차단됩니다. (site_check_in_request)
  • signed_date는 실제 서명 일자로, 서버 업로드 시간과 별도로 기록됩니다.
  • 파일은 companies/{company_id}/sites/{site_id}/safety_agreements/{UID}/ 경로에 저장됩니다.