o
    `sh>                     @   s   d dl mZmZmZmZ d dlZd dlZd dlm	Z	 ddl
m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 )    )	BlueprintapprequestjsonifyN)get_db_connection   )api_bpz/damage_meta/treeGET)methodsc                     sP   t  } td| |   jrtddidfS d fdd	  d}t|S )	u1   손상유형 메타데이터 트리 구조 반환z*SELECT * FROM damage_meta WHERE use_yn='Y'erroru"   파일을 찾을 수 없습니다.  Nc                    sv   g }| d u rd    }nd | k }| D ]\}}|d |d |d |d  |d d}|| q|S )N	parent_ididcategorykeyworddescription)r   r   r   r   children)isnulliterrowsappend)r   nodesr   _rownode
build_treedf >/home/skpark/git/infrasmart_work/infrasmart/api/damage_meta.pyr      s   
z(get_damage_meta_tree.<locals>.build_tree)N)r   pdread_sqlcloseemptyr   )conntreer   r   r   get_damage_meta_tree
   s   r%   z/damage_meta/<int:meta_id>c                 C   sH   t  }tjd|| fd}|  |jrtddidfS t|jd  S )u$   특정 메타데이터 상세 조회z%SELECT * FROM damage_meta WHERE id=%s)paramsr   z	Not foundr   r   )r   r   r    r!   r"   r   ilocto_dict)meta_idr#   r   r   r   r   get_damage_meta+   s   r*   z/damage_metaPOSTc                  C   sv   t j} t }| }|d| d| d| d| d| ddf | d }|  |  t	d	|id
fS )u   메타데이터 신규 등록ztINSERT INTO damage_meta (category, keyword, description, parent_id, use_yn) VALUES (%s, %s, %s, %s, %s) RETURNING idr   r   r   r   use_ynYr   r      )
r   jsonr   cursorexecutegetfetchonecommitr!   r   )datar#   curnew_idr   r   r   create_damage_meta5   s   ,r8   PUTc                 C   sh   t j}t }| }|d|d|d|d|d|dd| f |  |  tdd	iS )
u   메타데이터 수정zcUPDATE damage_meta SET category=%s, keyword=%s, description=%s, parent_id=%s, use_yn=%s WHERE id=%sr   r   r   r   r,   r-   resultok)	r   r/   r   r0   r1   r2   r4   r!   r   )r)   r5   r#   r6   r   r   r   update_damage_metaD   s   .r<   DELETEc                 C   s8   t  }| }|d| f |  |  tddiS )u+   메타데이터 삭제(사용안함 처리)z-UPDATE damage_meta SET use_yn='N' WHERE id=%sr:   r;   )r   r0   r1   r4   r!   r   )r)   r#   r6   r   r   r   delete_damage_metaR   s   r>   )flaskr   r   r   r   pandasr   sqlite3utils.commonr    r   router%   r*   r8   r<   r>   r   r   r   r   <module>   s    
 
	

