U
    .4aD                     @   sd  d Z ddlmZ ddlmZmZmZmZ ddlZddlmZ ddl	m
Z
 ddlZddlmZmZ ddlmZ dd	lmZmZmZmZmZmZmZmZmZmZmZmZ ddlZddlZ e j!"d
 e # Z$e
 %dZ&e
 %dZ'ee&Z(ee'Z)e*de*ddd Z+e*ddd Z,e*ddd Z-ej*ddgddd Z.e)j/eegddd Z0dS )z-
Routes and views for the flask application.
    )datetime)render_templaterequestabortjsonifyN)app)
controller)
LineBotApiWebhookHandler)InvalidSignatureError)LocationAction
QuickReplyQuickReplyButtonButtonsTemplateCarouselColumnMessageEventTextMessageLocationMessageTextSendMessage	URIActionTemplateSendMessageCarouselTemplatez)/var/www/bike-ojisan.f5.si/logging.configACCESS_TOKENCHANNEL_SECRET/z/healthcheckc                  C   s   t   rdnd} | S )NOKZNG)r   healthcheck)result r   5/var/www/bike-ojisan.f5.si/BikeParkingMapAPI/views.pyr      s    r   z/api/getplacec                     st   t jd} t jd}| d ks@t| dks@|d ks@t|dkrHtd t | |}d  fdd|D }t|S )Nlatlonr     z7http://www.google.com/maps/dir/?api=1&destination={},{}c                    s^   g | ]V}|d  |d |d |d |d |d   |d |d |d |d d|d  kd	
qS )
NameZLatitudeZ	LongitudeAddress	FeeDetailCapacitySiteUrlVehicleRestrictionsu   予約)
namer    lngr$   r%   r&   ZRouteURLr'   r(   Z	isReserve)format).0iZrouteFmtr   r   
<listcomp>0   s   

zgetInfo.<locals>.<listcomp>)r   argsgetlenr   r   ZgetDatar   )r    r!   dataelementsr   r.   r   getInfo&   s    (

r5   z/mapc                  C   sf   t jd} t jd}| d ks@t| dks@|d ks@t|dkrHtd t| t|d}td|dS )Nr    r!   r   r"   )r    r*   zmap.html)ct)r   r0   r1   r2   r   floatr   )r    r!   centerr   r   r   about?   s    (r9   z/api/LINEMessagePOST)methodsc                  C   sV   t jd } t jdd}td|  zt||  W n tk
rP   td Y nX dS )NzX-Line-SignatureT)as_textzRequest body: r"   r   )	r   headersget_dataloggerinfohandlerhandler   r   )	signaturebodyr   r   r   callbackO   s    
rE   )messagec                 C   sN   | j j}| j j}| jj}tjj d| d| }t|d}t	j
| j|d d S )Nzmap?lat=z&lon=)text)messages)rF   ZlatitudeZ	longitudesourceZuser_idflaskr   host_urlr   line_bot_apiZreply_messageZreply_token)eventr    r!   ZusridZretUrlZmesr   r   r   handle_message[   s    
rN   )1__doc__r   rJ   r   r   r   r   BikeParkingMapAPIr   ZBikeParkingMapAPI.controllerr   jsonZlinebotr	   r
   Zlinebot.exceptionsr   Zlinebot.modelsr   r   r   r   r   r   r   r   r   r   r   r   	tracebackZlogging.configloggingconfigZ
fileConfig	getLoggerr?   ZgetSystemSettingr   r   rL   rA   router   r5   r9   rE   addrN   r   r   r   r   <module>   s8   8


