phi/src/phi/api/rest.py

28 lines
750 B
Python
Raw Normal View History

2017-12-21 13:44:54 +01:00
from aiohttp.web import json_response, View
from aiohttp.web import HTTPNotFound, HTTPUnprocessableEntity
2017-12-16 23:03:03 +01:00
2017-12-21 13:44:54 +01:00
from phi.logging import get_logger
from phi.api.utils import serialize
2020-08-29 20:14:55 +02:00
from phi.async_ldap.model import Hackers
2017-12-16 23:03:03 +01:00
2017-12-21 13:44:54 +01:00
log = get_logger(__name__)
2017-12-21 13:44:54 +01:00
2020-08-29 20:14:55 +02:00
class UserView(View):
2017-12-21 13:44:54 +01:00
async def get(self):
2020-08-29 20:14:55 +02:00
uid = self.request.match_info.get("uid", None)
2017-12-27 11:02:38 +01:00
2017-12-21 13:44:54 +01:00
if uid is None:
return HTTPUnprocessableEntity()
2020-08-29 20:14:55 +02:00
user = await self.request.app["users"].get_by_uid(uid)
self.request.app["alog"].info("Found user %s", user)
2017-12-21 13:44:54 +01:00
if not user:
return HTTPNotFound()
2020-08-29 20:14:55 +02:00
result = await user.describe()
self.request.app["alog"].debug("Returning result %s", result)
return json_response(result)