
    hH                        S r SSKJr  SSKrSSKJrJrJr  SSKr " S S5      r	\
S:X  a%  \	" 5       rS/rS	rS
rSr\R!                  \\\\5        gg)u#   Pigeon Cloud API クライアント    )annotationsN)AnyDictOptionalc                      \ rS rSrSrSSS jjr          SS jrSS jrSS jrSS jr	SS	 jr
\SS
 j5       rSrg)PigeonCloudService   uC   Pigeon Cloud へのレコード検索と更新を扱うサービスNc                    U=(       d    [         R                  " 5       U l        [        R                  " S5      U l        [        R                  " S5      U l        g )NPIGEON_CLOUD_API_URLPIGEON_CLOUD_AUTH_TOKEN)requestsSessionsessionosgetenvapi_url
auth_token)selfr   s     M/Users/shosukeoasa/Desktop/openai_agents/src/services/pigeon_cloud_service.py__init__PigeonCloudService.__init__
   s9    4("2"2"4yy!78))$=>    c                   #    U(       d  [        S5        gU R                  X5      n[        U5        U R                  U5      nU(       d  gUS   S   S   S   nU R                  XsU5        [        S5        g7f)u;   求人IDと候補者リストを元に面接日程を更新uT   PigeonCloudService: job_id が指定されていないためスキップします。Ndatar   raw_dataidu6   エントリーデータの更新が完了しました)print_get_job_entry_data_is_single_entry_update_interview_date)r   job_id	full_nameinterview_dayinterview_start
entry_datasingle_entryentry_ids           r   update_interview_dates)PigeonCloudService.update_interview_dates   s}      hi--f@
j,,Z8 f%a(4T: 	##H_MFGs   A5A7c                ^    U R                   (       a  U R                   nO[        S5        WSS.$ )u   API ヘッダーを生成u!   AuthTokenが見つかりませんzapplication/json)zx-pigeon-authorizationzContent-Type)r   r   )r   r   s     r   _headersPigeonCloudService._headers+   s+    ??J56&0.
 	
r   c                    SUU SU 3S./S.n U R                   R                  U R                   S3UU R                  5       S9nUR	                  5         g	! [
         a  n[        SU SU 35         S	nAg	S	nAff = f)
u*   対象レコードの面接日程を更新dataset__20 )r   field__1177)tabler   z/api/v1/recordjsonheadersuC   PigeonCloudService: 面接日程の更新に失敗しました (id=) - N)r   putr   r+   raise_for_status	Exceptionr   )r   r'   r#   r$   payloadresponseexcs          r   r    )PigeonCloudService._update_interview_date6   s     # #&3_Ao5F#G
		m||''<<./ ( H
 %%' 	mWX`Waaefiejkll	ms   AA 
A<!A77A<c                4   SSSSUS.SSSUS.SSSS	S
/S./SS.n U R                   R                  U R                   S3UU R                  5       S9nUR	                  5         UR                  5       $ ! [         a  n[        SU SU 35         SnAgSnAff = f)u+   対象レコードの存在/個数を確認20and
field__766eq)and_orfield	conditionvalue	field__66inc
field__918u   2027卒u   2028卒   )table_idrD   limitz/api/v1/get_recordr2   uN   PigeonCloudService:エントリーデータの取得に失敗しました (id=r5   N)r   postr   r+   r7   r3   r8   r   )r   r!   r"   r9   r:   r;   s         r   r   &PigeonCloudService._get_job_entry_dataM   s      &" 	 %#"	 &"#I.	
* /
4	v||((<<. 23 ) H
 %%'==?" 	vbcibjjnornstuu	vs   AA2 2
B<BBc                2    US   nUS:X  a  g[        S5        g)uz   データの個数が1か、1以外(0or2以上)かをチェックし、エントリーデータが更新対象かを確認count   Tui   名前重複、もしくは該当者なしでエントリーリストが0 or 2件以上発生しましたF)r   )r   response_json
list_counts      r   r   #PigeonCloudService._is_single_entryv   s"    "7+
?y{r   c                H     U R                  5       $ ! [         a    0 s $ f = f)u9   空レスポンスを考慮しつつ JSON を取り出す)r3   
ValueError)r:   s    r   
_safe_jsonPigeonCloudService._safe_json   s'    	==?" 	I	s    !!)r   r   r   )N)r   zOptional[requests.Session]returnNone)
r!   Optional[str]r"   strr#   r[   r$   r[   rX   rY   )rX   zDict[str, str])r'   r   r#   r[   r$   r[   rX   rY   )r!   rZ   r"   r[   )rQ   Dict[str, Any]rX   bool)r:   zrequests.ResponserX   r\   )__name__
__module____qualname____firstlineno____doc__r   r(   r+   r    r   r   staticmethodrV   __static_attributes__ r   r   r   r      sj    M?
  	
  
8	
m.'vR  r   r   __main__i>  u   吉田太海z
2025-10-15z14:00:00+09:00)rb   
__future__r   r   typingr   r   r   r   r   r^   servicer!   r"   r#   r$   r(   re   r   r   <module>rj      se    ) " 	 & & A AF z "GUFI M&O""69m_U r   