o
    h                      @   s8  d dl mZmZmZ d dlmZ d dlZd dlZd dlm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ eeZed	eZe	 Ze Ze Ze Ze Zejd
dgde dd Zejddgde dd Zejddgde dd Zejddgde dd Zejddgde dd Z dS )    )	Blueprintrequestjsonify)jwt_requiredN)ACTLicenseCheckerAPI)QLDLicenseCheckerAPI)NTLicenseCheckerAPI)NSWLicenseCheckerAPI)SeleniumVICLicenseCheckercsvz/api/process-act-csvPOST)methodsc               
   C      zKt jstddddfW S t  } | rd| vr"tddddfW S | d }t|ts5tdd	ddfW S t|}td
dt| d|t|dW S  t	yp } zt
d|  tdt|ddfW  Y d}~S d}~ww z,Process JSON data and return results as JSONInvalid content typePlease provide JSON dataerrormessage  recordsInvalid data format+Please provide records array in JSON formatInvalid records formatRecords must be an arrayTSuccessfully processed  recordssuccessr   datatotal_recordszAPI error: Processing failed  N)r   is_jsonr   get_json
isinstancelistlicense_checkerprocess_recordslen	Exceptionloggerr   strr   r   resultse r0   %/var/www/html/routes/csv_processor.pyprocess_act_csv   R   


r2   z/api/process-nsw-csvc               
   C      zQt jstddddfW S t  } | rd| vr"tddddfW S | d }t|ts5tdd	ddfW S t|}t|}td
dt	| d||t	|dW S  t
yv } ztd|  tdt|ddfW  Y d}~S d}~ww )zEProcess JSON data for NSW license checking and return results as JSONr   r   r   r   r   r   r   r   r   Tr   r   r   r   r   
statisticsr    zNSW API error: r!   r"   N)r   r#   r   r$   r%   r&   nsw_license_checkerr(   get_processing_statsr)   r*   r+   r   r,   r   r   r.   statsr/   r0   r0   r1   process_nsw_csvH   V   



r;   z/api/process-nt-csvc               
   C   r4   )zDProcess JSON data for NT license checking and return results as JSONr   r   r   r   r   r   r   r   r   Tr   r   r5   zNT API error: r!   r"   N)r   r#   r   r$   r%   r&   nt_license_checkerr(   r8   r)   r*   r+   r   r,   r9   r0   r0   r1   process_nt_csv{   r<   r>   z/api/process-qld-csvc               
   C   r   r   )r   r#   r   r$   r%   r&   qld_license_checkerr(   r)   r*   r+   r   r,   r-   r0   r0   r1   process_qld_csv   r3   r@   z/api/process-vic-csvc               
   C   r   )zEProcess JSON data for VIC license checking and return results as JSONr   r   r   r   r   r   r   r   r   Tr   r   r   zVIC API error: r!   r"   N)r   r#   r   r$   r%   r&   vic_license_checkerr(   r)   r*   r+   r   r,   r-   r0   r0   r1   process_vic_csv   r3   rB   )!flaskr   r   r   flask_jwt_extendedr   timeloggingscrapers.actr   scrapers.qldr   scrapers.ntcr   scrapers.nswr	   scrapers.vicr
   	getLogger__name__r+   csv_bpr'   r?   r=   r7   rA   router2   r;   r>   r@   rB   r0   r0   r0   r1   <module>   s>    

-11.