예제 #1
0
    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
        })
예제 #2
0
    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
예제 #3
0
    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
예제 #4
0
    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)
        })