26 lines
881 B
Python
26 lines
881 B
Python
from uuid import UUID
|
|
from fastapi_demo.app.repositories.assets_repo import AssetsRepo
|
|
from fastapi_demo.app.schemas.asset import AssetOut, AssetEventOut
|
|
|
|
|
|
class MemoryAssetsRepo(AssetsRepo):
|
|
def __init__(self) -> None:
|
|
self.assets: dict[UUID, AssetOut] = {}
|
|
self.events: dict[UUID, list[AssetEventOut]] = {}
|
|
|
|
def create(self, asset: AssetOut) -> None:
|
|
self.assets[asset.id] = asset
|
|
self.events.setdefault(asset.id, [])
|
|
|
|
def get(self, asset_id: UUID) -> AssetOut | None:
|
|
return self.assets.get(asset_id)
|
|
|
|
def update(self, asset: AssetOut) -> None:
|
|
self.assets[asset.id] = asset
|
|
|
|
def add_event(self, event: AssetEventOut) -> None:
|
|
self.events.setdefault(event.asset_id, []).append(event)
|
|
|
|
def list_events(self, asset_id: UUID) -> list[AssetEventOut]:
|
|
return list(self.events.get(asset_id, []))
|