o
    Hh&                     @   s   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
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
ede	fddZde
dede	fddZdedede
defddZdS )    )Chat)get_db)Session)DependsHTTPExceptionRequest)UserUserAssignedAvatarAvatar)select)JSONResponse)List)urljoinpathrequestc                 C   s$   | sd S t t|jd| d S )Nzglb_avatars//)r   strbase_urllstrip)r   r    r   ?/var/www/html/vive_backend/app/controllers/avatar_controller.pyget_full_url   s   r   current_userdbc           
   
   C   s  zq| ttjtjttjtjktj| jk	 }dd |D }| ttj
| 	 }g }|D ]}|j}||j|jt|j|t|j||jd q5|D ]}||j|jt|j|t|j||jd qSd|dW S  ty }	 ztdddt|	d	d
d }	~	ww )Nc                 S   s   g | ]}|j jqS r   )r
   id).0rowr   r   r   
<listcomp>!   s    z"getUserAvatars.<locals>.<listcomp>)r   nameimageglbgenderT)statusavatar  FSomething went wrong.r"   messageerrors)status_codedetail)queryr
   r	   user_idavatar_namejoin	avatar_idr   filterallin_appendr   r   r    r!   r   	Exceptionr   r   )
r   r   r   Zuser_avatarsZassigned_idsZother_avatarsZmerged_avatarsr   r#   er   r   r   getUserAvatars   sX   





	
r6   r/   r-   c              
   C   s   z/|j }|tj|| d }|r||_nt|| |d}|| |  tdddddW S  t	yQ } z|
  tdd	d
t|ddW  Y d }~S d }~ww )N)r,   r/   )r,   r/   r-      Tz!Avatar name updated successfully.)r"   r'   )r)   contentr$   Fr%   r&   )r   r+   r	   	filter_byfirstr-   addcommitr   r4   rollbackr   )r/   r-   r   r   r,   existingZ
new_avatarr5   r   r   r   
saveAvatarL   s<   

r?   N)
app.modelsr   app.databaser   sqlalchemy.ormr   fastapir   r   r   r   r	   r
   
sqlalchemyr   fastapi.responsesr   typingr   urllib.parser   r   r   r6   intr?   r   r   r   r   <module>   s    :