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)
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)
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
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
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
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)
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
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)
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)
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
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
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
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)
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)
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
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)
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
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)
def getMessageLikes(self, mid): dao = ReactionDAO() likes = dao.getMessageLikes(mid) return jsonify(Likes=likes)
def getMessageDislikes(self, mid): dao = ReactionDAO() dislikes = dao.getMessageDislikes(mid) return jsonify(Dislikes=dislikes)