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