38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
"""
|
|
소셜 SEO API 라우터
|
|
|
|
SEO 관련 엔드포인트를 제공합니다.
|
|
비즈니스 로직은 SeoService에 위임합니다.
|
|
"""
|
|
|
|
import logging
|
|
|
|
from fastapi import APIRouter, Depends
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from app.database.session import get_session
|
|
from app.social.schemas import YoutubeDescriptionRequest, YoutubeDescriptionResponse
|
|
from app.social.services import seo_service
|
|
from app.user.dependencies import get_current_user
|
|
from app.user.models import User
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
router = APIRouter(prefix="/seo", tags=["Social SEO"])
|
|
|
|
|
|
@router.post(
|
|
"/youtube",
|
|
response_model=YoutubeDescriptionResponse,
|
|
summary="유튜브 SEO description 생성",
|
|
description="유튜브 업로드 시 사용할 description을 SEO 적용하여 생성",
|
|
)
|
|
async def youtube_seo_description(
|
|
request_body: YoutubeDescriptionRequest,
|
|
current_user: User = Depends(get_current_user),
|
|
session: AsyncSession = Depends(get_session),
|
|
) -> YoutubeDescriptionResponse:
|
|
return await seo_service.get_youtube_seo_description(
|
|
request_body.task_id, current_user, session
|
|
)
|