
    Ii                        d dl mZmZmZ d dlmZmZ d dlmZm	Z	 d dl
mZ d dlmZ d dlZd dlmZ  ede      Zej'                  d	d
g      ed               Zej'                  dd
g      ed               Zej'                  dd
g      ed               Zej'                  dd
g      ed               Zej'                  dd
g      d        Zy)    )	Blueprintrequestjsonify)login_requiredcurrent_user)generate_password_hashcheck_password_hash)db)UserN)send_discord_audit_logprofile_apiz/api/profile/updatePOST)methodsc                     t        j                         } | j                  dd      j                         }| j                  dd      j                         j	                         }| j                  dd      j                         }|r|st        ddi      dfS |t        _        |t        _        |t        _	        t        j                  j                          t        dd	i      S )
Nname emailbioerroru   Nome e email são obrigatórios  messagezPerfil atualizado com sucesso!)r   get_jsongetstriplowerr   r   r   r   r   r
   sessioncommit)datar   r   r   s       8/srv/www/ollama/chat-ollama/src/routes/profile_routes.pyupdate_profiler       s     D88FB%%'DHHWb!'')//1E
((5"

#
#
%Cu!BCDcIILLLJJI?@AA    z/api/profile/preferencesc                  z   t        j                         } | j                  dt        j                        t        _        t        | j                  dt        j                              t        _        t        | j                  dt        j                              t        _        t        | j                  dt        j                              t        _
        t        j                  j                          t        dt        j                  dt        j                  d|  t         j                          t#        d	d
i      S )NdefaultModeldefaultTemperaturedefaultMaxTokenssaveHistoryu'   Alteração de configuração sensível   Usuáriou   Preferências alteradas: actionuser_idobject_type	object_iddetails
ip_addressr   u&   Preferências atualizadas com sucesso!)r   r   r   r   default_modelfloatdefault_temperatureintdefault_max_tokensboolsave_historyr
   r   r   r   idremote_addrr   )r   s    r   update_preferencesr8      s     D!%.,:T:T!UL',TXX6JLLlLl-m'nL$&)$((3E|GfGf*g&hL# $TXXm\=V=V%W XLJJ8//+D62&& IGHIIr!   z/api/profile/passwordc                     t        j                         } | j                  dd      }| j                  dd      }t        j                  |      sJt        dt        j                  dt        j                  dt         j                         t        dd	i      d
fS |rt        |      dk  rJt        dt        j                  dt        j                  dt         j                         t        ddi      d
fS t        j                  |       t        j                  j                          t        dt        j                  dt        j                  dt         j                         t        ddi      S )NcurrentPasswordr   newPasswordu   Alteração de senhar'   u@   Tentativa de alteração de senha falhou (senha atual incorreta)r(   r   zSenha atual incorretar      uA   Tentativa de alteração de senha falhou (nova senha muito curta)z+Nova senha deve ter pelo menos 6 caractereszSenha alterada com sucessor   zSenha alterada com sucesso!)r   r   r   r   check_passwordr   r6   r7   r   lenset_passwordr
   r   r   )r   current_passwordnew_passwords      r   change_passwordrB   -   s,    Dxx 12688M2.L&&'78) OO""ooV**	
 !89:C??3|,q0) OO""ooW**	
 !NOPRUUUl+JJ%//,&& I<=>>r!   z/api/profile/avatarc                     dt         j                  vrt        ddi      dfS t         j                  d   } | j                  dk(  rt        ddi      dfS t        j
                  j                  | j                        d   j                         }|dvrt        dd	i      dfS d
t        j                   d| }t        j
                  j                  dd      }t	        j                  |d       t        j
                  j                  ||      }| j                  |       d| t        _        t        j                  j!                          t#        dt        j                  dt        j                  d| dt        j
                  j%                  |       dt         j&                         t        t        j                  dd      S )Navatarr   zNenhum arquivo enviador   r   u   Arquivo inválido   )z.jpgz.jpegz.pngz.gifu   Formato não suportadouser__avatarstaticavatarsT)exist_okz/static/avatars/zUpload de avatarAvatarzAvatar enviado: z (z bytes)r(   zAvatar atualizado com sucesso!)	avatarUrlr   )r   filesr   filenameospathsplitextr   r   r6   joinmakedirssave
avatar_urlr
   r   r   r   getsizer7   )fileextrN   upload_folderfilepaths        r   upload_avatarr[   S   sq    w}}$!9:;S@@=="D}}!456;;
''

4==
)!
,
2
2
4C
33!9:;S@@|'wse4HGGLL95MKK-ww||M84HIIh 0
;LJJ!//"8*Brwwx/H.IQ&& !8!8Eefggr!   z#/api/profile/request_password_resetc                      t        j                         } | j                  dd      j                         j	                         }|st        ddi      dfS t        j                  j                  |      j                         }|s/t        dd dd d	| t         j                  
       t        ddi      S t        d|j                  d|j                  d|j                   t         j                  
       t        ddi      S )Nr   r   r   u   Email é obrigatórior   )r   u   Solicitação de reset de senhar'   u<   Solicitação de reset de senha para email não cadastrado: r(   r   u1   Se o email existir, você receberá instruções.u%   Solicitação de reset de senha para )r   r   r   r   r   r   r   query	filter_byfirstr   r7   r6   r   )r   r   users      r   request_password_resetra   o   s    DHHWb!'')//1E!89:C??::e,224D4"RSXRYZ**	
 	#VWXX0''7

|D&& IRSTTr!   )flaskr   r   r   flask_loginr   r   werkzeug.securityr   r	   src.extensionsr
   src.models.userr   rO   src.discord.discord_webhookr   __name__
profile_bprouter    r8   rB   r[   ra    r!   r   <module>rl      s   - - 4 I    	 >}h/
'&:B  ;B ,vh?J  @J" )F8<"?  ="?H '&:h  ;h4 7&JU KUr!   