
    \Fe                         d dl mZmZmZ d dlmZ ddlmZmZm	Z	m
Z
  e       Z eddgddd	ii
      Zej                  d      defd       Zej                  d      ddededefd       Zy)    )	APIRouterRequestHTTPException)
DESCENDING   )MONGODB_DATABASEmongodb_connectcheck_accessget_user_subz	/messagesmessagesi  descriptionz	Not found)prefixtags	responses/requestc                   K   | j                   d   j                  d      d   }t        |d       t        |      }	 ddd|id|igiid	d
dd|gidddidddiddddiddddiddididdddddidd id	d!d"d#d$d%ddd&ig}t	        t
        t           d'   j                  |            }dt	        |      d(S # t        $ r}t        d)d*| +      d,}~ww xY ww)-zGet all conversations.authorization    GetAllConversationsz$match$orsenderreceiverz$projectz$condz$eqz$senderz	$receiver)ifthenelse)	otherUsermessage	timestampz$sort)r   r    z$groupz
$otherUserz$firstz$messagez
$timestamp)_idlatest_messagelatest_timestampz$lookupusersr"   sub	user_info)from
localFieldforeignFieldasz$unwindz
$user_infor   z$user_info.photoz$user_info.firstnamez$user_info.lastnamez$user_info.sub)r"   photo	firstnamelastnamer&   r#   r$   r   endpointcontent  z&Error while retrieving conversations: status_codedetailN)
headerssplitr
   r   listmongodb_clientr   	aggregate	Exceptionr   )r   
auth_tokenmy_subpipelineconversationses         RC:\Users\ChattiNader\Documents\EpsilonGroupe\api-vastappli\app\routers\messages.pyget_conversationsrB      s     177<Q?J23*%F?b Xv.V0DE $)Iv+>"@$/$-""  !!"
 !"!# '(0*&>*2L(B #"'$)%	 < /!7 5+&'()
W6
n ^,<=jISST\]^ .M*
 	
  b6\]^\_4`aabs)   9CA:B7 6C7	C CCCz/{sub}r&   offsetc                   K   | j                   d   j                  d      d   }t        |d       t        |      }	 d}dt        fg}d||d||d	gi}t        t        t           d
   j                  |dddddd      j                  |      j                  |      j                  |            }dt        t        |            dS # t        $ r}	t        dd|	       d}	~	ww xY ww)z)Get a conversation by the other user sub.r   r   r   GetMessages
   r    r   )r   r   )r   r   r   r   )r"   r   r   r   r    r/   r2   z!Error while retrieving messages: r3   N)r6   r7   r
   r   r   r8   r9   r   findsortskiplimitreversedr;   r   )
r   r&   rC   r<   r=   rJ   
sort_orderqueryr   r@   s
             rA   get_conversationrN   T   s     177<Q?J]+*%F^"J/0
 !s3#s3
 +,Z8T%aQ1[\]^T*T&\U5\
 &HX./
 	
  ^7XYZX[5\]	]^s)   9C'B	C C'	C$CC$$C'N)r   )fastapir   r   r   pymongor   utilsr   r	   r
   r   r9   routergetrB   strintrN        rA   <module>rX      s    5 5  Q Q "	
]K01
 CDbW Db DbL H^G ^# ^s ^ ^rW   