3131
3232
3333REQUIRED_KEYS_NEW_MESSAGE = {"to_id" : int , "content" : str }
34- # REQUIRED_KEYS_GET_CONVERSATION = {"with_id": int}
3534
3635messages_bp = Blueprint ("messages" , __name__ )
3736
38- # TODO: Route to get the last message for each open conversation
39- # TODO: Route to send a new message to a conversation
4037
41- """
42- Route to get latest messages with user (then paginated to get the older messages)
43- route to receive messages
44- """
38+ # TODO: route to receive messages
4539
4640
4741@messages_bp .route ("/conversations" , methods = ["GET" ])
@@ -52,6 +46,19 @@ def get_opened_conversations():
5246 return SuccessOutput ("conversations" , returned_list )
5347
5448
49+ @messages_bp .route ("/conversations/<with_uid>" , methods = ["GET" ])
50+ @jwt_required
51+ def get_conversation_messsages (with_uid ):
52+ # TODO: Limit to 200 messages and if need be get more
53+ try :
54+ with_user = get_user (with_uid )
55+ except NotFoundError :
56+ raise NotFoundError ("With user {} not found" , "Try again" )
57+ message_list = current_user .get_messages_with_user (with_user .id )
58+ message_list = [m .to_dict for m in message_list ]
59+ return SuccessOutput ("messages" , message_list )
60+
61+
5562@messages_bp .route ("/messages/see/<with_uid>" , methods = ["POST" ])
5663@jwt_required
5764def see_conversation_messages (with_uid ):
@@ -94,12 +101,3 @@ def send_message():
94101 current_user .send_message (to_id = to_id , content = content )
95102 current_app .logger .debug ("/messages -> Message successfully sent to {}" .format (to_id ))
96103 return Success ("Message successfully sent to {}" .format (to_id ))
97-
98-
99- # @messages_bp.route("/messages/conversation", methods=["GET"])
100- # @jwt_required
101- # @validate_params(REQUIRED_KEYS_GET_CONVERSATION)
102- # def get_conversation():
103- # data = request.get_json()
104- # with_id: int = int(data["with_id"])
105- # return SuccessOutput("messages", current_user.get_messages_with_user(with_id))
0 commit comments