Exemple #1
0
    def getAllReplies(self):

        replyDAO = ReplyDAO()
        dao1 = MessageDAO()
        dao2 = MessageDAO()
        sentDAO = SentDAO()
        messagesDAO = MessagesDAO()

        result = replyDAO.getAllReplies()  # get all messages that are replies
        mapped_result = []  #store all replies mapped

        for r in result:

            reply_info = []

            owner_message = dao1.getMessageById(r[0])  # original message info
            reply_message = dao2.getMessageById(r[1])  # reply message info

            reply_info.append(reply_message[1])  # append reply text
            reply_info.append(owner_message[1])  # append original message

            replyer_name = sentDAO.getUserByMessageId(
                reply_message[0])  # get replyer name
            reply_info.append(replyer_name[1] + ' ' +
                              replyer_name[2])  # append name

            chat_name = messagesDAO.getChatByMessageId(
                r[0])  # what group was the reply sent
            reply_info.append(chat_name[1])  # append group chat name

            reply_info.append(reply_message[2])  # append reply_date
            reply_info.append(owner_message[2])  # append original_message_date

            mapped_result.append(self.mapToDict(reply_info))
        return jsonify(Replies=mapped_result)
Exemple #2
0
    def getAllReplies(self):
        dao = ReplyDAO()
        dao1 = MessageDAO()
        dao2 = MessageDAO()
        userDAO = UserDAO()
        chatDAO = ChatDAO()
        result = dao.getAllReplies()
        mapped_result = []
        for r in result:
            reply_info = []
            result1 = dao1.getMessageById(r[0])  # array de mensaje-reply
            result2 = dao2.getMessageById(r[1])  # array de mensaje original
            reply_info.append(result1[1]) #replyer_text
            reply_info.append(result2[1]) #original_text
            # buscar user con user id
            # result1[3] - replyer_id
            replyer = userDAO.getUserById(result1[3])

            reply_info.append(replyer[1] + ' ' +replyer[2])

            # buscar chat con chat id
            # result1[4] - chat_id
            chat_name = chatDAO.getChatById(result1[4])
            reply_info.append(chat_name[1])

            reply_info.append(result1[2]) #reply_date
            reply_info.append(result2[2]) #original_message_date

            mapped_result.append(self.mapToDict(reply_info))
        return jsonify(Replies=mapped_result)
Exemple #3
0
 def deleteMessage(self, mid):
     dao = MessageDAO()
     if not dao.getMessageById(mid):
         return jsonify(Error="Message not found."), 404
     else:
         dao.deleteMessage(mid)
         return jsonify(DeleteStatus="OK"), 200
Exemple #4
0
 def getMessageById(self, mid):
     dao = MessageDAO()
     row = dao.getMessageById(mid)
     if not row:
         return jsonify(Error="User Not Found"), 404
     else:
         message = self.build_message_dict(row)
         return jsonify(Message=message)
Exemple #5
0
 def getMessageByID(self, id):
     dao = MessageDAO()
     result = dao.getMessageById(id)
     if result == None:
         return jsonify(Error="MESSAGE NOT FOUND")
     else:
         mapped = self.mapToDict(result)
         return jsonify(Message=mapped)
Exemple #6
0
 def getMessageById(self, mID):
     dao = MessageDAO()
     result = dao.getMessageById(int(mID))
     if not result:
         dao.closeDB()
         return jsonify(Error="Message NOT FOUND"), 404
     else:
         mapped = mapMessageToDict(result)
         dao.closeDB()
         return jsonify(Messages=mapped)
Exemple #7
0
 def getNumofLikesbyMessageID(self, mID):
     dao = MessageDAO()
     results = []
     if not dao.getMessageById(mID):
         dao.closeDB()
         return jsonify(Error="Message NOT FOUND"), 404
     result = dao.getNumofLikesbyMessageID(mID)
     mapped = {}
     mapped['mID'] = mID
     mapped['total'] = result[0]
     dao.closeDB()
     return jsonify(NumOfLikes=mapped)
Exemple #8
0
    def getAllReactions(self):
        dao = ReactionDAO()
        dao1 = MessageDAO()
        dao2 = UserDAO()

        result = dao.getAllReactions()
        mapped_result = []
        for r in result:
            r[0] = dao1.getMessageById(r[0])[1]
            r[1] = dao2.getUserById(r[1])[1] + ' ' + dao2.getUserById(r[1])[2]
            mapped_result.append(self.mapToDict(r))
        return jsonify(Reactions=mapped_result)
Exemple #9
0
 def getAllReplies2(self):
     dao = ReplyDAO()
     dao1 = UserDAO()
     dao2 = MessageDAO()
     result = dao.getAllReplies()
     mapped_result = []
     for r in result:
         result1 = dao1.getUserById(r[1])
         result2 = dao2.getMessageById(r[2])
         r[1] = result1[1] + " " + result1[2]
         r[2] = result2[1]
         mapped_result.append(self.mapToDict2(r))
     return jsonify(Replies=mapped_result)
Exemple #10
0
 def getOriginalMessageByReplyID(self, rID):
     dao = MessageDAO()
     if not dao.getMessageById(rID):
         dao.closeDB()
         return jsonify(Error="Reply NOT FOUND"), 404
     result = dao.getOriginalMessageByReplyID(rID)
     if not result:
         dao.closeDB()
         return jsonify(Error="Original Message NOT FOUND"), 404
     else:
         result = mapMessageToDict(result)
         dao.closeDB()
         return jsonify(Messages=result)
Exemple #11
0
 def getHashTagsByMessageID(self, mID):
     dao = MessageDAO()
     result = dao.getMessageById(mID)
     if not result:
         dao.closeDB()
         return jsonify(Error="Message NOT FOUND"), 404
     dao.closeDB()
     dao = HashTagDAO()
     result = dao.getHashTagList(mID)
     mapped_result = []
     for r in result:
         mapped_result.append(mapHashTagToDict(r))
     dao.closeDB()
     return jsonify(HashTags=mapped_result)
Exemple #12
0
 def getReplyByID2(self, id):
     dao = ReplyDAO()
     dao1 = UserDAO()
     dao2 = MessageDAO()
     result = dao.getReplyById(id)
     if result == None:
         return jsonify(Error="REPLY NOT FOUND")
     else:
         result1 = dao1.getUserById(result[1])
         result2 = dao2.getMessageById(result[2])
         result[1] = result1[1] + " " + result1[2]
         result[2] = result2[1]
         mapped = self.mapToDict2(result)
         return jsonify(Reply=mapped)
Exemple #13
0
    def reply(self, form, message_id, users_id, group_id):

        if len(form) != 1:
            return jsonify(Error="Malformed post request"), 400
        else:
            message_text = form['message_text']

            print(message_text)

            if message_text:

                dao = MessageDAO()
                sDao = SentDAO()
                mDao = MessagesDAO()
                hasDao = HasTagDAO()
                hashtagDao = HashtagDAO()
                rDAO = ReplyDAO()

                og_message_text = dao.getMessageById(message_id)
                new_message = " 'RE:" + og_message_text[1] + "' " + message_text
                original_message = new_message
                print(new_message)

                reply_id = dao.insert(
                    new_message)  # insert message to table, returns message id
                print(users_id)
                print(message_id)
                sent = sDao.insert(users_id,
                                   reply_id)  # link to user who sent message
                messages = mDao.insert(
                    reply_id,
                    group_id)  # link to which group the message was posted to
                reply = rDAO.insert(message_id, reply_id)

                # get message hashtags
                message_text.strip("#")
                for message_text in message_text.split():
                    if message_text.startswith("#"):
                        print(message_text)
                        hashtag_id = hashtagDao.insert(
                            message_text
                        )  # returns hashtag_id insert to hashtag table
                        hasDao.insert(reply_id, hashtag_id)

                result = self.reply_attributes(original_message)
                return jsonify(users=result), 201
            else:
                return jsonify(
                    Error="Unexpected attributes in post request"), 400
Exemple #14
0
 def getReactionsByUserID(self, uid):
     dao = ReactionDAO()
     dao1 = MessageDAO()
     dao2 = UserDAO()
     result = dao.getReactionByUserId(uid)
     if result == None:
         return jsonify(Error="REACTION NOT FOUND")
     else:
         mapped_result = []
         for r in result:
             r[0] = dao1.getMessageById(r[0])[1]
             r[1] = dao2.getUserById(r[1])[1] + ' ' + dao2.getUserById(
                 r[1])[2]
             mapped_result.append(self.mapToDict(r))
         return jsonify(Reaction=mapped_result)
Exemple #15
0
 def getRepliesByMessageID(self, mID):
     dao = MessageDAO()
     if not dao.getMessageById(mID):
         dao.closeDB()
         return jsonify(Error="Message NOT FOUND"), 404
     reply_list = dao.getRepliesByMessageID(mID)
     if not reply_list:
         dao.closeDB()
         return jsonify(Error="Reply NOT FOUND"), 404
     results = []
     for row in reply_list:
         result = mapMessageToDict(row)
         results.append(result)
     dao.closeDB()
     return jsonify(Messages=results)
Exemple #16
0
    def getHashtagsFromMessage(self, message_id):
        hashtagDAO = HashtagDAO()
        hasTagDAO = HasTagDAO()
        messageDAO = MessageDAO()

        result = hasTagDAO.getHashtagsInMessage(message_id)
        message = messageDAO.getMessageById(message_id)
        mapped = []
        if result == None:
            return jsonify(Error="HASHTAG NOT FOUND")
        else:
            for r in result:
                r[0] = message[1]
                r[1] = hashtagDAO.getHashtagById(r[1])[0]
                mapped.append(self.mapToDict(r))
            return jsonify(Hashtags=mapped)
Exemple #17
0
    def getAllReactions(self):
        dao = ReactionDAO()
        dao1 = MessageDAO()
        dao2 = UsersDAO()

        result = dao.getAllReactions()
        mapped_result = []
        for r in result:
            mapped_info = []
            user = dao2.getUserById(r[0])
            message = dao1.getMessageById(r[1])
            mapped_info.append(message[1])  # message text in which it reacted
            mapped_info.append(user[1] + ' ' + user[2])
            mapped_info.append(r[2])
            mapped_result.append(self.mapToDict(mapped_info))
        return jsonify(Reactions=mapped_result)
Exemple #18
0
 def findMessagesReplies2(self, message_id):
     dao = ReplyDAO()
     dao1 = UserDAO()
     dao2 = MessageDAO()
     result = dao.findReplyByMessageId(message_id)
     if result == None:
         return jsonify(Error="MESSAGE NOT FOUND")
     else:
         mapped_result = []
         for r in result:
             result1 = dao1.getUserById(r[1])
             result2 = dao2.getMessageById(r[2])
             r[1] = result1[1] + " " + result1[2]
             r[2] = result2[1]
             mapped_result.append(self.mapToDict2(r))
         return jsonify(Replies=mapped_result)
Exemple #19
0
    def getMessagesWithHashtag(self, hashtag_id):
        hashtagDAO = HashtagDAO()
        hasTagDAO = HasTagDAO()
        messageDAO = MessageDAO()

        result = hasTagDAO.getMessagesWithHashtag(hashtag_id)
        hashtag = hashtagDAO.getHashtagById(hashtag_id)
        mapped = []
        if result == None:
            return jsonify(Error="MESSAGE NOT FOUND")
        else:
            for r in result:
                r[0] = messageDAO.getMessageById(r[0])[1]
                r[1] = hashtag[0]
                mapped.append(self.mapToDict(r))
            return jsonify(Messages=mapped)
Exemple #20
0
 def findByOwnerID2(self, user_id):
     dao = ReplyDAO()
     dao1 = UserDAO()
     dao2 = MessageDAO()
     result = dao.searchByOwnerId(user_id)
     if result == None:
         return jsonify(Error="OWNER NOT FOUND")
     else:
         mapped_result = []
         for r in result:
             result1 = dao1.getUserById(r[1])
             result2 = dao2.getMessageById(r[2])
             r[1] = result1[1] + " " + result1[2]
             r[2] = result2[1]
             mapped_result.append(self.mapToDict2(r))
         return jsonify(Replies=mapped_result)
Exemple #21
0
 def getMessageDislikesCount(self, message_id):
     dao = ReactionDAO()
     dao1 = MessageDAO()
     dao2 = UsersDAO()
     result = dao.getDislikesCountToMessageId(message_id)  # returns count
     if result == None:
         return jsonify(Error="REACTION NOT FOUND")
     else:
         mapped_result = []
         for r in result:
             mapped_info = []
             message = dao1.getMessageById(message_id)
             mapped_info.append(
                 message[1])  # message text in which it reacted
             mapped_info.append(r[0])  # count
             mapped_result.append(self.mapToDict3(mapped_info))
         return jsonify(Reaction=mapped_result)
Exemple #22
0
 def getReactionsByUserID(self, users_id):
     dao = ReactionDAO()
     dao1 = MessageDAO()
     dao2 = UsersDAO()
     result = dao.getReactionsByUserId(users_id)
     if result == None:
         return jsonify(Error="REACTION NOT FOUND")
     else:
         mapped_result = []
         for r in result:
             mapped_info = []
             user = dao2.getUserById(r[0])
             message = dao1.getMessageById(r[1])
             mapped_info.append(
                 message[1])  # message text in which it reacted
             mapped_info.append(user[1] + ' ' + user[2])
             mapped_info.append(r[2])
             mapped_result.append(self.mapToDict(mapped_info))
         return jsonify(Reactions=mapped_result)
Exemple #23
0
 def getMessagesPostedByPersoninGroupID(self, mID, gID):
     dao = MessageDAO()
     dao1 = GroupDAO()
     results = []
     if not dao.getMessageById(mID):
         dao.closeDB()
         dao1.closeDB()
         return jsonify(Error="Message NOT FOUND"), 404
     if not dao1.getGroupById(gID):
         dao.closeDB()
         dao1.closeDB()
         return jsonify(Error="Group NOT FOUND"), 404
     message_list = dao.getMessagesPostedByPersoninGroupID(mID, gID)
     for row in message_list:
         result = mapMessageToDict(row)
         results.append(result)
     dao.closeDB()
     dao1.closeDB()
     return jsonify(Messages=results)
Exemple #24
0
    def getHashtagsFromMessage(self, message_id):

        hashtagDAO = HashtagDAO()
        hasTagDAO = HasTagDAO()
        messageDAO = MessageDAO()

        result = hasTagDAO.getHashtagsInMessage(message_id)

        if result == None:
            return jsonify(Error="MESSAGE NOT FOUND")
        else:
            mapped = []
            for r in result:
                results_info = []
                message_text = messageDAO.getMessageById(message_id)
                results_info.append(message_text[1])  # append message text
                hashtag_text = hashtagDAO.getHashtagById(r[1])
                results_info.append(hashtag_text[0][1])  # append hashtag text
                mapped.append(self.mapToDict1(results_info))
            return jsonify(Hashtags=mapped)
Exemple #25
0
 def getPersonWhoDisikedMessageID(self, mID):
     dao = MessageDAO()
     if not dao.getMessageById(mID):
         dao.closeDB()
         return jsonify(Error="Message NOT FOUND"), 404
     persons_list = dao.getPersonWhoDislikedMessageID(mID)
     if not persons_list:
         dao.closeDB()
         return jsonify(Error="Person NOT FOUND"), 404
     results = []
     for row in persons_list:
         result = {}
         result['pID'] = row[0]
         result['pFirstName'] = row[1]
         result['pLastName'] = row[2]
         result['username'] = row[3]
         result['pEmail'] = row[4]
         results.append(result)
     dao.closeDB()
     return jsonify(Persons=results)
Exemple #26
0
 def updateMessage(self, mid, form):
     """Only update message content. Form should have new content"""
     dao = MessageDAO()
     if not dao.getMessageById(mid):
         return jsonify(Error="Part not found."), 404
     else:
         if len(form) != 1:
             return jsonify(Error="Malformed update request"), 400
         else:
             content = form['content']
             pid = form['pid']
             gid = form['gid']
             if content:
                 dao.updateMessage(mid, content)
                 result = self.build_message_attributes_without_date(
                     mid, content, pid, gid)
                 return jsonify(new_Message=result), 200
             else:
                 return jsonify(
                     Error="Unexpected attributes in update request"), 400
Exemple #27
0
    def getMessagesWithHashtag(self, hashtag_id):

        hashtagDAO = HashtagDAO()
        hasTagDAO = HasTagDAO()
        messageDAO = MessageDAO()

        result = hasTagDAO.getMessagesWithHashtagID(hashtag_id)

        mapped = []
        if result == None:
            return jsonify(Error="HASHTAG NOT FOUND")
        else:
            for r in result:

                results_info = []
                message_text = messageDAO.getMessageById(r[0])
                results_info.append(message_text[1])  # append message text
                hashtag_text = hashtagDAO.getHashtagById(r[1])
                results_info.append(hashtag_text[1])  # append hashtag text

                mapped.append(self.mapToDict1(results_info))
            return jsonify(Messages=mapped)
Exemple #28
0
 def addReplyMessage(self, gid, mid, json):
     if len(json) != 2:
         return jsonify(Error="Malformed post request"), 400
     else:
         content = json['content']
         pid = json['pid']
         if content and pid:
             validate = GroupsDAO().userIsMember(pid, gid)
             if validate:
                 dao = MessageDAO()
                 original_message = dao.getMessageById(mid)
                 reply_message = '"RE: ' + original_message[
                     1] + '" ' + content
                 mid_date = dao.insertMessage(reply_message, pid, gid)
                 dao.insertReply(mid, mid_date[0])
                 result = self.build_message_attributes_with_date(
                     mid_date[0], reply_message, pid, gid, mid_date[1])
                 return jsonify(Message=result), 201
             else:
                 return jsonify(Error="You must be a member to post"), 400
         else:
             return jsonify(
                 Error="Unexpected attributes in post request"), 400