feat(travel-proxy): albums API에 region/regionName 필드 추가
앨범 커버 지정이 프론트에 반영되도록 albums API 응답에 region, regionName 포함. region_map 역인덱스 + GeoJSON name 매핑. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -180,12 +180,36 @@ def sync_endpoint():
|
||||
@app.get("/api/travel/albums")
|
||||
def albums_list():
|
||||
rows = get_all_albums()
|
||||
region_map = load_region_map()
|
||||
|
||||
# album → region 역인덱스
|
||||
album_to_region = {}
|
||||
for region_id, v in region_map.items():
|
||||
album_list = v if isinstance(v, list) else v.get("albums", [])
|
||||
for a in album_list:
|
||||
album_to_region[a] = region_id
|
||||
|
||||
# region → name 매핑 (GeoJSON)
|
||||
region_names = {}
|
||||
try:
|
||||
geojson = load_regions_geojson()
|
||||
for feat in geojson.get("features", []):
|
||||
props = feat.get("properties", {})
|
||||
rid = props.get("id")
|
||||
if rid:
|
||||
region_names[rid] = props.get("name", rid)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
result = []
|
||||
for r in rows:
|
||||
cover = r["cover_filename"]
|
||||
region_id = album_to_region.get(r["album"], "미분류")
|
||||
result.append({
|
||||
"album": r["album"],
|
||||
"count": r["count"],
|
||||
"region": region_id,
|
||||
"regionName": region_names.get(region_id, region_id),
|
||||
"cover_url": f"{MEDIA_BASE}/{r['album']}/{cover}",
|
||||
"cover_thumb": f"{MEDIA_BASE}/.thumb/{r['album']}/{cover}",
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user