@@ -83,7 +83,6 @@ import {
8383 ValidatedExperimentError ,
8484 ConditionPayloadValidator ,
8585} from '../DTO/ExperimentDTO' ;
86- import { ConditionPayloadDTO } from '../DTO/ConditionPayloadDTO' ;
8786import { FactorDTO } from '../DTO/FactorDTO' ;
8887import { LevelDTO } from '../DTO/LevelDTO' ;
8988import { CacheService } from './CacheService' ;
@@ -760,10 +759,10 @@ export class ExperimentService {
760759 this . experimentSchedulerService . updateExperimentSchedules ( experiment as any , logger ) ;
761760 }
762761
762+ let uniqueIdentifiers = await this . getAllUniqueIdentifiers ( logger ) ;
763763 return entityManager
764764 . transaction ( async ( transactionalEntityManager ) => {
765765 experiment . context = experiment . context . map ( ( context ) => context . toLocaleLowerCase ( ) ) ;
766- let uniqueIdentifiers = await this . getAllUniqueIdentifiers ( logger ) ;
767766 if ( experiment . conditions . length ) {
768767 const response = this . setConditionOrPartitionIdentifiers ( experiment . conditions , uniqueIdentifiers ) ;
769768 experiment . conditions = response [ 0 ] ;
@@ -861,16 +860,16 @@ export class ExperimentService {
861860 } ) ;
862861 } ) ;
863862
864- const conditionPayloadDocToSave : Array < Partial < Omit < ConditionPayload , 'parentCondition' | 'decisionPoint' > > > =
863+ const conditionPayloadDocToSave : Array < Partial < ConditionPayload > > =
865864 ( newPayloads &&
866865 newPayloads . length > 0 &&
867866 newPayloads . map ( ( conditionPayload ) => {
868867 const conditionPayloadToReturn = {
869868 id : conditionPayload . id ,
870869 payloadType : conditionPayload . payload . type ,
871870 payloadValue : conditionPayload . payload . value ,
872- parentCondition : conditionPayload . parentCondition ,
873- decisionPoint : conditionPayload . decisionPoint ,
871+ parentConditionId : conditionPayload . parentCondition ,
872+ decisionPointId : conditionPayload . decisionPoint ,
874873 } ;
875874 return conditionPayloadToReturn ;
876875 } ) ) ||
@@ -993,7 +992,6 @@ export class ExperimentService {
993992 let conditionDocs : ExperimentCondition [ ] ;
994993 let decisionPointDocs : DecisionPoint [ ] ;
995994 let queryDocs : Query [ ] ;
996- let conditionPayloadDocs : ConditionPayloadDTO [ ] ;
997995 try {
998996 [ conditionDocs , decisionPointDocs , queryDocs ] = await Promise . all ( [
999997 Promise . all (
@@ -1026,16 +1024,14 @@ export class ExperimentService {
10261024 }
10271025
10281026 try {
1029- [ conditionPayloadDocs ] = await Promise . all ( [
1030- Promise . all (
1031- conditionPayloadDocToSave . map ( async ( conditionPayload ) => {
1032- return this . conditionPayloadRepository . upsertConditionPayload (
1033- conditionPayload ,
1034- transactionalEntityManager
1035- ) ;
1036- } )
1037- ) as any ,
1038- ] ) ;
1027+ await Promise . all (
1028+ conditionPayloadDocToSave . map ( async ( conditionPayload ) => {
1029+ return this . conditionPayloadRepository . upsertConditionPayload (
1030+ conditionPayload ,
1031+ transactionalEntityManager
1032+ ) ;
1033+ } )
1034+ ) ;
10391035 } catch ( err ) {
10401036 const error = err as Error ;
10411037 error . message = `Error in creating conditionPayloads "updateExperimentInDB"` ;
@@ -1051,11 +1047,15 @@ export class ExperimentService {
10511047 return { ...decisionPointDoc , experiment : decisionPointDoc . experiment } ;
10521048 } ) ;
10531049
1054- const conditionPayloadDocToReturn = await transactionalEntityManager . getRepository ( ConditionPayload ) . find ( {
1055- relations : [ 'parentCondition' , 'decisionPoint' ] ,
1056- where : { id : In ( conditionPayloadDocs . map ( ( conditionPayload ) => conditionPayload . id ) ) } ,
1050+ const conditionPayloadDocToReturn = conditionPayloadDocToSave . map ( ( conditionPayload ) => {
1051+ const parentCondition = conditionDocs . find ( ( c ) => c . id === conditionPayload . parentConditionId ) ;
1052+ const decisionPoint = decisionPointDocs . find ( ( dp ) => dp . id === conditionPayload . decisionPointId ) ;
1053+ return {
1054+ ...conditionPayload ,
1055+ parentCondition : parentCondition ,
1056+ decisionPoint : decisionPoint ,
1057+ } ;
10571058 } ) ;
1058-
10591059 // sort the payloads by decision point order and condition order
10601060 conditionPayloadDocToReturn . sort ( ( a , b ) => {
10611061 if ( a . decisionPoint . order === b . decisionPoint . order ) {
0 commit comments