@@ -77,8 +77,6 @@ class PhaseAdvancer {
77
77
} ;
78
78
79
79
const phaseSpecificFacts = await this . #challengeDomain. getPhaseFacts ( phaseSpecificFactRequest ) ;
80
- console . log ( "phase-specific-facts" , JSON . stringify ( phaseSpecificFacts , null , 2 ) ) ;
81
-
82
80
const facts = {
83
81
name : phase . name ,
84
82
isOpen : phase . isOpen ,
@@ -108,7 +106,7 @@ class PhaseAdvancer {
108
106
109
107
async advancePhase ( challengeId , legacyId , phases , operation , phaseName ) {
110
108
const matchedPhases = phases
111
- . filter ( ( phase ) => phase . actualEndDate == null && phase . name === phaseName )
109
+ // .filter((phase) => phase.actualEndDate == null && phase.name === phaseName)
112
110
. sort ( ( a , b ) => new Date ( a . scheduledStartDate ) - new Date ( b . scheduledStartDate ) ) ;
113
111
114
112
if ( matchedPhases . length === 0 ) {
@@ -132,17 +130,23 @@ class PhaseAdvancer {
132
130
)
133
131
. map ( ( constraint ) => ( {
134
132
name : `Constraint: ${ constraint . name } ` ,
135
- fact : normalizeName ( constraint . name ) ,
136
- operator : "greaterOrEqual" ,
137
- value : constraint . value ,
133
+ conditions : {
134
+ all : [
135
+ {
136
+ fact : this . #rules. constraintNameFactMap [ normalizeName ( constraint . name ) ] ,
137
+ operator : "greaterThanInclusive" ,
138
+ value : constraint . value ,
139
+ } ,
140
+ ] ,
141
+ } ,
142
+ event : {
143
+ type : `can${ operation . toLowerCase ( ) } ` ,
144
+ } ,
138
145
} ) ) || [ ] ;
139
146
140
147
const rules = [ ...essentialRules , ...constraintRules ] ;
141
148
const facts = await this . #generateFacts( challengeId , legacyId , phases , phase , operation ) ;
142
149
143
- console . log ( "rules" , JSON . stringify ( rules , null , 2 ) ) ;
144
- console . log ( "facts" , JSON . stringify ( facts , null , 2 ) ) ;
145
-
146
150
for ( const rule of rules ) {
147
151
const ruleExecutionResult = await this . #executeRule( rule , facts ) ;
148
152
@@ -190,9 +194,6 @@ class PhaseAdvancer {
190
194
}
191
195
192
196
async #open( challengeId , phases , phase ) {
193
- console . log ( `Opening phase ${ phase . name } for challenge ${ challengeId } ` ) ;
194
- console . log ( "Phases" , phases ) ;
195
- console . log ( "Phase" , phase ) ;
196
197
phase . isOpen = true ;
197
198
const actualStartDate = new Date ( ) ;
198
199
phase . actualStartDate = actualStartDate . toISOString ( ) ;
@@ -365,7 +366,6 @@ class PhaseAdvancer {
365
366
async #executeRule( rule , facts ) {
366
367
const ruleEngine = new Engine ( ) ;
367
368
ruleEngine . addRule ( rule ) ;
368
-
369
369
const result = await ruleEngine . run ( facts ) ;
370
370
371
371
const failureReasons = result . failureResults . map ( ( failureResult ) => ( {
0 commit comments