o
    Qhi                     @   s   d dl mZ d dlmZ d dlZd dlZd dlmZm	Z	 d dl
mZmZ d dlmZ eddgd	Zed
defddZeddefddZdS )    )	APIRouter)JSONResponseN)mbti_questionsmbti_scoring)MbtiLogRequestMbtiCalcRequest)MBTI_DB_CONFIGz/MBTIMBTI)prefixtagsz/logreqc              
   C   s   z,t jjdi t}| }d}||| j| j| jf |	  |
  |
  ddiW S  tyI } ztddt|ddW  Y d }~S d }~ww )	NJINSERT INTO chat_MBTI_jp (session_id, sender, message) VALUES (%s, %s, %s)statussuccess  errorr   messagestatus_codecontent )mysql	connectorconnectr   cursorexecute
session_idsenderr   commitclose	Exceptionr   str)r   connr   sqler   r   ./home/air/goalskill_t/back/app/routers/mbti.pylog_mbti_chat   s   
"r'   z
/calculatec              
   C   s*  zpt  }t| j|}t|}tjjdi t	}|
 }zBz%d}d}||| jd|f t|}d}	||	| j||f |  W n tyV }
 z|  |
d }
~
ww W |  |  n	|  |  w d||dW S  ty } ztd|  tdd	t|d
dW  Y d }~S d }~ww )Nz[SYSTEM] Diagnosis Completed.r   systemz{
                INSERT INTO mbti_results (session_id, mbti_type, scores) 
                VALUES (%s, %s, %s)
            r   )r   	mbti_typescoresz[Error] MBTI Calc: r   r   r   r   r   )r   get_questionsr   calculate_scoresanswersconvert_to_mbtir   r   r   r   r   r   r   jsondumpsr   r!   rollbackr    printr   r"   )r   	questionsr*   r)   r#   r   
system_msgsql_chatscores_json
sql_resultdb_errr%   r   r   r&   calculate_mbti!   sB   



"r9   )fastapir   fastapi.responsesr   mysql.connectorr   r/   app.servicesr   r   app.schemas.mbtir   r   app.core.configr   routerpostr'   r9   r   r   r   r&   <module>   s   