o
    [<hÆ  ã                   @   sr   d dl mZmZmZ d dlZd dlmZ d dlmZ edeƒZ	e	j
ddgdd	d
„ ƒZe	j
ddgddd„ ƒZdS )é    )Ú	BlueprintÚrequestÚjsonifyN)Údatetime)Úget_db_connectionÚcarbonation_testz/save_carbonation_testÚPOST)Úmethodsc               
   C   sV  z‚t  ¡ } |  d¡}|  dg ¡}|stddiƒdfW S |s&tddiƒdfW S tƒ }| ¡ }| d¡ | d|f¡ d	}|D ]-}| d
¡}| d¡}| d¡}	| d¡}
|rj|rj|	rj|
rj| d||||	|
f¡ |d7 }q=| ¡  | ¡  | ¡  td|› d|dœƒW S  t	yª } zt
dt|ƒ› ƒ tddt|ƒ› iƒdfW  Y d }~S d }~ww )NÚfile_idÚcarbonation_dataÚerrorõ   íŒŒì¼ IDê°€ í•„ìš”í•©ë‹ˆë‹¤.é  u$   íƒ„ì‚°í™” ë°ì´í„°ê°€ ì—†ìŠµë‹ˆë‹¤.a¾  
            CREATE TABLE IF NOT EXISTS carbonation_test (
                id SERIAL PRIMARY KEY, 
                file_id TEXT NOT NULL,
                component TEXT NOT NULL,
                position TEXT NOT NULL,
                test_type TEXT NOT NULL,
                grade TEXT NOT NULL,
                created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
                updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
            )
        z/DELETE FROM carbonation_test WHERE file_id = %sr   Ú	componentÚpositionÚ	test_typeÚgradezö
                    INSERT INTO carbonation_test 
                    (file_id, component, position, test_type, grade, created_at, updated_at)
                    VALUES (%s, %s, %s, %s, %s, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
                é   Tu;   ê°œì˜ íƒ„ì‚°í™” ì‹œí—˜ ë°ì´í„°ê°€ ì €ìž¥ë˜ì—ˆìŠµë‹ˆë‹¤.)ÚsuccessÚmessageÚsaved_countu*   íƒ„ì‚°í™” ì‹œí—˜ ë°ì´í„° ì €ìž¥ ì˜¤ë¥˜: u)   ì €ìž¥ ì¤‘ ì˜¤ë¥˜ê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤: éô  )r   Úget_jsonÚgetr   r   ÚcursorÚexecuteÚcommitÚcloseÚ	ExceptionÚprintÚstr)Údatar
   r   Úconnr   Úinsert_countÚitemr   r   r   r   Úe© r&   úC/home/skpark/git/infrasmart_work/infrasmart/api/carbonation_test.pyÚsave_carbonation_test	   sJ   





ü€
ý&€þr(   z/get_carbonation_testÚGETc               
   C   sü   zUt j d¡} | stddiƒdfW S tƒ }| ¡ }| d| f¡ | ¡ }| ¡  | ¡  g }|D ]}| 	|d |d |d |d	 |d
 |d dœ¡ q0td|t
|ƒdœƒW S  ty} } ztdt|ƒ› ƒ tddt|ƒ› iƒdfW  Y d }~S d }~ww )Nr
   r   r   r   zÅ
            SELECT component, position, test_type, grade, created_at, updated_at
            FROM carbonation_test 
            WHERE file_id = %s
            ORDER BY position, test_type
        r   r   é   é   é   é   )r   r   r   r   Ú
created_atÚ
updated_atT)r   r   Úcountu*   íƒ„ì‚°í™” ì‹œí—˜ ë°ì´í„° ì¡°íšŒ ì˜¤ë¥˜: u)   ì¡°íšŒ ì¤‘ ì˜¤ë¥˜ê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤: r   )r   Úargsr   r   r   r   r   Úfetchallr   ÚappendÚlenr   r   r    )r
   r"   r   Úrowsr   Úrowr%   r&   r&   r'   Úget_carbonation_testJ   s@   û
ú	
ý&€þr7   )Úflaskr   r   r   Újsonr   Úutils.commonr   Ú__name__Úcarbonation_test_bpÚrouter(   r7   r&   r&   r&   r'   Ú<module>   s    

@