3
؀h|                 @   s   d dl Z d dlZd dlmZ d dl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mZmZmZmZmZmZmZ dd	 Zejd
dgddd Zejddgddd Zejddgddd Zejddgddd Zejddgddd ZdS )    N)datetime)jsonifyrequest)School)SchoolContact)fieldValidation)		FromCacheappbookings_loggerdbdb_cachereceipt_print_optionsschoolCodeGeneratorsessionTrackingticketGeneratorc             C   s   | j j  d S )N)sessionclose)self r   */booking_service/app/routes/school_urls.pyr      s    r   z/schools/newPOST)methodsc              C   sv  dddddiddiddidd	dd
ddg} t tj| }|rNtd|idfS tjjtjtj	d kj
tjj j }|std }n
t|j}ttj }t|tjd j tjd tjd tjd |tjd tjd
 tj d	}tjj| y0tjj  tt g }|jd td|idfS  tk
rp } z6tjj  tt g }|jd t|t|ddfS d }~X nX d S )Nschool_namezSchool name)fieldaliasr   leveltypegender	city_townz	City/Town
session_idz
Session IDmessagesi  )	school_public_idr   school_levelschool_typeschool_genderschool_codeclosest_city_townr   
created_atz&Successfully saved the school details.message   z3Unable to save the school details. Try again later.)r(   error)r   r   jsonr   r   r   queryr   filterdeletion_markerorder_by	school_iddescfirstr   r%   struuiduuid4titler   nowaddcommitr   append	Exceptionrollback)validation_listr    Zget_last_schoolr%   r0   schoolr(   er   r   r   add_new_school   sN    





r@   z/schools/viewGETc              C   sz   t jjtjtjd kjtjj j	 } | sJg }|j
d td|idfS g }x| D ]}|j
|j  qTW td|idfS )Nz.There are no school details in the system yet.r(   i  data   )r   r   r,   r   r-   r.   r/   r%   ascallr:   r   return_json)Zget_schoolsr(   rB   singler   r   r   view_all_schoolsO   s    

rH   z/schools/view/<school_id>c             C   sd   t jjtjtjd kjtj| kj }|sJg }|jd t	d|idfS |j
 g}t	d|idfS )Nz.There are no school details in the system yet.r(   i  rB   rC   )r   r   r,   r   r-   r.   r!   r2   r:   r   rF   )r0   
get_schoolr(   rB   r   r   r   view_single_schoold   s    

rJ   z/schools/modifyPATCHc              C   s  ddddddddiddidd	id
dddddg} t tj| }|rVtd|idfS tjjtjtj	d kjtj
tjd kj }|sg }|jd td|idfS tjd |_tjd |_tjd |_tjd	 |_tjd
 |_tjd |_tj |_y0tjj  tt g }|jd td|idfS  tk
r| } z6tjj  tt g }|jd t|t|ddfS d }~X nX d S )Nr0   z	School ID)r   r   r   zSchool namer   r   r   r   r   z	City/Townr   z
Session IDr    i  z3The selected school details do not appear to exist.r(   i  z(Successfully updated the school details.rC   z5Unable to update the school details. Try again later.)r(   r*   )r   r   r+   r   r   r   r,   r   r-   r.   r!   r2   r:   r   r"   r#   r$   r&   r   r   r7   
updated_atr9   r   r;   r<   r3   )r=   r    rI   r(   r?   r   r   r   modify_school_detailsv   sH    





rM   z/schools/deletec              C   s  ddddddg} t tj| }|r4td|idfS tjjtjtj	d kjtj
tjd kj }|sg }|jd td	|id
fS tjjtjtj	dkjtjtjd kj }x(|D ] }d|_	tjd |_tj |_qW d|_	tjd |_tj |_y0tjj  tt g }|jd td	|idfS  tk
r| } z6tjj  tt g }|jd t|t|ddfS d }~X nX d S )Nr0   z	School ID)r   r   r   z
Session IDr    i  z3The selected school details do not appear to exist.r(   i     z(Successfully updated the school details.rC   z5Unable to update the school details. Try again later.)r(   r*   )r   r   r+   r   r   r   r,   r   r-   r.   r!   r2   r:   r   r0   rE   r   r   r7   rL   r9   r   r;   r<   r3   )r=   r    rI   r(   Zget_school_contactsZsingle_contactr?   r   r   r   delete_school_details   sD    






rO   )requestsr4   r   flaskr   r   database.schoolr   database.school_contactr   functions.validationr   routesr   r	   r
   r   r   r   r   r   r   r   router@   rH   rJ   rM   rO   r   r   r   r   <module>   s   ,=4