diff --git a/controler/main.py b/controler/main.py index a4fd37c..ea3b1d3 100644 --- a/controler/main.py +++ b/controler/main.py @@ -290,19 +290,22 @@ async def update_service(service_id: int, updates: dict): # Allowed fields to update allowed_fields = {"alias", "git_url"} - update_fields = {k: v for k, v in updates.items() if k in allowed_fields and v is not None} + update_fields = {k: v for k, v in updates.items() if k in allowed_fields} if not update_fields: return dict(service) # Build dynamic UPDATE query set_clauses = [f"{field} = ${i+1}" for i, field in enumerate(update_fields.keys())] - values = list(update_fields.values()) + [service_id] + values = list(update_fields.values()) - await conn.execute( - f"UPDATE services SET {', '.join(set_clauses)}, last_updated = ${ len(values)} WHERE id = ${len(values)+1}", - *values, datetime.utcnow(), service_id - ) + # Add last_updated and service_id to query + set_clauses.append(f"last_updated = ${len(values) + 1}") + values.append(datetime.utcnow()) + values.append(service_id) + + query = f"UPDATE services SET {', '.join(set_clauses)} WHERE id = ${len(values)}" + await conn.execute(query, *values) updated_service = await conn.fetchrow("SELECT * FROM services WHERE id = $1", service_id) return dict(updated_service)