Spaces:
Sleeping
Sleeping
File size: 1,149 Bytes
c6cc0f2 faa9d54 c6cc0f2 faa9d54 aabf8ec c6cc0f2 faa9d54 c6cc0f2 faa9d54 c6cc0f2 faa9d54 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
from trauma.api.account.dto import AccessToken
from trauma.api.account.model import AccountModel
from trauma.api.security import security_router
from trauma.api.security.db_requests import authenticate_account, register_account
from trauma.api.security.schemas import (LoginAccountResponse,
LoginAccountWrapper,
LoginAccountRequest, RegisterAccountRequest)
from trauma.core.security import create_access_token
from trauma.core.wrappers import TraumaResponseWrapper
@security_router.post('/login')
async def login(data: LoginAccountRequest) -> LoginAccountWrapper:
account = await authenticate_account(data)
access_token = create_access_token(account.email, str(account.id))
response = LoginAccountResponse(
accessToken=AccessToken(value=access_token),
account=account,
)
return LoginAccountWrapper(data=response)
@security_router.post('/register')
async def register(data: RegisterAccountRequest) -> TraumaResponseWrapper[AccountModel]:
account = await register_account(data)
return TraumaResponseWrapper(data=account)
|