U
    c                     @   s   d dl mZmZmZmZmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZmZ d dlmZ d dlZd dlmZ d	Zd
ZdZejZejZe	 ZefddZdS )    )Flaskrender_templateredirecturl_forrequest)	Bootstrap)
SQLAlchemy)	FlaskForm)StringFieldSubmitField)DataRequiredN)Configz)https://api.themoviedb.org/3/search/moviez"https://api.themoviedb.org/3/moviezhttps://image.tmdb.org/t/p/w500c              	      s  t t}|jt t| t| G dd dtj|	  t
  W 5 Q R X G dd dtG dd dt |dfdd	}|jd
ddgdfdd}|dfdd}dd |jdddgd fdd}|dfdd}|S )Nc                   @   s   e Zd ZejejddZejejddZeje ddZ	ejejddZ
ejejddZejejddZejejddZejejddZdS )zcreate_app.<locals>.MovieT)Zprimary_keyF)ZnullableN)__name__
__module____qualname__dbZColumnZIntegeridZStringtitleyeardescriptionZFloatratingrankingreviewimg_url r   r   2/home/dhowes/Dev/yourbookshelf/bookapp/__init__.pyMovie   s   r   c                   @   s$   e Zd ZedZedZedZdS )z!create_app.<locals>.RateMovieFormzYour ratingzYour reviewZDoneN)r   r   r   r
   r   r   r   submitr   r   r   r   RateMovieForm;   s   r   c                   @   s$   e Zd Zede gdZedZdS )z create_app.<locals>.AddMovieFormzYour Book Title)Z
validatorszAdd BookN)r   r   r   r
   r   r   r   r   r   r   r   r   AddMovieForm@   s   r   /c                     sL    j  j } tt| D ]}t| | | | _qtj	  t
d| dS )Nz
index.htmlmovies)queryZorder_byr   allrangelenr   r   sessioncommitr   )Z
all_moviesir   r   r   homeD   s
    
zcreate_app.<locals>.homez/editZGETZPOST)methodsc                     sb    } t jd} j|}|  rTt| jj|_| jj|_t	j
  ttdS td|| dS )Nr   r+   z	edit.html)movieform)r   argsgetr#   validate_on_submitfloatr   datar   r   r'   r(   r   r   r   )r.   movie_idr-   )r   r   r   r   
rate_movieM   s    

zcreate_app.<locals>.rate_moviez/deletec                     s:   t jd}  j| }tj| tj  tt	dS )Nr   r+   )
r   r/   r0   r#   r   r'   deleter(   r   r   )r4   Zmovie_to_deleter*   r   r   r6   Y   s
    
zcreate_app.<locals>.deletec                 S   s.   d}| t dd}tj||d}| d }|S )Nz+https://www.googleapis.com/books/v1/volumes   )qkeyZ
maxResultsparamsitems)GOOGLE_API_KEYrequestsr0   json)nameZurlr;   responser3   r   r   r   movie_searchg   s    z create_app.<locals>.movie_searchz/addc                     s8     } |   r,| jj}|d}td|dS td| dS )N)r@   zselect.htmlr!   zadd.html)r.   )r1   r   r3   r   )r.   Zmovie_titler"   )r   rB   r   r   addt   s    
zcreate_app.<locals>.addz/findc                     s   t jd} | rd|  }tj|dtid}| } |d d |d d dd	 |d d
 |d d d  d}tj	| tj
  ttd|jdS d S )Nr   z,https://www.googleapis.com/books/v1/volumes/Zapi_keyr:   Z
volumeInfor   ZpublishedDate-r   r   Z
imageLinksZ	thumbnail)r   r   r   r   r5   )r   )r   r/   r0   r>   r=   r?   splitr   r'   rC   r(   r   r   r   )Zmovie_api_idZmovie_api_urlrA   r3   Z	new_movier*   r   r   
find_movie~   s    



zcreate_app.<locals>.find_movie)r   r   ZconfigZfrom_objectr   r   r   Zinit_appZModelZapp_contextZ
create_allr	   Zroute)Zconfig_classZappr+   r5   r6   rC   rF   r   )r   r   r   rB   r   
create_app   s*    

	rG   )Zflaskr   r   r   r   r   Zflask_bootstrapr   Zflask_sqlalchemyr   Z	flask_wtfr	   Zwtformsr
   r   Zwtforms.validatorsr   r>   Zbookapp.configr   ZMOVIE_DB_SEARCH_URLZMOVIE_DB_INFO_URLZMOVIE_DB_IMAGE_URLZTMDB_API_KEYZAPI_KEYr=   r   rG   r   r   r   r   <module>   s   