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
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
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
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