def put(self, post_id): """Update an existing blog post.""" try: post = ctrl.update_blog_post_with_id(post_id, request.json) except ctrl.BlogControlError as err: return JSendResponse.new_fail(err.message).jsonify(), 400 return JSendResponse.new_success(post).jsonify(post_format='stripped')
def post(self): """Create a new blog post.""" try: post = ctrl.create_new_blog_post(request.get_json()) except ctrl.BlogControlError as err: return JSendResponse.new_fail(err.message).jsonify(), 400 return JSendResponse.new_success(post).jsonify(post_format='stripped')
def post(self): """Verify login data and respond with a new timed auth token.""" # TODO: current user object or at least user-id # should be stored in session to decrease db access # Response should probably also include timeout (for cookie info) username = request.authorization.username try: user = Ctrl.get_user_with_name(username) except Ctrl.AdminControlException as err: return JSendResponse.new_error(err.message).jsonify() token = user.generate_auth_token() return JSendResponse.new_success(token.decode('ascii')).jsonify()
def get(self, post_id=None): """Get an existing blog post or a list of existing blog posts.""" try: if post_id is not None: post_or_posts = ctrl.get_blog_post_with_id(post_id) else: post_or_posts = ctrl.get_all_blog_posts() except ctrl.BlogControlError as err: return JSendResponse.new_fail(err.message).jsonify(), 400 try: return JSendResponse.new_success(post_or_posts).jsonify(post_format=request.args.get('format', 'stripped')) except SerializationError as err: return JSendResponse.new_fail(err.message).jsonify(), 400
def get(self, user_id=None): """Get an existing user.""" if user_id is not None: user_or_users = Ctrl.get_user_with_id(user_id) else: user_or_users = Ctrl.get_all_users() return JSendResponse.new_success(user_or_users).jsonify()
def get(self): """Just check if logged in.""" return JSendResponse.new_success('authorized').jsonify()
def delete(self, user_id): """Delete an existing user.""" return JSendResponse.new_fail('not implemented').jsonify(), 400
def post(self): """Create a new user.""" user = Ctrl.create_new_user(request.get_json()) return JSendResponse.new_success(user).jsonify()
def handle_500(err): if hasattr(err, 'data') and err.data.get('rest', False): return JSendResponse.new_error(str(err)).jsonify(), 500 else: return render_template('500.html', title='Internal Server Error'), 500
def handle_404(err): if hasattr(err, 'data') and err.data.get('rest', False): return JSendResponse.new_fail(str(err)).jsonify(), 404 else: return render_template('404.html', title='Not Found'), 404
def handle_error(err): return JSendResponse.new_fail('%d: %s' % (err.code, err.description)).jsonify(), err.code
def unauthorized(): return JSendResponse.new_fail('unauthorized').jsonify(), 401
def delete(self, post_id): """Delete an existing blog post.""" ctrl.delete_blog_post_with_id(post_id) return JSendResponse.new_success().jsonify()