a
    ki;                     @  s^   d dl mZ d dlmZmZ d dlZd dlmZ dZdddddd	Z	dddd
dddZ
dS )    )annotations)AnyDictN)settingsz(https://api.line.me/v2/bot/message/replystr)_room_idjoin_urlreturnc                 C  s   |S )u  LINE 按鈕必須使用含 join_token 的 join_url。

    先前若 APP_BASE_URL 有值就改指 /voter?room_id=，會略過 token 進場流程，且與 webhook
    建立的 Participant 無法穩定對應。join_url 已由 webhook 用對外公開網址組好。
     )r   r   r
   r
   QC:\Users\jasmi\Projects\line-hihaho-voting\backend\app\services\line_messaging.py_build_line_action_uri   s    r   zDict[str, Any])reply_tokenr   room_idr	   c              
     s   t jsddd|dS t||}| ddddd	| d
d|dgddgd}dt j dd}tjdd4 I d H b}|jt||dI d H }|jrd|jdW  d   I d H  S d|j|j	dW  d   I d H  S 1 I d H s0    Y  d S )NFTZ(line_channel_access_token_not_configured)okskippedreasonr   templateu   進入互動Zbuttonsu   進入互動投票u"   點擊下方按鈕，加入場次 uri)typelabelr   )r   titletextactions)r   ZaltTextr   )
replyTokenmessageszBearer zapplication/json)AuthorizationzContent-Typeg      .@)timeout)jsonheaders)r   status_code)r   r   body)
r   line_channel_access_tokenr   httpxAsyncClientpostLINE_REPLY_API
is_successr   r   )r   r   r   Z	voter_uripayloadr   clientresponser
   r
   r   reply_join_link   sB    

 r*   )
__future__r   typingr   r   r"   
app.configr   r%   r   r*   r
   r
   r
   r   <module>   s   	