
    h              
       J   d dl mZmZmZmZ d dlmZ d dlmZ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  edd	g
      Zej+                  de       ee       ee      fdededefd       Zej1                  dee         d d ee      fdededefd       Zej1                  de       ee      fdedefd       Zej9                  de       ee       ee      fdedededefd       Zej=                  dd       ee       ee      fdededefd       Zy)    )	APIRouterDependsHTTPExceptionQuery)Session)ListOptional)get_db)	SoftSkill)SoftSkillCreateSoftSkillResponseSoftSkillUpdate)get_current_active_userz/soft_skillszSoft Skills)prefixtags/)response_model
soft_skilldbcurrent_userc                 T   |j                  t              j                  t        j                  | j                  k(        j	                         }|rt        dd      t        di | j                         }|j                  |       |j                          |j                  |       |S )zCreate a new soft skill.i  z(Soft skill with this name already existsstatus_codedetail )
queryr   filternamefirstr   
model_dumpaddcommitrefresh)r   r   r   db_soft_skillnew_soft_skills        D/home/www/40-admission.kofcorporation.com/app/routers/soft_skills.pycreate_soft_skillr'      s     HHY'..y~~/PQWWYM4^__9!6!6!89NFF>IIKJJ~    d   skiplimitc                     |j                  t              j                  |       j                  |      j	                         }|S )zRetrieve all soft skills.)r   r   offsetr+   all)r*   r+   r   soft_skillss       r&   get_all_soft_skillsr0      s7     ((9%,,T288?CCEKr(   z/{soft_skill_id}soft_skill_idc                     |j                  t              j                  t        j                  | k(        j	                         }|st        dd      |S )z)Retrieve a specific soft skill by its ID.  Soft skill not foundr   )r   r   r   idr   r   )r1   r   r   s      r&   get_soft_skillr6   '   sF     )$++ILLM,IJPPRJ4JKKr(   soft_skill_updatec                 Z   |j                  t              j                  t        j                  | k(        j	                         }|st        dd      |j                  d      }|j                         D ]  \  }}t        |||        |j                          |j                  |       |S )zUpdate a soft skill.r3   r4   r   T)exclude_unset)r   r   r   r5   r   r   r    itemssetattrr"   r#   )r1   r7   r   r   r$   update_datakeyvalues           r&   update_soft_skillr?   2   s     HHY'..y||}/LMSSUM4JKK#..T.BK!'') +
UsE*+ IIKJJ}r(      )r   c                     |j                  t              j                  t        j                  | k(        j	                         }|st        dd      |j                  |       |j                          y)zDelete a soft skill.r3   r4   r   N)r   r   r   r5   r   r   deleter"   )r1   r   r   r$   s       r&   delete_soft_skillrC   F   sX     HHY'..y||}/LMSSUM4JKKIImIIKr(   N) fastapir   r   r   r   sqlalchemy.ormr   typingr   r	   app.core.databaser
   
app.modelsr   app.schemas.soft_skillr   r   r   app.services.authr   routerpostdictr'   getintr0   r6   putr?   rB   rC   r   r(   r&   <module>rQ      s   < < " ! $   V V 5	.	?S!23 &/ !89  4  C%6 78&/
 	 9 /@A &/ B /@A &/ !89	& 	 	 B& !s3 &/ !89  4r(   