added: base for backend on fastapi
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
from sqlalchemy import select
|
||||
|
||||
from kawai_focus_v2.database.models import Timer
|
||||
from kawai_focus_v2.schemas.timer import TimerModel, TimerListModel
|
||||
from kawai_focus_v2.schemas.timer import TimerModel, TimerListModel, UpdateTimerModel, NewTimerModel
|
||||
from kawai_focus_v2.database.db import get_db_instance, SessionDB
|
||||
|
||||
|
||||
def get_timer(timer_id: int) -> TimerModel:
|
||||
def get_timer(timer_id: int, db: SessionDB) -> TimerModel:
|
||||
"""Функция для получения данных таймера"""
|
||||
|
||||
db = get_db_instance()
|
||||
@@ -14,10 +14,9 @@ def get_timer(timer_id: int) -> TimerModel:
|
||||
return TimerModel.model_validate(timer, from_attributes=True)
|
||||
|
||||
|
||||
def list_timers() -> list[TimerListModel]:
|
||||
def get_timers(db: SessionDB) -> list[TimerListModel]:
|
||||
"""Функция для получения списка таймеров"""
|
||||
|
||||
db = get_db_instance()
|
||||
with db.get_session() as session:
|
||||
timers = session.execute(
|
||||
select(Timer.id, Timer.title, Timer.pomodoro_time, Timer.count_pomodoro)
|
||||
@@ -26,7 +25,7 @@ def list_timers() -> list[TimerListModel]:
|
||||
return [TimerListModel.model_validate(timer, from_attributes=True) for timer in timers]
|
||||
|
||||
|
||||
def new_timer(data: TimerModel, db: SessionDB) -> TimerModel:
|
||||
def new_timer(data: NewTimerModel, db: SessionDB) -> TimerModel:
|
||||
"""Функция для создания нового таймера"""
|
||||
|
||||
with db.get_session() as session:
|
||||
@@ -38,13 +37,13 @@ def new_timer(data: TimerModel, db: SessionDB) -> TimerModel:
|
||||
return TimerModel.model_validate(timer, from_attributes=True)
|
||||
|
||||
|
||||
def update_timer(data: TimerModel, db: SessionDB) -> TimerModel:
|
||||
def update_timer(timer_id: int, data: UpdateTimerModel, db: SessionDB) -> TimerModel:
|
||||
"""Функция для обновления таймера"""
|
||||
|
||||
with db.get_session() as session:
|
||||
timer = session.get(Timer, data.id)
|
||||
timer = session.get(Timer, timer_id)
|
||||
|
||||
for field, value in data.model_dump(exclude={'id'}).items():
|
||||
for field, value in data.model_dump(exclude_unset=True).items():
|
||||
setattr(timer, field, value)
|
||||
|
||||
session.commit()
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
from kawai_focus_v2.schemas.timer import TimerModel
|
||||
from kawai_focus_v2.schemas.timer import NewTimerModel
|
||||
|
||||
|
||||
data_timers = [
|
||||
TimerModel(
|
||||
NewTimerModel(
|
||||
title='Timer mini example',
|
||||
pomodoro_time=10,
|
||||
break_time=3,
|
||||
break_long_time=15,
|
||||
count_pomodoro=2
|
||||
),
|
||||
TimerModel(
|
||||
NewTimerModel(
|
||||
title='Timer max example',
|
||||
pomodoro_time=90,
|
||||
break_time=10,
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
from kawai_focus_v2.schemas.timer import TimerModel
|
||||
from kawai_focus_v2.schemas.timer import NewTimerModel
|
||||
from kawai_focus_v2.database.cruds import new_timer
|
||||
from kawai_focus_v2.database.db import get_db_instance
|
||||
from kawai_focus_v2.database.data import data_timers
|
||||
|
||||
|
||||
def new_temers(data: list[TimerModel]) -> None:
|
||||
def new_temers(data: list[NewTimerModel]) -> None:
|
||||
"""Заполняет базу данных образцами таймеров"""
|
||||
|
||||
db = get_db_instance()
|
||||
|
||||
Reference in New Issue
Block a user