add getting company
This commit is contained in:
@@ -8,7 +8,7 @@ from api.application.contracts.auth.auth_response import AuthenticationResponse
|
||||
from api.application.protocols.jwt import JwtTokenProcessor
|
||||
from api.application.usecase.auth.auth_user import LoginUser
|
||||
from api.application.usecase.auth.create_user import CreateUser
|
||||
from api.domain.user.model import UserId
|
||||
from api.domain.user.model import UserEmail, UserId
|
||||
from api.infrastructure.dependencies.stub import Stub
|
||||
|
||||
auth_router = APIRouter(prefix="/auth", tags=["Auth"])
|
||||
@@ -35,7 +35,7 @@ async def login(
|
||||
password=login_request.password,
|
||||
)
|
||||
)
|
||||
token = token_processor.generate_token(UserId(user.id))
|
||||
token = token_processor.generate_token(UserId(user.id), UserEmail(user.email))
|
||||
response.set_cookie(key="access_token", value=f"Bearer {token}", httponly=True)
|
||||
|
||||
return user
|
||||
|
@@ -1,6 +1,13 @@
|
||||
from typing import Annotated
|
||||
|
||||
from fastapi import APIRouter, Depends, Request
|
||||
|
||||
from api.application.contracts.company.company_request import CompanyByOwnerEmail
|
||||
from api.application.contracts.company.company_response import CompanyBaseResponse
|
||||
from api.application.protocols.jwt import JwtTokenProcessor
|
||||
from api.application.usecase.company.get_users_company import GetCompaniesByOwnerEmail
|
||||
from api.domain.user.error import UserValidationError
|
||||
from api.infrastructure.dependencies.stub import Stub
|
||||
from api.presentation.auth.fasapi_auth import auth_required
|
||||
|
||||
company_router = APIRouter(prefix="/company", tags=["Company"])
|
||||
@@ -11,8 +18,19 @@ company_router = APIRouter(prefix="/company", tags=["Company"])
|
||||
response_model=None,
|
||||
dependencies=[Depends(auth_required)],
|
||||
)
|
||||
async def get_company(request: Request) -> CompanyBaseResponse:
|
||||
return CompanyBaseResponse(
|
||||
name="some",
|
||||
email="some",
|
||||
)
|
||||
async def get_companies(
|
||||
request: Request,
|
||||
token_processor: Annotated[JwtTokenProcessor, Depends(Stub(JwtTokenProcessor))],
|
||||
usecase: Annotated[GetCompaniesByOwnerEmail, Depends(Stub(GetCompaniesByOwnerEmail))],
|
||||
) -> list[CompanyBaseResponse]:
|
||||
token_data = token_processor.validate_token(request.scope["auth"])
|
||||
if not token_data:
|
||||
raise UserValidationError("Login required")
|
||||
companies = await usecase.execute(request=CompanyByOwnerEmail(email=token_data[1].value))
|
||||
return [
|
||||
CompanyBaseResponse(
|
||||
name=c.name,
|
||||
email=c.email,
|
||||
)
|
||||
for c in companies
|
||||
]
|
||||
|
Reference in New Issue
Block a user