27 lines
604 B
Python
27 lines
604 B
Python
from collections.abc import Sequence
|
|
|
|
from app.models.energy import Site
|
|
from app.repositories.site import SiteRepository
|
|
|
|
|
|
class SiteError(Exception):
|
|
pass
|
|
|
|
|
|
class SiteNotFoundError(SiteError):
|
|
pass
|
|
|
|
|
|
class SiteService:
|
|
def __init__(self, *, sites: SiteRepository) -> None:
|
|
self._sites = sites
|
|
|
|
async def list_all(self) -> Sequence[Site]:
|
|
return await self._sites.list_all()
|
|
|
|
async def get_by_id(self, site_id: str) -> Site:
|
|
site = await self._sites.get_by_id(site_id)
|
|
if site is None:
|
|
raise SiteNotFoundError(site_id)
|
|
return site
|