Source code for eclypse.builders.application.deathstarbench.social_network.rest_services.user

"""REST endpoints for social-network user data."""

from eclypse.remote.communication import rest
from eclypse.remote.service import RESTService
from eclypse.utils import format_log_kv


[docs] class UserService(RESTService): """Resolve user identities for compose-post requests."""
[docs] @rest.endpoint("/compose", "POST") async def compose(self, user_id: int, username: str, **payload): """Attach creator metadata and store the composed post.""" self.logger.info( "Received request | " + format_log_kv(user_id=user_id, username=username) ) creator = {"user_id": user_id, "username": username} response = await self.rest.post( "PostStorageService/store", **payload, user_id=user_id, username=username, creator=creator, ) self.logger.info( "Received response | " + format_log_kv(source="PostStorageService", body=response.body) ) return 200, response.body
[docs] @rest.endpoint("/creator", "GET") def creator(self, user_id: int, username: str, **_): """Return a compact creator description for the requested user.""" self.logger.info( "Received request | " + format_log_kv(user_id=user_id, username=username) ) return 200, {"creator": {"user_id": user_id, "username": username}}