o
    cA4i                     @   s  d dl mZmZ d dlmZmZmZ d dlmZ d dl	Z	d dl
mZ d dlmZmZmZmZ d dlmZ edd	Zejd
edeeeefdeee f fddZejd
ee deeeefddZedeeeefdefddZedeeeefdedeee f fddZejdddeeeefdefddZejdee deeeefdefddZedeeeefded efd!d"ZdS )#    )	AnnotatedList)	APIRouterDependsForm)StreamingResponseN)get_user)ProfileRegistrationCreateSchemaProfileRegistrationUpdateSchema!ProfileRegistrationResponseSchemaContentListRequestSchema)ProfileRegistrationServicez/profile-registration)prefix/)response_modelrequestc                    s   | | |I d H S N)create_registrationr   userservice r    /app/api/profile_registration.pyr      s   r   c                    s   | | S r   )get_all_registrations)r   r   r   r   r   r      s   
r   z/{registration_id}registration_idc                    s   | | |S r   )get_registration_by_idr   r   r   r   r   r   r   #   s   r   c                    s   | | ||I d H S r   )update_registration)r   r   r   r   r   r   r   r   -   s   r      )status_codec                    s   | |  ddiS )Nmessagez!Registration deleted successfully)delete_registrationr   r   r   r   r!   8   s   
r!   z/list-contentc                    s   | | j| j| jS r   )Zlist_content_by_course_and_user	course_iduser_id	user_typer   r   r   r   list_contentE   s   r%   z$/export/{course_id}/{participant_id}r"   participant_idc                    s0   | | ||}tt|ddd|  didS )zAReturn a PDF containing profile registrations for a given course.zapplication/pdfzContent-Dispositionz2attachment; filename=profile_registrations_course_z.pdf)
media_typeheaders)Zgenerate_pdf_by_courser   ioBytesIO)r"   r&   r   r   Z	pdf_bytesr   r   r   export_course_registrations_pdfN   s    r+   ) typingr   r   fastapir   r   r   fastapi.responsesr   r)   core.security.authenticationr   Zschema.profile_registrationr	   r
   r   r   Zservices.profile_registrationr   profile_registration_routerpostr   getr   intr   putr   deleter!   r%   r+   r   r   r   r   <module>   sh    
		
