Exemple #1
0
 def getAllReactions(self):
     dao = ReactionDAO()
     result = dao.getAllReactions()
     mapped_result = []
     for r in result:
         mapped_result.append(self.mapToDict(r))
     return jsonify(Reactions=mapped_result)
Exemple #2
0
 def getReactionsByID(self, id):
     dao = ReactionDAO()
     result = dao.getReactionById(id)
     if result == None:
         return jsonify(Error="REACTION NOT FOUND")
     else:
         mapped = self.mapToDict(result)
         return jsonify(Reaction=mapped)
Exemple #3
0
 def removeHashtag(self, hid):
     """delete a hashtag."""
     dao = ReactionDAO()
     if not dao.getHashtagById(hid):
         return jsonify(Error="User not found."), 404
     else:
         dao.deleteHashtag(hid)
         return jsonify(DeleteStatus="OK"), 200
Exemple #4
0
 def un_tagToMessage(self, mid, hid):
     """delete a hashtag from a specified message"""
     dao = ReactionDAO()
     if not dao.getMessageHashtagById(mid, hid):
         return jsonify(Error="User not found."), 404
     else:
         dao.deleteDislike(mid, hid)
         return jsonify(DeleteStatus="OK"), 200
Exemple #5
0
 def undislike(self, mid, pid):
     """delete a like on a message"""
     dao = ReactionDAO()
     if not dao.getWhoDislikedById(mid, pid):
         return jsonify(Error="User not found."), 404
     else:
         dao.deleteDislike(mid, pid)
         return jsonify(DeleteStatus="OK"), 200
Exemple #6
0
 def getReactionsByUserID(self, uid):
     dao = ReactionDAO()
     result = dao.getReactionByUserId(uid)
     if result == None:
         return jsonify(Error="REACTION NOT FOUND")
     else:
         mapped_result = []
         for r in result:
            mapped_result.append(self.mapToDict(r))
         return jsonify(Reaction=mapped_result)
Exemple #7
0
 def getWhoDislikedMessage(self, mid, args):
     who = args.get("who")
     if (len(args) == 1) and who == 'true':
         dao = ReactionDAO()
         dislike_list = dao.getWhoDislikedMessage(mid)
         result_list = []
         for m in dislike_list:
             result_list.append(self.build_user_dict(m))
         return jsonify(Dislike_list=result_list)
     else:
         return jsonify(Error="Malformed query string"), 400
Exemple #8
0
 def getDislikesPerDay(self):
     dao = ReactionDAO()
     result = dao.getDislikesPerDay()
     mapped_result = []
     for r in result:
         mapped_info = []
         day = r[0]
         dislikes = r[1]
         mapped_info.append(day)
         mapped_info.append(dislikes)
         mapped_result.append(self.mapToDict4(mapped_info))
     return jsonify(Reactions=mapped_result)
Exemple #9
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 #10
0
 def createNewHashtag(self, form):
     """Create a new Hashtag"""
     if len(form) != 2:
         return jsonify(Error="Malformed post request"), 400
     else:
         tag = form['tag']
         if tag:
             dao = ReactionDAO()
             hid = dao.createHashtag(tag)
             result = self.map_hashtag_attributes(hid, tag)
             return jsonify(Hashtag=result), 201
         else:
             return jsonify(Error="Unexpected attributes in post request"), 400
Exemple #11
0
 def tagToMessage(self, form):
     """Add a hashtag on a specified message"""
     if len(form) != 2:
         return jsonify(Error="Malformed post request"), 400
     else:
         mid = form['mid']
         hid = form['hid']
         if hid and mid:
             dao = ReactionDAO()
             mid = dao.insertTag(mid, hid)
             result = self.map_message_tags_attributes(mid, hid)
             return jsonify(Hashtag=result), 201
         else:
             return jsonify(Error="Unexpected attributes in post request"), 400
Exemple #12
0
    def react(self, form, users_id, message_id):

        if len(form) != 1:
            return jsonify(Error="Malformed post request"), 400
        else:
            reaction = form['reaction']
            if reaction:
                dao = ReactionDAO()
                holder = dao.insert(users_id, message_id, reaction)
                result = self.reaction_attributes(reaction)
                return jsonify(users=result), 201
            else:
                return jsonify(
                    Error="Unexpected attributes in post request"), 400
Exemple #13
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 #14
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 #15
0
 def dislike(self, mid, json):
     """Add a like on the message"""
     if len(json) != 1:
         return jsonify(Error="Malformed post request"), 400
     else:
         pid = json['pid']
         if pid:
             dao = ReactionDAO()
             if not dao.getWhoDislikedById(mid, pid):
                 mid = dao.insertDislike(mid, pid)
             else:
                 dao.deleteDislike(mid, pid)
             result = self.map_likes_dislikes_attributes(mid, pid)
             return jsonify(Message=result), 201
         else:
             return jsonify(Error="Unexpected attributes in post request"), 400
Exemple #16
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 #17
0
 def insertMessage(self, content, pid, gid):
     cursor = self.conn.cursor()
     query = "INSERT INTO messages (content, pid, gid) VALUES (%s, %s, %s)" \
             "RETURNING mid, date;"
     cursor.execute(query, (content, pid, gid))
     mid_date = cursor.fetchone()
     self.conn.commit()
     reaction_dao = ReactionDAO()
     hashtags = set(tag[1:] for tag in content.split()
                    if tag.startswith("#"))
     for tag in hashtags:
         hid = reaction_dao.getTagId(tag)
         if not hid:
             hid = reaction_dao.createHashtag(tag)
             reaction_dao.insertTag(mid_date[0], hid)
         else:
             reaction_dao.insertTag(mid_date[0], hid)
     return mid_date
Exemple #18
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 #19
0
 def getMessageLikes(self, mid):
     dao = ReactionDAO()
     likes = dao.getMessageLikes(mid)
     return jsonify(Likes=likes)
Exemple #20
0
 def getMessageDislikes(self, mid):
     dao = ReactionDAO()
     dislikes = dao.getMessageDislikes(mid)
     return jsonify(Dislikes=dislikes)