Glowb Dev Docs
Admin APIAdmin Campaign API

POST /ai/admin/campaigns/final-submission/{applicationId}/submit

관리자 최종 제출물 제출 처리

최종 제출물 제출 처리 (관리자용)

관리자가 최종 제출물(FinalSubmission)을 제출 처리합니다. isSubmitted=true 설정 및 캠페인 상태 변경이 포함됩니다.

내용 수정과 제출을 동시에 수행할 수 있습니다. Request Body를 생략하면 기존 내용 그대로 제출 처리만 수행됩니다.

HTTP 요청

POST /ai/admin/campaigns/final-submission/{applicationId}/submit
Authorization: Bearer {access_token}
Content-Type: application/json

Path Parameters

파라미터타입필수설명
applicationIdlong신청(CampaignApplication) ID

Request Body (선택)

{
  "contentLink": "https://www.instagram.com/reel/xxxxx",
  "partnershipCode": "ABC123",
  "cleanFilePath": "https://s3.../clean-cut.mp4",
  "finalFilePath": "https://s3.../final-cut.mp4"
}

Request Body는 선택입니다. 제출 처리만 하려면 body 없이 호출하세요. body가 있으면 null이 아닌 필드만 업데이트 후 제출 처리됩니다.

Request Body 필드 설명

필드타입필수설명
contentLinkstring아니오업로드한 콘텐츠 링크
partnershipCodestring아니오파트너십 코드
cleanFilePathstring아니오클린본 파일 S3 URL
finalFilePathstring아니오최종본 파일 S3 URL

제출 처리 시 동작

  1. 내용 업데이트 (Request Body가 있는 경우)
  2. isSubmitted = true, submittedAt = 현재 시각 설정
  3. 해당 캠페인의 첫 제출인 경우 캠페인 상태를 RESULT_SUMMARY로 변경
  4. 캠페인 SELECTED 전원이 제출 완료한 경우 settlementReady = true 마킹

응답

성공 응답 (200 OK)

{
  "status": 200,
  "code": null,
  "message": "최종 제출물이 제출 처리되었습니다.",
  "data": {
    "id": 1,
    "applicationId": 123,
    "contentLink": "https://www.instagram.com/reel/xxxxx",
    "partnershipCode": "ABC123",
    "cleanFilePath": "https://s3.../clean-cut.mp4",
    "finalFilePath": "https://s3.../final-cut.mp4",
    "isSubmitted": true,
    "submittedAt": "2026-04-13T18:00:00",
    "hasReRequest": false,
    "reRequestTypes": null,
    "reRequestedAt": null,
    "uploadDateType": "OPTIMAL",
    "uploadDate": "2026-04-15T10:00:00",
    "candidateDates": null
  }
}

에러 응답 - 신청 건 없음 (404)

{
  "status": 404,
  "code": null,
  "message": "신청 건을 찾을 수 없습니다. applicationId: 999",
  "data": null
}

해당 applicationId에 FinalSubmission 레코드가 없으면 자동으로 신규 생성 후 제출 처리됩니다.

API 테스트

On this page