e14d303b82
config.py(Cafe24FtpConfig 일반화 + DESIGN_FILE_SPECS)·db.py(add/list_design_
revision)·router.py(design_files_router 연결)·_nav.html(탭 3개)·테스트·
.env.example·문서가 앞 커밋(8c2a9c4)에 함께 올라갔어야 하는데 스테이징 누락.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
45 lines
1.8 KiB
Python
45 lines
1.8 KiB
Python
"""카페24 상품 상세페이지 관리 모듈 라우터.
|
|
|
|
- 경로: /cafe24
|
|
- 권한: 로그인 + `cafe24` 모듈 권한 (관리자는 항상 통과). 서버 측 검사.
|
|
카페24 연결(OAuth) 변경은 `is_admin` 만.
|
|
- 데이터: Cafe24Store (cafe24_db / PostgreSQL) 전용.
|
|
CAFE24_DB_URL 미설정 시 store 가 None 이며, 각 페이지는 "설정 필요" 안내.
|
|
- 카페24 API 호출은 app/integrations/cafe24 공통 계층을 통해서만 한다.
|
|
|
|
라우트가 많아 기능별 파일로 나눈다(다른 모듈의 단일 router.py 패턴을 규모 때문에
|
|
확장한 것). 여기서는 루트 라우터를 만들고 서브 라우터를 결합한다.
|
|
routes_products 상품 목록/검색 · 상세설명 조회·편집·적용
|
|
routes_schedules 예약 등록·목록·취소 (실행은 worker.py)
|
|
routes_system 연결(OAuth)·상태·API 로그·작업 로그
|
|
routes_design_files 모바일 스와이프·PC/모바일 상품상세 템플릿 편집 —
|
|
카페24 디자인 보관함 FTP (Admin API 가 아니다.
|
|
app/integrations/cafe24/design_ftp.py 참고)
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import logging
|
|
|
|
from fastapi import APIRouter
|
|
|
|
from .routes_design_files import design_files_router
|
|
from .routes_products import products_router
|
|
from .routes_schedules import schedules_router
|
|
from .routes_system import system_router
|
|
|
|
logger = logging.getLogger("cafe24.router")
|
|
|
|
router = APIRouter(prefix="/cafe24", tags=["cafe24"])
|
|
|
|
router.include_router(products_router)
|
|
router.include_router(schedules_router)
|
|
router.include_router(design_files_router)
|
|
router.include_router(system_router)
|
|
|
|
|
|
@router.get("/health")
|
|
def health() -> dict[str, str]:
|
|
"""포털 카드의 상태 점(dot) 용. 인증 불필요 — 상태 문자열만 반환."""
|
|
return {"status": "ok"}
|