Example #1
0
 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)
Example #2
0
    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)