
    ;Gh9                     *   d dl Z d dlmZmZ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 d dlmZmZmZ d d	lmZ d d
lmZ  e       Z e	        ej3                  d       ee      fdedefd       Zej9                  d       ee      fdededefd       Zej?                  dee          ee      fdefd       Z ej?                  dee          ee      fdefd       Z!ej?                  dee          ee      fde"defd       Z#y)    N)	APIRouterDependsHTTPException)Pagepaginate)"disable_installed_extensions_check)desc)CodeScan)User)CodeScanBaseCodeScanCreateCodeScanUpdate)check_token_validity)check_notifications scandependenciesc                 $   |\  }}t        di | j                         |j                  t        j                  j	                         dd}|j                  |       |j                          |j                  |       |j                  t              j                  t        j                  |j                  k(        j                         }|r*|j                  xs d}|dz   |_        |j                          t        || j                         dd|dS )N   )user_id
created_atpointsr   Tu"   Évaluation ajoutée avec succès!statusmessager    )r
   
model_dumpiddatetimenowaddcommitrefreshqueryr   filterfirstbonus_pointsr   
company_id)r   r   dbuserdb_scandb_usercurrent_pointss          M/Users/theessential/Documents/Github/Lekema-Backend/app/routers/code_scans.pycreate_scanr/      s    HBj*jDGGHYHYH]H]H_hijGFF7OIIKJJwhhtn##DGGtww$67==?G --2-1
		 DOO, 7     z
/{scan_id}scan_idc                 j   |\  }}|j                  t              j                  t        j                  | k(        j	                         }|t        dd      |j                         j                         D ]  \  }}|	t        |||        |j                          |j                  |       dd|dS )Ni  zScan not found)status_codedetailTu#   Évaluation modifiée avec succès!r   )r$   r
   r%   r   r&   r   r   itemssetattrr"   r#   )r1   r   r   r)   r*   r+   keyvalues           r.   update_scanr9   +   s    HBhhx ''w(>?EEGG4DEEoo'--/ )
UGS%() IIKJJw 8 r0   z/personal-scans)response_modelc                    | \  }}|j                  t              j                  t        j                  |j                  k(        j                  t        t        j                              j                         }t        |      S N)	r$   r
   r%   r   r   order_byr	   allr   r   r)   r*   scanss       r.   get_personal_scansrA   @   s]    HBHHX%%h&6&6$''&ABKKDQYQ\Q\L]^bbdEE?r0   z/company-scansc                    | \  }}|j                  t              j                  t        j                  |j                  k(        j                  t        t        j                              j                         }t        |      S r<   )	r$   r
   r%   r(   r   r=   r	   r>   r   r?   s       r.   get_company_scansrC   H   s]    HBHHX%%h&9&9TWW&DENNtT\T_T_O`aeegEE?r0   z$/company-scans-by-admin/{company_id}r(   c                     |\  }}|j                  t              j                  t        j                  | k(        j	                  t        t        j                              j                         }t        |      S r<   )	r$   r
   r%   r(   r=   r	   r   r>   r   )r(   r   r)   r*   r@   s        r.   get_company_scan_by_adminrE   P   sZ    HBHHX%%h&9&9Z&GHQQRVW_WbWbRcdhhjEE?r0   )$r   fastapir   r   r   fastapi_paginationr   r   fastapi_pagination.utilsr   
sqlalchemyr	   app.models.code_scanr
   app.models.userr   app.schemas.code_scanr   r   r   app.utils.authentificationr   app.utils.helpersr   routerposttupler/   putintr9   getrA   rC   strrE   r   r0   r.   <module>rV      sS    5 5 - G  )   N N ; 1	 " $ R<CDX<Y n E  . LJQRfJg  N %  ( d<.@A-45I-J U  B T,-?@,34H,I E  A 24CUVDKL`Da # E  Wr0   