Skip to content

Commit

Permalink
add get_current_meter_reading method
Browse files Browse the repository at this point in the history
  • Loading branch information
mcfitz2 committed Aug 21, 2024
1 parent 98acfff commit e08beea
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 4 deletions.
4 changes: 2 additions & 2 deletions backend/main/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -265,8 +265,8 @@ class TaskCreateSchema(BaseModel):
meter_interval: float
recurring: bool
notes: Optional[str] = None
due_date: Optional[datetime.date]
due_meter_reading: Optional[float]
due_date: Optional[datetime.date] = Field(default=None)
due_meter_reading: Optional[float] = Field(default=0)


class MachineSchema(BaseModel):
Expand Down
7 changes: 5 additions & 2 deletions backend/main/service.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,10 @@ async def delete_machine(self, machine_id: str) -> Machine:
async def get_machines(self) -> List[Machine]:
async with self.async_session() as session:
return (await session.execute(select(Machine))).unique().scalars().all()

async def get_current_meter_reading(self, machine_id: str) -> float:
async with self.async_session() as session:
reading = (await session.execute(select(MeterReading).where(MeterReading.machine_id == machine_id)).order_by(MeterReading.timestamp)).scalars().first()
return reading.value
async def record_reading(
self, machine_id: str, reading: MeterReading
) -> MeterReading:
Expand All @@ -110,7 +113,7 @@ async def create_task(self, machine_id: str, task: Task) -> Task:
task.due_meter_reading = (
task.due_meter_reading
if task.due_meter_reading
else machine.current_meter_reading()
else await self.get_current_meter_reading(machine.id)
)
task.due_date = task.due_date if task.due_date else datetime.date.today()
task.machine_id = machine_id
Expand Down

0 comments on commit e08beea

Please sign in to comment.