Sync på ID
This commit is contained in:
@@ -199,12 +199,24 @@ def push(
|
||||
})
|
||||
|
||||
# ── Playlister ────────────────────────────────────────────────────────────
|
||||
# VIGTIGT: Match altid på local_id (= api_project_id på klienten),
|
||||
# aldrig på navn — navn er ikke unikt og giver duplikater.
|
||||
playlist_id_map = {}
|
||||
for pl in payload.playlists:
|
||||
existing = db.query(Project).filter_by(
|
||||
owner_id=me.id, name=pl.name
|
||||
).first()
|
||||
# Prøv først at finde via server-ID (local_id er klientens lokale db-id
|
||||
# som tidligere er returneret som server-ID via playlist_id_map)
|
||||
existing = None
|
||||
if pl.local_id:
|
||||
existing = db.query(Project).filter_by(
|
||||
id=pl.local_id, owner_id=me.id
|
||||
).first()
|
||||
# Fallback: navn — kun hvis vi aldrig har set denne liste før
|
||||
if not existing:
|
||||
existing = db.query(Project).filter_by(
|
||||
owner_id=me.id, name=pl.name
|
||||
).first()
|
||||
if existing:
|
||||
existing.name = pl.name
|
||||
existing.description = pl.description
|
||||
existing.visibility = pl.visibility
|
||||
# Opdater kun sange hvis push faktisk har sange med
|
||||
|
||||
Reference in New Issue
Block a user