Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EqCYBhvTcdeCTUDX3RhWx9
28 lines
905 B
Python
28 lines
905 B
Python
"""naver-fetch 워커 내부 계약: targets 조회 + listings ingest."""
|
|
import os
|
|
import logging
|
|
from fastapi import APIRouter, Depends
|
|
|
|
from .auth import verify_internal_key
|
|
from .db import get_listing_criteria
|
|
from .lawd_codes import naver_cortar
|
|
|
|
logger = logging.getLogger("realestate-lab")
|
|
router = APIRouter()
|
|
|
|
NAVER_PAGE_LIMIT = int(os.getenv("NAVER_PAGE_LIMIT", "2"))
|
|
|
|
|
|
@router.get("/api/internal/realestate/targets", dependencies=[Depends(verify_internal_key)])
|
|
def listing_targets():
|
|
crit = get_listing_criteria()
|
|
dongs = []
|
|
for d in crit.get("dongs", []):
|
|
code = naver_cortar(d)
|
|
if not code:
|
|
logger.warning("naver cortarNo 매핑 없음 — 대상 제외: %s", d)
|
|
continue
|
|
dongs.append({"dong": d, "cortar_no": code})
|
|
return {"dongs": dongs, "deal_types": crit.get("deal_types", []),
|
|
"page_limit": NAVER_PAGE_LIMIT}
|