diff --git a/services/core-api/app/api/mines/permits/permit_conditions/models/permit_conditions.py b/services/core-api/app/api/mines/permits/permit_conditions/models/permit_conditions.py index 111fbac788..510e306d34 100644 --- a/services/core-api/app/api/mines/permits/permit_conditions/models/permit_conditions.py +++ b/services/core-api/app/api/mines/permits/permit_conditions/models/permit_conditions.py @@ -16,9 +16,7 @@ class PermitConditions(SoftDeleteMixin, AuditMixin, Base): class _ModelSchema(Base._ModelSchema): permit_condition_id = fields.Integer(dump_only=True) permit_condition_guid = fields.UUID(dump_only=True) - condition_category_code = FieldTemplate( - field=fields.String, one_of="PermitConditionCategory" - ) + condition_category_code = fields.String(dump_only=False) condition_type_code = FieldTemplate( field=fields.String, one_of="PermitConditionType" ) diff --git a/services/core-api/app/api/mines/permits/permit_conditions/resources/permit_conditions_resource.py b/services/core-api/app/api/mines/permits/permit_conditions/resources/permit_conditions_resource.py index a9698234ff..9126827d8f 100644 --- a/services/core-api/app/api/mines/permits/permit_conditions/resources/permit_conditions_resource.py +++ b/services/core-api/app/api/mines/permits/permit_conditions/resources/permit_conditions_resource.py @@ -11,6 +11,7 @@ from app.api.utils.access_decorators import MINESPACE_PROPONENT, VIEW_ALL, requires_role_edit_permit, requires_any_of from app.api.utils.resources_mixins import UserMixin from app.api.mines.permits.permit.models.permit import Permit +from app.api.mines.permits.permit_conditions.models.permit_condition_category import PermitConditionCategory from app.api.mines.mine.models.mine import Mine from app.api.utils.include.user_info import User @@ -32,6 +33,9 @@ def post(self, mine_guid, permit_guid, permit_amendment_guid): try: permit_condition = PermitConditions._schema().load(request.json['permit_condition']) + if not PermitConditionCategory.find_by_permit_condition_category_code(permit_condition.condition_category_code): + raise BadRequest('condition_category_code is invalid') + if permit_condition.top_level_parent_permit_condition_id is not None: top_condition = PermitConditions.find_by_permit_condition_id(permit_condition.top_level_parent_permit_condition_id) top_condition.permit_condition_status_code = 'NST' @@ -88,6 +92,8 @@ def put(self, mine_guid, permit_guid, permit_amendment_guid, permit_condition_gu old_display_order = old_condition.display_order old_category_code = old_condition.condition_category_code new_category_code = request_data.get("condition_category_code", None) + if not PermitConditionCategory.find_by_permit_condition_category_code(new_category_code): + raise BadRequest('condition_category_code is invalid') changed_category = old_category_code != new_category_code new_status_code = request_data.get("permit_condition_status_code",None) changed_status = old_condition.permit_condition_status_code != new_status_code