Glowb Dev Docs
SaaS APIAgency API

Agency Branding API

에이전시 로고 URL 저장 및 파일 업로드

브랜딩/로고

에이전시 로고는 두 단계로 처리할 수 있습니다.

PATCH /agency/me/branding은 이미 확보한 로고 URL을 저장하는 API입니다. POST /agency/branding/logo는 multipart 파일을 서버가 받아 S3에 업로드하고 logoUrl을 반환하는 API입니다. presigned URL 전용 구조가 아닙니다.

로고 URL 저장

항목
메서드PATCH
경로/agency/me/branding 또는 /ai/agency/me/branding
인증필요
권한ROLE_AGENCY
PATCH /agency/me/branding HTTP/1.1
Host: api.glowb.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
Content-Type: application/json

{
  "logoUrl": "https://cdn.example.com/agency/logo.png"
}

Request Body

Prop

Type

응답

{
  "logoUrl": "https://cdn.example.com/agency/logo.png"
}

로고 파일 업로드

이 API는 에이전시 본인 전용입니다. SecurityConfig가 URL 레벨에서 ROLE_ADMIN도 통과시키지만, 서비스가 호출자 본인의 에이전시를 역산하므로(businessType == AGENCY && agency != null) 본인 에이전시가 없는 어드민은 AUTH_002로 거절됩니다. 어드민은 POST /admin/agency/branding/logo를 사용하세요.

항목
메서드POST
경로/agency/branding/logo 또는 /ai/agency/branding/logo
인증필요
권한ROLE_AGENCY
Content-Typemultipart/form-data
POST /agency/branding/logo HTTP/1.1
Host: api.glowb.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
Content-Type: multipart/form-data; boundary=----boundary

------boundary
Content-Disposition: form-data; name="file"; filename="logo.webp"
Content-Type: image/webp

{binary}
------boundary--
curl -X POST "https://api.glowb.com/agency/branding/logo" \
  -H "Authorization: Bearer {access_token}" \
  -F "file=@logo.webp"
const formData = new FormData();
formData.append('file', file);

const upload = await fetch('/agency/branding/logo', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${accessToken}`,
  },
  body: formData,
});

const { logoUrl } = await upload.json();

응답

{
  "logoUrl": "https://..."
}

On this page