8
8
import requests
9
9
from django .conf import settings
10
10
11
- from .serializers import PretalxPaginatedSessionSerializer
11
+ from .serializers import PretalxPaginatedSessionSerializer , PretalxSessionSerializer
12
12
13
13
logger = logging .getLogger (__name__ )
14
14
@@ -39,7 +39,7 @@ def _request(self, method: RequestMethodType, endpoint: str, *args: tuple, **kwa
39
39
logger .error (traceback .format_exception (e ))
40
40
raise PretalxException ("Pretalx API 요청에 실패했습니다." ) from e
41
41
42
- def retrieve_sessions (self , event_name : str , only_confirmed : bool = True ) -> dict :
42
+ def list_sessions (self , event_name : str , only_confirmed : bool = True ) -> dict :
43
43
"""세션 목록 조회"""
44
44
endpoint = f"api/events/{ event_name } /submissions" + ("?state=confirmed" if only_confirmed else "" )
45
45
@@ -53,5 +53,19 @@ def retrieve_sessions(self, event_name: str, only_confirmed: bool = True) -> dic
53
53
except Exception as e :
54
54
raise PretalxException ("세션 목록을 가져오지 못했습니다, 잠시 후에 다시 시도해주세요." ) from e
55
55
56
+ def retrieve_session (self , event_name : str , session_id : int ) -> dict :
57
+ """세션 상세 조회"""
58
+ endpoint = f"api/events/{ event_name } /submissions/{ session_id } "
59
+
60
+ try :
61
+ result = self ._request ("GET" , endpoint )
62
+ result .raise_for_status ()
63
+
64
+ parsed_result = PretalxSessionSerializer (data = result .json ())
65
+ parsed_result .is_valid (raise_exception = True )
66
+ return parsed_result .validated_data
67
+ except Exception as e :
68
+ raise PretalxException ("세션을 가져오지 못했습니다, 잠시 후에 다시 시도해주세요." ) from e
69
+
56
70
57
71
pretalx_client = PretalxClient ()
0 commit comments