def post(self): parser = reqparse.RequestParser() parser.add_argument('comment_uuid') parser.add_argument('direction') parser.add_argument('username') parser.add_argument('api_token') args = parser.parse_args() user_utils = UserUtils(self.db) subvoat_utils = SubvoatUtils(self.db) uuid_ = args.get('comment_uuid') user = user_utils.authenticate_by_token(args.get('username'), args.get('api_token')) if not user: return {'error': 'incorrect login'} try: direction = int(args.get('direction')) except Exception as e: return {'error': 'incorrect direction'} status, result = subvoat_utils.vote_comment(comment_uuid=uuid_, direction=direction, user_id=user.id) if status == True: return {'result': result} return {'error': result}
def post(self): subvoat_utils = SubvoatUtils(self.db) config = get_config() parser = reqparse.RequestParser() parser.add_argument('subvoat_name') parser.add_argument('title') parser.add_argument('body') parser.add_argument('username') parser.add_argument('api_token') args = parser.parse_args() result, message = subvoat_utils.add_thread(args['subvoat_name'], args['title'], args['body'], args['username']) if not result: return {'error':message} return {'result':message}
def post(self): config = get_config() parser = reqparse.RequestParser() user_utils = UserUtils(self.db) subvoat_utils = SubvoatUtils(self.db) parser.add_argument('username') parser.add_argument('api_token') parser.add_argument('body') parser.add_argument('thread_uuid') parser.add_argument('reply_to_uuid') args = parser.parse_args() # Validation setup uuid_schema = Schema( {Required('reply_to_uuid'): All(str, Length(min=36, max=36))}) schema = Schema({ Required('body'): All( str, Length(min=config['min_length_comment_body'], max=config['max_length_comment_body'])) }) # Validation try: schema({'body': args.get('body')}) if args.get('reply_to_uuid'): uuid_schema({'reply_to_uuid': args.get('reply_to_uuid')}) except MultipleInvalid as e: return {'error': '%s %s' % (e.msg, e.path)} user = user_utils.authenticate_by_token(args.get('username'), args.get('api_token')) if not user: return {'error': 'incorrect login'} # See if we are replying to a comment if args.get('reply_to_uuid'): status, result = subvoat_utils.add_comment( thread_uuid=args.get('thread_uuid'), reply_uuid=args.get('reply_to_uuid'), body=args.get('body'), user_obj=user) else: status, result = subvoat_utils.add_comment( thread_uuid=args.get('thread_uuid'), body=args.get('body'), user_obj=user) if status == True: return {'result': 'comment added'}
def get(self): subvoat_utils = SubvoatUtils(self.db) parser = reqparse.RequestParser() subvoats = [] # probably not gonna keep this data = subvoat_utils.get_all_subvoats() for s in data: subvoats.append(s.name) return {'result': subvoats}
def post(self): subvoat_utils = SubvoatUtils(self.db) user_utils = UserUtils(self.db) parser = reqparse.RequestParser() parser.add_argument('thread_uuid') args = parser.parse_args() return_data = [] # check UUID length schema = Schema( {Required('thread_uuid'): All(str, Length(min=36, max=36))}) try: schema({'thread_uuid': args.get('thread_uuid')}) except MultipleInvalid as e: return {'error': '%s %s' % (e.msg, e.path)} comments = subvoat_utils.get_comments(args.get('thread_uuid')) # append the data to a list and return it. Also change the user_id to username. for comment in comments: u_status, u_result = user_utils.get_user_by_id(comment.user_id) c = 0 if not u_status: # NEED TO LOG THIS continue # FIX: make this native SQL or something for v in comment.votes: c += v.direction return_data.append({ 'uuid': comment.uuid, 'body': comment.body, 'username': u_result.username, 'creation_date': comment.creation_date.isoformat(), 'votes': c }) return {'result': return_data}
def post(self): config = get_config() subvoat_utils = SubvoatUtils(self.db) user_utils = UserUtils(self.db) parser = reqparse.RequestParser() return_data = [] parser.add_argument('subvoat_name') args = parser.parse_args() schema = Schema({ Required('subvoat_name'): All(str, Length(min=config['min_length_subvoat_name'])) }) try: schema({'subvoat_name': args.get('subvoat_name')}) except MultipleInvalid as e: return {'error': '%s %s' % (e.msg, e.path)} threads = subvoat_utils.get_all_threads(args['subvoat_name']) # see the thread schema in voat_sql/schemas/subvoat_schema.py # I convert the user_id to username for t in threads: user_status, user_result = user_utils.get_user_by_id(t.user_id) if user_status: username = user_result.username else: # NEED TO LOG THIS continue c = 0 for v in t.votes: c += v.direction return_data.append({ 'uuid': t.uuid, 'title': t.title, 'body': t.body, 'username': username, 'creation_date': t.creation_date.isoformat(), 'votes': c }) return {'result': return_data}
def post(self): subvoat_utils = SubvoatUtils(self.db) user_utils = UserUtils(self.db) parser = reqparse.RequestParser() config = get_config() parser.add_argument('subvoat_name') parser.add_argument('username') parser.add_argument('api_token') args = parser.parse_args() # authenticate first user = user_utils.authenticate_by_token(args.get('username'), args.get('api_token')) if not user: return {'error':'incorrect login'} # should validate the subvoat here schema = Schema({Required('subvoat_name'): All(str, Length(min=config['min_length_subvoat_name']))}) try: # Just try the ones we need. schema({'subvoat_name':args.get('subvoat_name')}) except MultipleInvalid as e: # NEED BETTER ERROR MESSAGES, FIX THIS return {'error':'%s %s' % (e.msg, e.path)} # See if the subvoat exists if subvoat_utils.get_subvoat(args.get('subvoat_name')): return {'error':'subvoat already exists'} # If not create it (should probably add some rate-limiting or something around here) new_subvoat = subvoat_utils.create_subvoat_object(name=args.get('subvoat_name'), owner_id=user.id, creator_id=user.id, creation_date=datetime.datetime.utcnow()) if not subvoat_utils.add_subvoat(new_subvoat): return {'success':'subvoat created'} return {'error':'could not create subvoat'}