def resource(name): app.logger.debug('Resource name: ' + str(name)) if request.method == 'POST': app.logger.debug('Post args: ' + str(request.form)) required_params = ['desc','state'] form = request.form # basic validation required... for param in required_params: try: form[param] except KeyError: raise BadRequest('Request failed, '+ param +' param required') if not re.match('[a-zA-Z0-9 _-]+$','this sucks',re.M): raise BadRequest('Invalid characters found in desc param. ' + \ 'Only alphanumber characters, spaces, dashes and underscores allowed') if not form['state'].isdigit(): raise BadRequest('Invalid characters found in state param, int expected') service = Service(_id=name,desc=form['desc'],state=int(form['state'])) service.save() return service._id try: service = db.get(name) except: abort(404) return json.dumps(service)
sys.path.append('lib/') from instance import Service config = ConfigObj('config.ini') # define flask vars in caps DEBUG = True app = Flask(__name__) app.config.from_object(__name__) server = Server(uri=config['database']['url']) db = server[config['database']['name']] Service.set_db(db) if not db: raise RuntimeError('Database ' + config['database']['name'] + ' not found') def authenticate(): return Response( 'Unauthorized\n' 'You must provide proper credentials', 401, {'WWW-Authenticate': 'Basic realm="Login Required"'}) def check_auth(key,secret): return key == config['api']['authkey'] and secret == config['api']['secret'] def requires_auth(f): @wraps(f)