Coverage for src / idx_api / routers / auth.py: 92%

13 statements  

« prev     ^ index     » next       coverage.py v7.13.1, created at 2025-12-28 11:09 -0700

1""" 

2Auth router - API key and OIDC verification endpoints 

3""" 

4 

5from fastapi import APIRouter, Depends 

6from pydantic import BaseModel 

7 

8from idx_api.auth import RequiredUser 

9 

10router = APIRouter() 

11 

12 

13class VerifyResponse(BaseModel): 

14 """API key verification response""" 

15 

16 valid: bool 

17 role: str 

18 brokerage_id: int | None = None 

19 broker_id: int | None = None # Broker contact ID 

20 agent_id: int | None = None 

21 

22 

23@router.get("/verify", response_model=VerifyResponse) 

24async def verify_api_key(user: RequiredUser): 

25 """ 

26 Verify the provided API key or OIDC token. 

27 

28 Returns user information if authentication is valid. 

29 This endpoint is used by the frontend to validate credentials. 

30 """ 

31 return VerifyResponse( 

32 valid=True, 

33 role=user.role, 

34 brokerage_id=user.brokerage_id, 

35 broker_id=user.broker_id, 

36 agent_id=user.agent_id, 

37 )