o
    ̼i{                     @   s   d dl mZ d dlZd dlmZ d dlmZmZmZm	Z	 d dl
mZmZmZ d dl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dS )    )appN)Error)Flask	send_filejsonifyrequest)connect_to_databaseupdateStatusdeleteRecordc                 C   sB   i }|   D ]\}}t|tjtjfr| ||< q|||< q|S )zPConvert datetime objects in a dict to ISO format strings for JSON serialization.)items
isinstancedatetimedate	isoformat)rowoutkeyval r   6/var/www/edux/Edux_v2/controllers/status_controller.pyserialize_row	   s   
r   z/api/statusGET)methodsc               
   C   s   t  } | d u rtddidfS zHz"| jdd}|d | }tdd |D W W |  |   S  tyW } ztdt|idfW  Y d }~W |  |   S d }~ww |  |   w )	Nerror!Failed to connect to the database  T
dictionaryzSELECT * FROM search_requestsc                 S      g | ]}t |qS r   r   .0rr   r   r   
<listcomp>       z%status_controller.<locals>.<listcomp>)r   r   cursorexecutefetchallcloser   str)
connectionr%   rowser   r   r   status_controller   s$   

 

r-   z/api/search_criteriac               
   C   s:  t jd} | stddidfS t }|d u rtddidfS zozD|jdd}d	}||| f | }|sMtdd
idfW W |rE|  |rL|  S S tdd |D W W |r]|  |rd|  S S  t	y } ztdt
|idfW  Y d }~W |r|  |r|  S S d }~ww |r|  |r|  w w )N	search_idr   zSearchId is requiredi  r   r   Tr   zS
        SELECT *
        FROM search_criteria
        WHERE SearchId = %s
        z'No data found for the provided SearchIdi  c                 S   r   r   r   r    r   r   r   r#   <   r$   z.search_criteria_controller.<locals>.<listcomp>)r   argsgetr   r   r%   r&   r'   r(   r   r)   )r.   r*   r%   queryr+   r,   r   r   r   search_criteria_controller%   sL   

 

r2   z/api/stopProcessc               
   C      zt jd} td|  t }t|| d tddidfW S  tyA } ztj	j
|ddd tt|d	d
fW  Y d }~S d }~ww )Nrow_IdStoppingStoppedSuccesszDatabase Updated   T
stack_infoexc_infor   r   )r   r/   r0   printr   r	   r   	Exceptionr   loggerr   r)   rowIdr*   r,   r   r   r   stopProcessG      
rB   z/api/deleteProcessc               
   C   r3   )Nr4   DeletingDeletedr7   zRecord deletedr8   Tr9   r<   r   )r   r/   r0   r=   r   r
   r   r>   r   r?   r   r)   r@   r   r   r   deleteProcessS   rC   rF   )	flask_appr   mysql.connectormysqlr   flaskr   r   r   r   configs.databaseConnectionr   r	   r
   r   r   router-   r2   rB   rF   r   r   r   r   <module>   s    

!
