Ejemplo n.º 1
0
class Cause(flask_restful.Resource):
    def __init__(self):
        self.parsers = {}
        self.parsers["get"] = reqparse.RequestParser()
        parser_get = self.parsers["get"]
        parser_get.add_argument("category", type=utils.get_uuid)

    @validate_client()
    @validate_id()
    def get(self, client, id=None):
        args = self.parsers['get'].parse_args()
        category_id = args['category']
        if id:
            response = {'cause': models.Cause.get(id, client.id, category_id)}
            return marshal(response, one_cause_fields)
        else:
            response = {
                'causes': models.Cause.all(client.id, category_id),
                'meta': {}
            }
            return marshal(response, causes_fields)

    @validate_client(True)
    def post(self, client):
        json = request.get_json(silent=True)
        logging.getLogger(__name__).debug('Post cause: %s', json)
        try:
            validate(json, cause_input_format)
        except ValidationError, e:
            logging.debug(str(e))
            # TODO: generate good error messages
            return marshal({'error': {
                'message': utils.parse_error(e)
            }}, error_fields), 400

        cause = models.Cause()
        mapper.fill_from_json(cause, json, mapper.cause_mapping)
        cause.client = client
        try:
            db_helper.manage_wordings(cause, json["wordings"])
        except exceptions.InvalidJson, e:
            return marshal({'error': {
                'message': utils.parse_error(e)
            }}, error_fields), 400
Ejemplo n.º 2
0
class Severity(flask_restful.Resource):
    @validate_client()
    @validate_id()
    def get(self, client, id=None):
        if id:
            return marshal({'severity': models.Severity.get(id, client.id)},
                           one_severity_fields)
        else:
            response = {
                'severities': models.Severity.all(client.id),
                'meta': {}
            }
            return marshal(response, severities_fields)

    @validate_client(True)
    def post(self, client):
        json = request.get_json(silent=True)
        logging.getLogger(__name__).debug('Post severity: %s', json)
        try:
            validate(json, severity_input_format)
        except ValidationError, e:
            logging.debug(str(e))
            # TODO: generate good error messages
            return marshal({'error': {
                'message': utils.parse_error(e)
            }}, error_fields), 400

        severity = models.Severity()
        mapper.fill_from_json(severity, json, mapper.severity_mapping)
        severity.client = client
        try:
            db_helper.manage_wordings(severity, json["wordings"])
        except exceptions.InvalidJson, e:
            return marshal({'error': {
                'message': utils.parse_error(e)
            }}, error_fields), 400
Ejemplo n.º 3
0
        severity = models.Severity.get(id, client.id)
        json = request.get_json(silent=True)
        logging.getLogger(__name__).debug('PUT severity: %s', json)

        try:
            validate(json, severity_input_format)
        except ValidationError, e:
            logging.debug(str(e))
            # TODO: generate good error messages
            return marshal({'error': {
                'message': utils.parse_error(e)
            }}, error_fields), 400

        mapper.fill_from_json(severity, json, mapper.severity_mapping)
        try:
            db_helper.manage_wordings(severity, json["wordings"])
        except exceptions.InvalidJson, e:
            return marshal({'error': {
                'message': utils.parse_error(e)
            }}, error_fields), 400
        db.session.commit()
        return marshal({'severity': severity}, one_severity_fields), 200

    @validate_client()
    @validate_id(True)
    def delete(self, client, id):

        severity = models.Severity.get(id, client.id)
        severity.is_visible = False
        db.session.commit()
        return None, 204
Ejemplo n.º 4
0
        severity = models.Severity.get(id, client.id)
        json = request.get_json(silent=True)
        logging.getLogger(__name__).debug('PUT severity: %s', json)

        try:
            validate(json, severity_input_format)
        except ValidationError, e:
            logging.debug(str(e))
            # TODO: generate good error messages
            return marshal({'error': {'message': utils.parse_error(e)}},
                           error_fields), 400

        mapper.fill_from_json(severity, json, mapper.severity_mapping)
        try:
            db_helper.manage_wordings(severity, json["wordings"])
        except exceptions.InvalidJson, e:
            return marshal({'error': {'message': utils.parse_error(e)}},
                           error_fields), 400
        db.session.commit()
        db.session.refresh(severity)
        return marshal({'severity': severity}, one_severity_fields), 200

    @validate_client()
    @validate_id(True)
    def delete(self, client, id):

        severity = models.Severity.get(id, client.id)
        severity.is_visible = False
        db.session.commit()
        return None, 204