26 lines
1 KiB
Python
26 lines
1 KiB
Python
from typing import List, Dict, Any
|
|
from app.core.database.connection import SQLiteExecutor
|
|
from app.core.dto.training import ExerciseDTO
|
|
|
|
|
|
class ExerciseOps:
|
|
TABLE_NAME: str = "exercises"
|
|
|
|
def __init__(self, executor: SQLiteExecutor) -> None:
|
|
self._executor = executor
|
|
|
|
async def create(self, exercise: ExerciseDTO) -> int:
|
|
query = f"INSERT INTO {self.TABLE_NAME} (training_id, name, splitted_weight) VALUES (?, ?, ?)"
|
|
return await self._executor.execute_mod_query(
|
|
query, (exercise.training_id, exercise.name, exercise.splitted_weight)
|
|
)
|
|
|
|
async def list(self) -> List[Dict[str, Any]]:
|
|
query = f"SELECT * FROM {self.TABLE_NAME}"
|
|
return await self._executor.execute_query(query)
|
|
|
|
async def delete(self, list_of_ids: List[int]) -> None:
|
|
placeholders: str = ",".join("?" * len(list_of_ids))
|
|
query = f"DELETE FROM {self.TABLE_NAME} WHERE id IN ({placeholders})"
|
|
await self._executor.execute_mod_query(query, tuple(list_of_ids))
|
|
return None
|