B2B

portal-brand

6 uç · /api/b2b/v1/portal-brand

İstek örnekleri ucun GERÇEK metodu ve yolundan üretilir. 6 ucun elle doğrulanmış gövde örneği henüz yok; o uçlarda iskelet gövdesizdir — uydurma bir alan yazmıyoruz.

GET/api/b2b/v1/admin/portal-brand

Staff editör: portal + yayınlanan marka + bekleyen draft (birleşik). İzin b2b.portal.view.

Oturum
İstek
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/portal-brand" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/b2b/v1/admin/portal-brand/assets

POST /api/b2b/v1/admin/portal-brand/assets (StaffCtx b2b.portal.manage) — ENFORCED yükleme.

Oturum

Ham görüntü baytları (gövde; global 1 MiB limit + MAX_ASSET_BYTES). asset_url = mutlak public sunum URL'si (brand logo_url/favicon_url'e doğrudan konur; is_safe_url uyumlu).

İstek
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/portal-brand/assets" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/b2b/v1/admin/portal-brand/assets/upload-url

POST /api/b2b/v1/admin/portal-brand/assets/upload-url (StaffCtx b2b.portal.manage) — yükleme

Oturum

PLANI: declared tip/boyut ön-doğrulama + backend abstraksiyonu (local proxy / s3 presigned PUT).

İstek
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/portal-brand/assets/upload-url" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PATCH/api/b2b/v1/admin/portal-brand/draft

Staff editör: draft patch merge (allowlist doğrulamalı). İzin b2b.portal.manage.

Oturum
İstek
curl -X PATCH "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/portal-brand/draft" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/b2b/v1/admin/portal-brand/preview-token

Staff editör (BLE-2029): canlı-host'ta draft önizleme için kısa-ömürlü imzalı token üretir.

Oturum

İzin b2b.portal.manage — önizleme linki, kimlik-doğrulaması OLMAYAN bir tarafa (link sahibine) draft-görünürlüğü DELEGE eder (yayına-yakın bir eylem); .view yeterli değil. Token RLS'i bypass ETMEZ (bkz. [open_preview_token]): yalnız host-çözümlü portalda yayınlanan→draft'a geçiş kapasitesidir, 15 dk. preview_url = portalın kendi host'u (varsa).

İstek
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/portal-brand/preview-token" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/b2b/v1/admin/portal-brand/publish

Staff editör: draft'ı yayına al. İzin b2b.portal.manage.

Oturum
İstek
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/portal-brand/publish" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
Bu sayfa işine yaradı mı?