from aiohttp.web import json_response, View from aiohttp.web import HTTPNotFound, HTTPUnprocessableEntity from phi.logging import get_logger from phi.api.utils import serialize from phi.async_ldap.model import Hackers log = get_logger(__name__) class UserView(View): async def get(self): uid = self.request.match_info.get("uid", None) if uid is None: return HTTPUnprocessableEntity() user = await self.request.app["users"].get_by_uid(uid) self.request.app["alog"].info("Found user %s", user) if not user: return HTTPNotFound() result = await user.describe() self.request.app["alog"].debug("Returning result %s", result) return json_response(result)