def on_post(self, req, resp): """ Implements the class contract for POST """ request_data = RegisterHandler.get_json_payload(req) try: email, password = serializers.USER_ENTITY_SERIALIZER.load(request_data).data except ValidationError as ex: raise falcon.HTTPBadRequest( 'Bad Request', ValidationUtil.construct_error_string(ex) ) try: access_token = UserAService.create_user(email, password) except UserAlreadyExistsException: raise falcon.HTTPBadRequest( 'Bad Request', 'User already exists', code=9997 ) resp.status = falcon.HTTP_200 resp.body = json.dumps({ 'access_token': access_token })
def on_get(self, req, resp): """ Implements the class contract for GET. """ try: limit = req.params.get('limit', 10) limit = ValidationUtil.validate_positive_integer('limit', limit) offset = req.params.get('offset', 0) offset = ValidationUtil.validate_positive_integer('offset', offset) except ValidationError as ex: raise falcon.HTTPBadRequest( 'Bad Request', ValidationUtil.construct_error_string(ex) ) expenses = ExpenseAService.select_expenses(self.session.user, limit, offset) result = serializers.EXPENSE_ENTITY_SERIALIZER.dumps(expenses, many=True).data resp.status = falcon.HTTP_200 resp.body = result
def on_put(self, req, resp, user_setting_id): """ Implements the class contract for PUT """ user_setting_id = unicode(user_setting_id) request_data = self.get_json_payload(req) try: name, value = serializers.USER_SETTING_ENTITY_SERIALIZER.loads(request_data, many=False) except ValidationError as ex: raise falcon.HTTPBadRequest( 'Bad Request', ValidationUtil.construct_error_string(ex) ) UserSettingAService.update_setting(self.session.user, user_setting_id, name, value) resp.status = falcon.HTTP_204
def on_post(self, req, resp): """ Implements the class contract for POST. """ request_data = ExpenseHandler.get_json_payload(req) try: date, amount, name, category = serializers.EXPENSE_ENTITY_SERIALIZER.load(request_data).data except ValidationError as ex: raise falcon.HTTPBadRequest( 'Bad Request', ValidationUtil.construct_error_string(ex) ) resp.status = falcon.HTTP_200 resp.body = json.dumps({ 'uri': '/expenses/%s' % ExpenseAService.create_expense(self.session.user, date, amount, name, category) })