def post(self, *args, **kwargs): """Create a new account. Request: version: protocol version (1.0) username: username password: password role: tole name: name surname: surname email: email Example URLs: POST /api/v1/accounts { "version" : 1.0, "username" : "foo", "password" : "foo", "role" : "user", "name" : "foo", "surname" : "foo", "email" : "*****@*****.**" } """ RUNTIME.create_account(kwargs['username'], kwargs['password'], kwargs['role'], kwargs['name'], kwargs['surname'], kwargs['email'])
def post(self, *args, **kwargs): """ Create a new account. Request: version: protocol version (1.0) username: username password: password role: tole name: name surname: surname email: email Example URLs: POST /api/v1/accounts { "version" : 1.0, "username" : "foo", "password" : "foo", "role" : "user", "name" : "foo", "surname" : "foo", "email" : "*****@*****.**" } """ try: if len(args) != 0: raise ValueError("Invalid url") request = tornado.escape.json_decode(self.request.body) if "version" not in request: raise ValueError("missing version element") if "username" not in request: raise ValueError("missing username element") if "password" not in request: raise ValueError("missing password element") if "role" not in request: raise ValueError("missing role element") if "name" not in request: raise ValueError("missing name element") if "surname" not in request: raise ValueError("missing surname element") if "email" not in request: raise ValueError("missing email element") if request['role'] not in [ROLE_ADMIN, ROLE_USER]: raise ValueError("Invalid role %s" % request['role']) RUNTIME.create_account(request['username'], request['password'], request['role'], request['name'], request['surname'], request['email']) except ValueError as ex: self.send_error(400, message=ex) except KeyError as ex: self.send_error(404, message=ex) self.set_status(201, None)