88import  requests 
99from  django .conf  import  settings 
1010
11- from  .serializers  import  PretalxPaginatedSessionSerializer 
11+ from  .serializers  import  PretalxPaginatedSessionSerializer ,  PretalxSessionSerializer 
1212
1313logger  =  logging .getLogger (__name__ )
1414
@@ -39,7 +39,7 @@ def _request(self, method: RequestMethodType, endpoint: str, *args: tuple, **kwa
3939            logger .error (traceback .format_exception (e ))
4040            raise  PretalxException ("Pretalx API 요청에 실패했습니다." ) from  e 
4141
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 :
4343        """세션 목록 조회""" 
4444        endpoint  =  f"api/events/{ event_name }   +  ("?state=confirmed"  if  only_confirmed  else  "" )
4545
@@ -53,5 +53,19 @@ def retrieve_sessions(self, event_name: str, only_confirmed: bool = True) -> dic
5353        except  Exception  as  e :
5454            raise  PretalxException ("세션 목록을 가져오지 못했습니다, 잠시 후에 다시 시도해주세요." ) from  e 
5555
56+     def  retrieve_session (self , event_name : str , session_id : int ) ->  dict :
57+         """세션 상세 조회""" 
58+         endpoint  =  f"api/events/{ event_name } { 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+ 
5670
5771pretalx_client  =  PretalxClient ()
0 commit comments