ADJCJH's picture
Deploy ProofFrame public mock demo
7131bbe verified
Raw
History Blame Contribute Delete
1.09 kB
"""In-memory repository for the first MVP."""
from __future__ import annotations
from .models import Asset, Campaign
class MemoryRepository:
def __init__(self) -> None:
self.campaigns: dict[str, Campaign] = {}
self.assets: dict[str, Asset] = {}
def add_campaign(self, campaign: Campaign) -> Campaign:
self.campaigns[campaign.id] = campaign
return campaign
def list_campaigns(self) -> list[Campaign]:
return sorted(self.campaigns.values(), key=lambda item: item.created_at, reverse=True)
def get_campaign(self, campaign_id: str) -> Campaign | None:
return self.campaigns.get(campaign_id)
def add_asset(self, asset: Asset) -> Asset:
self.assets[asset.id] = asset
return asset
def get_asset(self, asset_id: str) -> Asset | None:
return self.assets.get(asset_id)
def list_assets(self, campaign_id: str) -> list[Asset]:
assets = [asset for asset in self.assets.values() if asset.campaign_id == campaign_id]
return sorted(assets, key=lambda item: item.created_at)