Skip to content

Commit

Permalink
refactor: WIP Changes after call
Browse files Browse the repository at this point in the history
Updated Todos and changes after futher discussion
  • Loading branch information
Jack-Golding committed Sep 26, 2024
1 parent 2dbc96b commit a30168c
Show file tree
Hide file tree
Showing 7 changed files with 54 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ class PredictedPieceSetController extends OkapiTenantAwareController<PredictedPi
startDate: data?.startDate,
firstPieceTemplateMetadata: firstPieceTemplateMetadata,
nextPieceTemplateMetadata: nextPieceTemplateMetadata
// TODO Check that this should be a flush
]).save(flush: true, failOnError: true)

respond pps
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,15 @@ package org.olf
import org.olf.SerialRuleset
import org.olf.SerialRulesetService

import org.olf.recurrence.Recurrence

import com.k_int.okapi.OkapiTenantAwareController
import com.k_int.web.toolkit.refdata.RefdataValue

import grails.rest.*
import grails.converters.*
import grails.gorm.multitenancy.CurrentTenant
import grails.gorm.transactions.Transactional

import groovy.util.logging.Slf4j

Expand Down Expand Up @@ -51,18 +54,50 @@ class SerialRulesetController extends OkapiTenantAwareController<SerialRuleset>
respond result
}

def replaceAndDelete() {

}

def replaceAndDeprecate() {
// TODO THis will be our ruleset 'editing' endpoint
// Only allow editing if the ruleset is in draft
// Ensure that the ruleset has no associated predicted piece sets
// Additionally ensure that if the 'replace' action fails, do NOT delete the old ruleset
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')
}
}
ruleset.save(failOnError: true)
if(ruleset.hasErrors()) {
transactionStatus.setRollbackOnly()
respond ruleset.errors
}
respond ruleset
}
}

@Transactional
def save() {
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')
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')
}
}
ruleset.save(failOnError: true)
if(ruleset.hasErrors()) {
transactionStatus.setRollbackOnly()
respond ruleset.errors
}
respond ruleset
}
ruleset.save(flush: true, failOnError: true)
respond ruleset
}
}
2 changes: 2 additions & 0 deletions service/grails-app/controllers/org/olf/UrlMappings.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ class UrlMappings {
'/active' (controller: 'serialRuleset', action: 'activateRuleset', method: 'POST')
'/deprecated' (controller: 'serialRuleset', action: 'deprecateRuleset', method: 'POST')
'/draft' (controller: 'serialRuleset', action: 'draftRuleset', method: 'POST')

'/replace' (controller: 'serialRuleset', action: 'replace', method: 'POST')
}

"/serials-management/predictedPieces" (resources: 'predictedPieceSet') {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public class Recurrence implements MultiTenant<Recurrence> {

Integer issues // 7
Integer period // 3 / Frequency

Set<RecurrenceRule> rules// Validate to have exactly #issues of these

static belongsTo = [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ class HousekeepingService {
level.rawValue = level.value as Integer
level.valueFormat = RefdataValue.lookupOrCreate('EnumerationNumericLevelTMRF.Format', 'Number')
}

// TODO Check this should actually be a flush
level.save(flush:true, failOnError:true)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class SerialRulesetService {
SerialRuleset ruleset = SerialRuleset.findById(rulesetId)

ruleset.rulesetStatus = updatedStatus
ruleset.save(flush: true, failOnError: true)
ruleset.save(failOnError: true)

return ruleset
}
Expand Down
10 changes: 5 additions & 5 deletions service/src/main/okapi/ModuleDescriptor-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -71,11 +71,6 @@
"pathPattern": "/serials-management/rulesets",
"permissionsRequired": [ "serials-management.rulesets.item.post" ]
},
{
"methods": ["PUT"],
"pathPattern": "/serials-management/rulesets/{id}",
"permissionsRequired": [ "serials-management.rulesets.item.put" ]
},
{
"methods": ["DELETE"],
"pathPattern": "/serials-management/rulesets/{id}",
Expand All @@ -96,6 +91,11 @@
"pathPattern": "/serials-management/rulesets/{id}/draft",
"permissionsRequired": [ "serials-management.rulesets.item.put" ]
},
{
"methods": ["POST"],
"pathPattern": "/serials-management/rulesets/{id}/replace",
"permissionsRequired": [ "serials-management.rulesets.item.put" ]
},
{
"methods": ["GET"],
"pathPattern": "/serials-management/predictedPieces",
Expand Down

0 comments on commit a30168c

Please sign in to comment.