Source code for caspia.homeserver.services.wall

from .base import Service


[docs]class WallService(Service): table_name = 'walls'
[docs] async def create_wall(self, wall): wall['tiles'] = wall.get('tiles', []) wall['layout'] = wall.get('layout', {'type': 'unknown'}) identifier = self.table.insert(wall) return self.table.get(doc_id=identifier)
[docs] async def get_wall(self, identifier): wall = self.table.get(doc_id=identifier) if wall is None: raise ValueError(f"Wall with identifier {identifier} not found.") return wall
[docs] async def update_wall(self, identifier, data): updated = self.table.update(data, doc_ids=[identifier]) if updated != [identifier]: raise ValueError(f"Wall with identifier {identifier} not found.")
[docs] async def remove_wall(self, identifier): removed = self.table.remove(doc_ids=[identifier]) if removed != [identifier]: raise ValueError(f"Wall with identifier {identifier} not found.")
[docs] async def get_walls(self): for wall in self.table: yield wall