Added update jukebox

This commit is contained in:
Ben Arc
2021-05-03 23:22:40 +01:00
parent 245a819f19
commit be234c349f
6 changed files with 260 additions and 155 deletions
+14 -11
View File
@@ -20,8 +20,8 @@ async def create_jukebox(
juke_id = urlsafe_short_hash()
result = await db.execute(
"""
INSERT INTO jukebox (id, user, title, wallet, sp_user, sp_secret, sp_access_token, sp_refresh_token, sp_device, sp_playlists, price)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
INSERT INTO jukebox (id, user, title, wallet, sp_user, sp_secret, sp_access_token, sp_refresh_token, sp_device, sp_playlists, price, profit)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
""",
(
juke_id,
@@ -35,6 +35,7 @@ async def create_jukebox(
sp_device,
sp_playlists,
int(price),
0,
),
)
jukebox = await get_jukebox(juke_id)
@@ -42,17 +43,17 @@ async def create_jukebox(
return jukebox
async def update_jukebox(id: str, **kwargs) -> Optional[Jukebox]:
async def update_jukebox(juke_id: str, **kwargs) -> Optional[Jukebox]:
q = ", ".join([f"{field[0]} = ?" for field in kwargs.items()])
await db.execute(
f"UPDATE jukebox SET {q} WHERE id = ?", (*kwargs.values(), id)
f"UPDATE jukebox SET {q} WHERE id = ?", (*kwargs.values(), juke_id)
)
row = await db.fetchone("SELECT * FROM jukebox WHERE id = ?", (id,))
row = await db.fetchone("SELECT * FROM jukebox WHERE id = ?", (juke_id,))
return Jukebox(**row) if row else None
async def get_jukebox(id: str) -> Optional[Jukebox]:
row = await db.fetchone("SELECT * FROM jukebox WHERE id = ?", (id,))
async def get_jukebox(juke_id: str) -> Optional[Jukebox]:
row = await db.fetchone("SELECT * FROM jukebox WHERE id = ?", (juke_id,))
return Jukebox(**row) if row else None
@@ -60,18 +61,20 @@ async def get_jukebox_by_user(user: str) -> Optional[Jukebox]:
row = await db.fetchone("SELECT * FROM jukebox WHERE sp_user = ?", (user,))
return Jukebox(**row) if row else None
async def get_jukeboxs(user: str) -> List[Jukebox]:
rows = await db.fetchall("SELECT * FROM jukebox WHERE user = ?", (user,))
for row in rows:
if not row.sp_playlists:
if row.sp_playlists == "":
await delete_jukebox(row.id)
rows.remove(row)
rows = await db.fetchall("SELECT * FROM jukebox WHERE user = ?", (user,))
return [Jukebox.from_row(row) for row in rows]
async def delete_jukebox(id: str):
async def delete_jukebox(juke_id: str):
await db.execute(
"""
DELETE FROM jukebox WHERE id = ?
""",
(id),
(juke_id),
)