Coverage for microservice_websocket/app/blueprints/api/session.py: 100%

22 statements  

« prev     ^ index     » next       coverage.py v7.0.0, created at 2022-12-20 14:31 +0000

1from fastapi import APIRouter, Depends 

2from pydantic import BaseModel 

3 

4from ...services.database import Reading 

5from ...services.jwt import jwt_required 

6from ...utils.session import get_session, get_sessions_id 

7 

8session_router = APIRouter() 

9 

10 

11class GetSessionResponse(BaseModel): 

12 readings: list[Reading.Serialized] 

13 

14 

15class GetSessionIDsResponse(BaseModel): 

16 IDs: list[int] 

17 

18 

19@session_router.get( 

20 "/session/{sessionID}", 

21 dependencies=[Depends(jwt_required)], 

22 response_model=GetSessionResponse, 

23) 

24async def get_reading_session(nodeID: int, sessionID: int): 

25 readings = await get_session(nodeID, sessionID) 

26 

27 return {"readings": [await x.serialize() for x in readings]} 

28 

29 

30@session_router.get( 

31 "/session", 

32 dependencies=[Depends(jwt_required)], 

33 response_model=GetSessionResponse, 

34) 

35async def get_reading_session_no_sessionID(nodeID: int): 

36 readings = await get_session(nodeID, None) 

37 

38 return {"readings": [await x.serialize() for x in readings]} 

39 

40 

41@session_router.get( 

42 "/sessions", 

43 dependencies=[Depends(jwt_required)], 

44 response_model=GetSessionIDsResponse, 

45) 

46async def get_sessions_id_route(nodeID: int): 

47 sessions_id = await get_sessions_id(nodeID) 

48 

49 return {"IDs": sessions_id}