39 lines
878 B
Python
39 lines
878 B
Python
|
from ninja import Router, Field, Schema
|
||
|
from ninja.errors import HttpError
|
||
|
|
||
|
from pronounscc.models import User
|
||
|
|
||
|
|
||
|
router = Router()
|
||
|
|
||
|
|
||
|
class UserOut(Schema):
|
||
|
id: str = Field(..., alias="uid")
|
||
|
username: str
|
||
|
display_name: str = Field(..., alias="userprofile.display_name")
|
||
|
bio: str = Field(..., alias="userprofile.bio")
|
||
|
|
||
|
|
||
|
@router.get("/@me")
|
||
|
def get_me(request):
|
||
|
return {"data": "me endpoint, eventually"}
|
||
|
|
||
|
|
||
|
@router.get("/{user_ref}", response=UserOut)
|
||
|
def get_user(request, user_ref: str):
|
||
|
try:
|
||
|
user_id = int(user_ref)
|
||
|
try:
|
||
|
user = User.objects.get(pk=user_id)
|
||
|
return user
|
||
|
except User.DoesNotExist:
|
||
|
pass
|
||
|
except ValueError:
|
||
|
pass
|
||
|
|
||
|
try:
|
||
|
user = User.objects.get(username=user_ref)
|
||
|
return user
|
||
|
except User.DoesNotExist:
|
||
|
raise HttpError(404, "User not found")
|