mirror of
https://github.com/rommapp/romm.git
synced 2026-02-19 07:50:57 +01:00
complete updating the endpoints and models
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
from typing import Sequence
|
||||
|
||||
from decorators.database import begin_session
|
||||
from models.assets import Save
|
||||
from sqlalchemy import and_, delete, select, update
|
||||
@@ -12,7 +14,7 @@ class DBSavesHandler(DBBaseHandler):
|
||||
return session.merge(save)
|
||||
|
||||
@begin_session
|
||||
def get_save(self, id: int, session: Session = None) -> Save:
|
||||
def get_save(self, id: int, session: Session = None) -> Save | None:
|
||||
return session.get(Save, id)
|
||||
|
||||
@begin_session
|
||||
@@ -27,7 +29,7 @@ class DBSavesHandler(DBBaseHandler):
|
||||
|
||||
@begin_session
|
||||
def update_save(self, id: int, data: dict, session: Session = None) -> Save:
|
||||
return session.execute(
|
||||
return session.scalar(
|
||||
update(Save)
|
||||
.where(Save.id == id)
|
||||
.values(**data)
|
||||
@@ -36,7 +38,7 @@ class DBSavesHandler(DBBaseHandler):
|
||||
|
||||
@begin_session
|
||||
def delete_save(self, id: int, session: Session = None) -> None:
|
||||
return session.execute(
|
||||
session.execute(
|
||||
delete(Save)
|
||||
.where(Save.id == id)
|
||||
.execution_options(synchronize_session="evaluate")
|
||||
@@ -45,8 +47,18 @@ class DBSavesHandler(DBBaseHandler):
|
||||
@begin_session
|
||||
def purge_saves(
|
||||
self, rom_id: int, user_id: int, saves: list[str], session: Session = None
|
||||
) -> None:
|
||||
return session.execute(
|
||||
) -> Sequence[Save]:
|
||||
purged_saves = session.scalars(
|
||||
select(Save).filter(
|
||||
and_(
|
||||
Save.rom_id == rom_id,
|
||||
Save.user_id == user_id,
|
||||
Save.file_name.not_in(saves),
|
||||
)
|
||||
)
|
||||
).all()
|
||||
|
||||
session.execute(
|
||||
delete(Save)
|
||||
.where(
|
||||
and_(
|
||||
@@ -57,3 +69,5 @@ class DBSavesHandler(DBBaseHandler):
|
||||
)
|
||||
.execution_options(synchronize_session="evaluate")
|
||||
)
|
||||
|
||||
return purged_saves
|
||||
|
||||
Reference in New Issue
Block a user