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
def getAllMessagesInGroupBySender(self, gid, pid): dao = MessageDAO() result = dao.getAllMessagesInGroupBySenderINFO(gid, pid) mapped_results = [] for m in result: mapped_results.append(self.build_message_dict(m)) return jsonify(Message_by=mapped_results)
def getAllMessagesInGroupWithHashtag(self, gid, hid): dao = MessageDAO() message_list = dao.getAllMessagesInGroupWithHashtagINFO(gid, hid) result_list = [] for row in message_list: result_list.append(self.build_tagged_message_dict(row)) return jsonify(Messages=result_list)
def getMessagesPerDay(self): dao = MessageDAO() result = dao.getMessagePerDay() mapped_result = [] for r in result: mapped_result.append(self.mapToDict3(r)) return jsonify(Messages=mapped_result)
def getAllMessages(self): dao = MessageDAO() result = dao.getAllMessagesINFO() mapped_results = [] for m in result: mapped_results.append(self.build_message_dict(m)) return jsonify(Messages=mapped_results)
def getAllGroupMessages(self, gid): dao = MessageDAO() result = dao.getAllGroupMessagesINFO(gid) mapped_results = [] for m in result: mapped_results.append(self.build_message_dict(m)) return jsonify(Messages_in_group=mapped_results)
def getDislikesPerDay(self): dao = MessageDAO() result = dao.getDislikesPerDay() mapped_result = [] for r in result: mapped_result.append(self.mapMessageDays(r)) return jsonify(Dislikes_Per_Day=mapped_result)
def sendMessage(self, form, users_id, group_id): if len(form) != 1: return jsonify(Error="Malformed post request"), 400 else: message_text = form['message_text'] original_message = message_text print(message_text) if message_text: dao = MessageDAO() mDao = MemberDAO() sDao = SentDAO() mDao = MessagesDAO() hasDao = HasTagDAO() hashtagDao = HashtagDAO() message_id = dao.insert(message_text) # insert message to table, returns message id sent = sDao.insert(users_id,message_id) # link to user who sent message messages = mDao.insert(message_id,group_id) #link to which group the message was posted to # 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(message_id,hashtag_id) result = self.message_attributes(original_message) return jsonify(users=result), 201 else: return jsonify(Error="Unexpected attributes in post request"), 400
def getAllMessages(self): dao = MessageDAO() result = dao.getAllMessages() mapped_result = [] for r in result: mapped_result.append(self.mapToDict2(r)) return jsonify(Messages=mapped_result)
def getReplies(self, mid): dao = MessageDAO() replies = dao.getReplies(mid) result_list = [] for row in replies: result_list.append(self.build_message_dict(row)) return jsonify(Replies=result_list)
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)
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)
def dislikeMessage(self, pID, mID): dao = MessageDAO() pid, mid, rType = dao.dislikeMessage(pID, mID) result = {} result['pid'] = pid result['mid'] = mid result['rType'] = rType dao.closeDB() return jsonify(Disliked=result), 201
def getAllMessageLikesByMID(self, mid): dao = MessageDAO() result = dao.getAllMessageLikesByMID(mid) mapped_result = [] if len(result) == 0: return jsonify(Error="Not Found"), 404 for r in result: mapped_result.append(self.mapMsgReactionToDict(r)) return jsonify(MessageLikes=mapped_result)
def getAllMessagesByUser(self, uid): dao = MessageDAO() result = dao.getAllMessagesByUser(uid) mapped_result = [] if len(result) == 0: return jsonify(Error="Not Found"), 404 for r in result: mapped_result.append(self.mapUserMsgToDict(r)) return jsonify(Messages=mapped_result)
def getUsersThatDislikedMessageByMID(self, mid): dao = MessageDAO() result = dao.getUsersThatDislikedMessageByMID(mid) mapped_result = [] if not result: return jsonify(Error="Not Found"), 404 for row in result: mapped_result.append(self.mapUserToDict(row)) return jsonify(Users=mapped_result)
def findUserMessages(self, user_id): dao = MessageDAO() result = dao.searchByUserId(user_id) if result == None: return jsonify(Error="CHAT NOT FOUND") else: mapped_result = [] for r in result: mapped_result.append(self.mapToDict(r)) return jsonify(Messages=mapped_result)
def findGroupMessages(self, group_id): dao = MessageDAO() result = dao.searchMessagesByGroupId2(group_id) if result == None: return jsonify(Error="CHAT NOT FOUND") else: mapped_result = [] for r in result: mapped_result.append(self.mapToDict2(r)) return jsonify(Messages=mapped_result)
def getNumOfActiveUsersPerDay(self): dao = MessageDAO() results = dao.getNumOfActiveUsersPerDay() mapped_results = [] for result in results: dict = {} dict['day'] = result[0] dict['count'] = result[1] mapped_results.append(dict) dao.closeDB() return jsonify(NumOfActiveUsersPerDay=mapped_results)
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 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)
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)
def searchMessages(self, args): username = args.get("username") hashtag = args.get("hashtag") dao = MessageDAO() if (len(args) == 1) and username: message_list = dao.getAllMessagesByUsername(username) elif (len(args) == 1) and hashtag: message_list = dao.getAllMessagesWithHashtagINFO(hashtag) else: return jsonify(Error="Malformed query string"), 400 result_list = [] for row in message_list: result_list.append(self.build_message_dict(row)) return jsonify(Message_list=result_list)
def findGroupMessagesByUser(self, group_id, user_id): dao = MessageDAO() results = dao.searchByUser_And_GroupID(group_id, user_id) if results == None: return jsonify(Error="NO DATA FOUND") else: mapped_result = [] for r in results: mapped_result.append(self.mapToDict(r)) return jsonify(Messages=mapped_result)
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)
def insertMessageDislikeJson(self, json): uid = json["uid"] mid = json["mid"] mrtimestamp = json["mrtimestamp"] mrlike = "false" if uid != None and mid != None and mrtimestamp != None: dao = MessageDAO() dao.insertLikeDislike(uid, mid, mrlike, mrtimestamp) result = self.buildLikeDislikeAttributes(uid, mid, mrlike, mrtimestamp) return jsonify(Dislike=result), 201 else: return jsonify(Error="Unexpected attributes in post request"), 400
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
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 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)
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)