
    i              
          d dl Z 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 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
       Zej;                  de       ee       ee      fdedede	fd       Zej?                  de       ee       ee      fde dede	fd       Z!ejE                  de       ee       ee      fde dedede	fd       Z#y)    N)	APIRouterDependsHTTPExceptionstatus)JSONResponse)HTTPAuthorizationCredentials
HTTPBearer)Session)verify_token)UserCourseLog)User)UserCourseLogCreateUserCourseLogUpdateUserCourseLogResponse)get_db)jsonable_encoderz/user-course-logs)response_modeluser_course_logdbcredentialsc                 .  K   |j                   }t        |      }|j                  t              j	                  t        j
                  |k(        j                         }|st        t        j                  d      t        di | j                         }d|_        |j                  |       |j                          |j                  |       t!        t#        t%        j&                  |            t        j(                  ddt        j(                        S w)z'
    Create a new user course log.
    Invalid user tokenstatus_codedetailCreditz$User course log created successfullyr   r   messagecontentr    )r   r   queryr   filteridfirstr   r   HTTP_401_UNAUTHORIZEDr   dicttypeaddcommitrefreshr   r   r   from_ormHTTP_201_CREATED)r   r   r   tokenuser_iduserdb_user_course_logs          D/var/www/html/syllabuild_admin/backend/api/routes/user_course_log.pycreate_user_course_logr3      s      ##E5!G88D>  G!34::<D(D(DMabb '@)=)=)?@&FFIIKJJ!"/0E0N0NOa0bc!22=

 ++ s   DDz/user-course-logs/{user_id}r/   c                   K   |j                   }t        |      }|j                  t              j	                  t        j
                  |k(        j                         }|st        t        j                  d      |j                  t              j	                  t        j                  | k(        j                  t        j
                  j                               j                         }|st        t        j                  d      t!        t#        |      d       t%        t#        |      t        j&                  ddt        j&                        S w)z+
    Retrieve a user course log by ID.
    r   r   User course log not foundr   z&User course log retrieved successfullyr   r   )r   r   r"   r   r#   r$   r%   r   r   r&   r   r/   order_bydescallHTTP_404_NOT_FOUNDprintr   r   HTTP_200_OK)r/   r   r   r.   login_user_idr0   r   s          r2   get_user_course_log_by_idr=   5   s      ##E 'M88D>  M!9:@@BD(D(DMabbhh}-44]5J5Jg5UV__`m`p`p`u`u`wx||~O(A(AJeff	
?
+,=>/@!--?

 && s   EEz&/user-course-logs/{user_course_log_id}user_course_log_idc                   K   |j                   }t        |      }|j                  t              j	                  t        j
                  |k(        j                         }|st        t        j                  d      |j                  t              j	                  t        j
                  | k(        j                         }|st        t        j                  d      	 |j                  |_        |j                          |j                  |       t        t!        t#        j$                  |            t        j&                  ddt        j&                        S # t(        $ r}t        ddt+        |             d	}~ww xY ww)
z#
    Update a user course log.
    r   r   r5   z$User course log updated successfullyr   r   i  zSomething went wrong: N)r   r   r"   r   r#   r$   r%   r   r   r&   r   r9   number_of_courser*   r+   r   r   r   r,   r;   	Exceptionstr)r>   r   r   r   r.   r/   r0   es           r2   update_user_course_logrD   R   s7     ##E5!G88D>  G!34::<D(D(DMabbhh}-44]5E5EI[5[\bbdO(A(AJeffW+:+K+K(
		


?##34I4R4RSb4c#d%11A
 **
 	
  W6LSQRVH4UVVWs+   CF A:E F 	E=E88E==F )$refastapir   r   r   r   fastapi.responsesr   fastapi.securityr   r	   sqlalchemy.ormr
   core.securityr   db.models.user_course_logr   db.models.userr   db.schemas.user_course_logr   r   r   
db.sessionr   fastapi.encodersr   routersecuritypostr3   getintr=   putrD   r!       r2   <module>rW      s8   	 = = * D " & 3  f f  - 
< 1FG &/070A!(!! .! H!F ):OP &/070A . Q8 4EZ[ &/070A	!W!W(!W 	!W .	!W \!WrV   