Update main.py

This commit is contained in:
ilyastar9999
2025-12-04 14:47:42 +03:00
parent 40bddd1449
commit 412fd99f05

View File

@@ -290,19 +290,22 @@ async def update_service(service_id: int, updates: dict):
# Allowed fields to update # Allowed fields to update
allowed_fields = {"alias", "git_url"} 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: if not update_fields:
return dict(service) return dict(service)
# Build dynamic UPDATE query # Build dynamic UPDATE query
set_clauses = [f"{field} = ${i+1}" for i, field in enumerate(update_fields.keys())] 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( # Add last_updated and service_id to query
f"UPDATE services SET {', '.join(set_clauses)}, last_updated = ${ len(values)} WHERE id = ${len(values)+1}", set_clauses.append(f"last_updated = ${len(values) + 1}")
*values, datetime.utcnow(), service_id 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) updated_service = await conn.fetchrow("SELECT * FROM services WHERE id = $1", service_id)
return dict(updated_service) return dict(updated_service)