diff --git a/services/travel-memories/app/routes/curate.py b/services/travel-memories/app/routes/curate.py index a403c1b..1e96d23 100644 --- a/services/travel-memories/app/routes/curate.py +++ b/services/travel-memories/app/routes/curate.py @@ -28,31 +28,31 @@ def curate(): def remove(): body = request.get_json() state = load_state(body["album_id"], current_app) - for p in state.photos: - if p.id == body["asset_id"]: - p.tag = "skip" - break + photo = next((p for p in state.photos if p.id == body["asset_id"]), None) + if photo is None: + return jsonify({"ok": False, "error": "photo not found"}), 404 + photo.tag = "skip" save_state(state, current_app) return jsonify({"ok": True}) -@bp.post("/curate/retag") -def retag(): +@bp.post("/curate/swap") +def swap(): body = request.get_json() state = load_state(body["album_id"], current_app) - for p in state.photos: - if p.id == body["asset_id"]: - p.tag = "story" if p.tag == "journal" else "journal" - break + photo = next((p for p in state.photos if p.id == body["asset_id"]), None) + if photo is None: + return jsonify({"ok": False, "error": "photo not found"}), 404 + photo.tag = "story" if photo.tag == "journal" else "journal" save_state(state, current_app) - return jsonify({"ok": True}) + return jsonify({"ok": True, "new_tag": photo.tag}) @bp.post("/curate/reorder") def reorder(): body = request.get_json() state = load_state(body["album_id"], current_app) - order_map = {aid: i for i, aid in enumerate(body["ordered_ids"])} + order_map = {aid: i for i, aid in enumerate(body["order"])} for p in state.photos: if p.id in order_map: p.order = order_map[p.id] diff --git a/services/travel-memories/app/templates/phase3.html b/services/travel-memories/app/templates/phase3.html index eb66310..8a528d7 100644 --- a/services/travel-memories/app/templates/phase3.html +++ b/services/travel-memories/app/templates/phase3.html @@ -56,7 +56,7 @@ async function removeFn(albumId, assetId, el) { } async function retag(albumId, assetId, el) { - await fetch('/curate/retag', { + await fetch('/curate/swap', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({album_id: albumId, asset_id: assetId}) @@ -69,10 +69,11 @@ async function reorder(albumId, container) { var ids = Array.from(container.querySelectorAll('.photo-card')).map(function(e) { return e.dataset.assetId; }); + var day = container.id.replace('day-', ''); await fetch('/curate/reorder', { method: 'POST', headers: {'Content-Type': 'application/json'}, - body: JSON.stringify({album_id: albumId, ordered_ids: ids}) + body: JSON.stringify({album_id: albumId, date: day, order: ids}) }); }