diff --git a/service/grails-app/controllers/org/olf/SerialRulesetController.groovy b/service/grails-app/controllers/org/olf/SerialRulesetController.groovy index a9d6d04..5410b6b 100644 --- a/service/grails-app/controllers/org/olf/SerialRulesetController.groovy +++ b/service/grails-app/controllers/org/olf/SerialRulesetController.groovy @@ -56,6 +56,16 @@ class SerialRulesetController extends OkapiTenantAwareController respond result } + //Check to see if new ruleset is active, if it is, additionally set the current active ruleset to deprecated + private void activeRulesetCheck(SerialRuleset ruleset) { + if(ruleset?.rulesetStatus?.value == 'active'){ + String activeRulesetId = serialRulesetService.findActive(ruleset?.owner?.id) + if(activeRulesetId){ + serialRulesetService.updateRulesetStatus(activeRulesetId, 'deprecated') + } + } + } + @Transactional def replaceAndDelete() { SerialRuleset.withTransaction { @@ -78,13 +88,8 @@ class SerialRulesetController extends OkapiTenantAwareController } // New ruleset SerialRuleset ruleset = new SerialRuleset(data) - //Check to see if new ruleset is active, if it is, additionally set the current active ruleset to deprecated - if(ruleset?.rulesetStatus?.value == 'active'){ - String activeRulesetId = serialRulesetService.findActive(ruleset?.owner?.id) - if(activeRulesetId){ - serialRulesetService.updateRulesetStatus(activeRulesetId, 'deprecated') - } - } + activeRulesetCheck(ruleset) + ruleset.save(failOnError: true) if(ruleset.hasErrors()) { transactionStatus.setRollbackOnly() @@ -112,12 +117,8 @@ class SerialRulesetController extends OkapiTenantAwareController // New ruleset SerialRuleset ruleset = new SerialRuleset(data) //Check to see if new ruleset is active, if it is, additionally set the current active ruleset to deprecated - if(ruleset?.rulesetStatus?.value == 'active'){ - String activeRulesetId = serialRulesetService.findActive(ruleset?.owner?.id) - if(activeRulesetId){ - serialRulesetService.updateRulesetStatus(activeRulesetId, 'deprecated') - } - } + activeRulesetCheck(ruleset) + ruleset.save(failOnError: true) if(ruleset.hasErrors()) { transactionStatus.setRollbackOnly() @@ -134,12 +135,8 @@ class SerialRulesetController extends OkapiTenantAwareController SerialRuleset.withTransaction { def data = getObjectToBind() SerialRuleset ruleset = new SerialRuleset(data) - if(ruleset?.rulesetStatus?.value == 'active'){ - String activeRulesetId = serialRulesetService.findActive(ruleset?.owner?.id) - if(activeRulesetId){ - serialRulesetService.updateRulesetStatus(activeRulesetId, 'deprecated') - } - } + activeRulesetCheck(ruleset) + ruleset.save(failOnError: true) if(ruleset.hasErrors()) { transactionStatus.setRollbackOnly()