Skip to content

Commit

Permalink
Merge pull request #53 from Tech-With-Tim/feature/users
Browse files Browse the repository at this point in the history
`/users/@me` endpoint
  • Loading branch information
SylteA authored Sep 8, 2021
2 parents 5d49f7f + b973e8a commit 261ecd3
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 2 deletions.
4 changes: 2 additions & 2 deletions api/versions/v1/routers/router.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from fastapi import APIRouter

from . import auth
from . import roles
from . import auth, roles, users

router = APIRouter(prefix="/v1")

router.include_router(auth.router)
router.include_router(roles.router)
router.include_router(users.router)
3 changes: 3 additions & 0 deletions api/versions/v1/routers/users/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from .routes import router

__all__ = (router,)
11 changes: 11 additions & 0 deletions api/versions/v1/routers/users/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from typing import List
from pydantic import BaseModel


class UserResponse(BaseModel):
id: str
username: str
discriminator: str
avatar: str
app: bool
roles: List[str]
21 changes: 21 additions & 0 deletions api/versions/v1/routers/users/routes.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
from fastapi import APIRouter

from .models import UserResponse

from api.models import User, UserRole
from api.dependencies import authorization


router = APIRouter(prefix="/users")


@router.get(
"/@me",
response_model=UserResponse,
responses={401: {"description": "Unauthorized"}},
)
async def get_current_user(user: User = authorization()):
query = """SELECT role_id FROM userroles WHERE user_id = $1;"""
roles = [record["role_id"] for record in await UserRole.pool.fetch(query, user.id)]

return {**user.as_dict(), "roles": roles}

0 comments on commit 261ecd3

Please sign in to comment.