
    Amiw                         S SK JrJrJrJr  S SKJr  S SKJr  S SK	J
r
  S SKJr  S SKJr  S SKJr  S SKJrJr  S S	KJr  \\" S
S9S 5       5       rg)    )jsonifygsessionrequest)Select)db)StudentTable)find_school_by_id)error_response)update_student_rankings)handle_exceptionstoken_required)verify_tokenT)optionalc                  H   [         R                  " S5      n U (       Ga%  [        [        5      R	                  [        R
                  U S   :H  5      n[        R                   R                  U5      R                  5       nU(       d  [        SS5      $ [        UR
                  UR                  UR                  UR                  S9n[        SSUR
                  UR                  UR                  UR                  UR                  S.UR                   UR"                  UR$                  UR&                  US   US	   S
.S.5      S4$ [)        [*        S5      (       Ga>  [)        [*        S5      (       Ga(  [*        R,                  n[*        R.                  nUS:X  a^  [1        UR                  5      n[        SSUR
                  UR                  UR2                  UR4                  UR6                  S.S.5      S4$ US:X  ag  [1        UR                  5      n[        SSUR
                  UR                  UR8                  UR:                  UR                  UR2                  S.5      S4$ US:X  a1  [        SSUR
                  UR2                  UR                  S.5      S4$ [        SS5      $ )zX
Priority:
1. Student (SESSION based)
2. JWT based users (teacher / principal / school)
studentidzStudent not foundi  )
student_idgradesection	school_idT)r   usernamer   r   r   class_rankingsschool_rankings)classschool)successroleusersavatarcoinsgemsstreakrankings   current_usercurrent_roleteacher)r   r   school_namestreamgrades)r   r   r   	principal)r   r   r   r   	firstnamelastnamer   r)   r   )r   r   r   r)   r   zNo active user foundi  )r   getr   r	   wherer   r   executescalar_one_or_noner   r   r   r   r   r   r   r    r!   r"   r#   hasattrr   r&   r'   r
   r)   r*   r+   r-   r.   )r   stmtuserr$   r   r   s         9D:\beyond school\05_solvesmart\server\src\utils\helper.pyr&   r&      sV    kk)$Gl#)),//WT]*JKzz!!$'::<!"5s;;*ww**LLnn	
 gg MM!^^<< kkZZIIkk!"23"#45
 $ % 	. q.!!ga&@&@~~~~ 9&t~~6F!'' $#)#5#5$mm"kk
 
 
 
 ;&t~~6F#gg!^^!^^ MM MM%11	 	 	 	 8 gg#//!^^    0#66    N)flaskr   r   r   r   
sqlalchemyr   srcr   
src.modelsr	   src.services.schoolsr
   src.utils.responser   src.utils.rankingsr   src.utils.decoratorsr   r   src.lib.jwtr   r&    r7   r6   <module>rB      sF    . .   # 2 - 6 B $ \7  \7r7   