def post(self): response = ResponseModel() try: vote_model = self.get_json_model("vote") state = vote_model['state'] post_id = vote_model['post_id'] user = yield gen.Task(UserActions._get_me_by_id,self.current_uid()) post = yield gen.Task(PostActions._get_post_by_id,post_id) reply_id = vote_model.get('reply_id',None) vote = None if reply_id == None: if state == 1: vote,error = yield gen.Task(CallIT.gen_run,VoteActions._upvote_post,user, post, state) elif state == -1: vote,error = yield gen.Task(CallIT.gen_run,VoteActions._downvote_post,user, post, state) else: replies =filter(lambda x: x.id == ObjectId(reply_id), post.replies) if len(replies) != 1: raise Exception("There can only be one!!") reply = replies[0] if state == 1: vote,error = yield gen.Task(CallIT.gen_run,VoteActions._upvote_reply,user, post,reply, state) elif state == -1: vote,error = yield gen.Task(CallIT.gen_run,VoteActions._downvote_reply,user, post, reply,state) response.model = vote except Exception, e: response.success = False response.args['Message'] = e.message logger.error(e)
def post(self): response = ResponseModel() try: vote_model = self.get_json_model("vote") state = vote_model['state'] post_id = vote_model['post_id'] user = yield gen.Task(UserActions._get_me_by_id, self.current_uid()) post = yield gen.Task(PostActions._get_post_by_id, post_id) reply_id = vote_model.get('reply_id', None) vote = None if reply_id == None: if state == 1: vote, error = yield gen.Task(CallIT.gen_run, VoteActions._upvote_post, user, post, state) elif state == -1: vote, error = yield gen.Task(CallIT.gen_run, VoteActions._downvote_post, user, post, state) else: replies = filter(lambda x: x.id == ObjectId(reply_id), post.replies) if len(replies) != 1: raise Exception("There can only be one!!") reply = replies[0] if state == 1: vote, error = yield gen.Task(CallIT.gen_run, VoteActions._upvote_reply, user, post, reply, state) elif state == -1: vote, error = yield gen.Task(CallIT.gen_run, VoteActions._downvote_reply, user, post, reply, state) response.model = vote except Exception, e: response.success = False response.args['Message'] = e.message logger.error(e)