@@ -33,7 +33,6 @@ export default class ImportGlobalFields extends BaseClass {
3333 private reqConcurrency : number ;
3434 private installedExtensions : Record < string , unknown > ;
3535 private existingGFs : Record < string , any > [ ] ;
36- private fieldRules : Array < Record < string , unknown > > ;
3736 private gFsConfig : {
3837 dirName : string ;
3938 fileName : string ;
@@ -52,7 +51,6 @@ export default class ImportGlobalFields extends BaseClass {
5251 this . failedGFs = [ ] ;
5352 this . pendingGFs = [ ] ;
5453 this . existingGFs = [ ] ;
55- this . fieldRules = [ ] ;
5654 this . reqConcurrency = this . gFsConfig . writeConcurrency || this . config . writeConcurrency ;
5755 this . gFsMapperPath = path . resolve ( sanitizePath ( this . config . data ) , 'mapper' , 'global_fields' ) ;
5856 this . gFsFolderPath = path . resolve ( sanitizePath ( this . config . data ) , sanitizePath ( this . gFsConfig . dirName ) ) ;
@@ -101,7 +99,7 @@ export default class ImportGlobalFields extends BaseClass {
10199 const onSuccess = ( { response : globalField , apiData : { uid } = undefined } : any ) => {
102100 this . createdGFs . push ( globalField ) ;
103101 this . gFsUidMapper [ uid ] = globalField ;
104- log ( this . importConfig , `${ uid } Global field seeded` , 'info' ) ;
102+ log ( this . importConfig , `${ globalField . uid } Global field seeded` , 'info' ) ;
105103 } ;
106104 const onReject = ( { error, apiData : globalField = undefined } : any ) => {
107105 const uid = globalField . uid ;
@@ -110,7 +108,7 @@ export default class ImportGlobalFields extends BaseClass {
110108 this . existingGFs . push ( globalField ) ;
111109 }
112110 if ( ! this . importConfig . skipExisting ) {
113- log ( this . importConfig , `Global fields '${ uid } ' already exist` , 'info' ) ;
111+ log ( this . importConfig , `Global fields '${ globalField . uid } ' already exist` , 'info' ) ;
114112 }
115113 } else {
116114 log ( this . importConfig , `Global fields '${ uid } ' failed to import` , 'error' ) ;
@@ -153,11 +151,12 @@ export default class ImportGlobalFields extends BaseClass {
153151 const onReject = ( { error, apiData : { uid } = undefined } : any ) => {
154152 log ( this . importConfig , `Failed to update the global field '${ uid } ' ${ formatError ( error ) } ` , 'error' ) ;
155153 } ;
154+
156155 return await this . makeConcurrentCall ( {
157156 processName : 'Update Global Fields' ,
158157 apiContent : this . gFs ,
159158 apiParams : {
160- serializeData : this . serializeReplaceGFs . bind ( this ) ,
159+ serializeData : this . serializeUpdateGFs . bind ( this ) ,
161160 reject : onReject . bind ( this ) ,
162161 resolve : onSuccess . bind ( this ) ,
163162 entity : 'update-gfs' ,
@@ -167,6 +166,27 @@ export default class ImportGlobalFields extends BaseClass {
167166 } ) ;
168167 }
169168
169+ /**
170+ * @method serializeUpdateGFs
171+ * @param {ApiOptions } apiOptions ApiOptions
172+ * @returns {ApiOptions } ApiOptions
173+ */
174+ serializeUpdateGFs ( apiOptions : ApiOptions ) : ApiOptions {
175+ const { apiData : globalField } = apiOptions ;
176+ lookupExtension ( this . config , globalField . schema , this . config . preserveStackVersion , this . installedExtensions ) ;
177+ let flag = { supressed : false } ;
178+ removeReferenceFields ( globalField . schema , flag , this . stack ) ;
179+ if ( flag . supressed ) {
180+ this . pendingGFs . push ( globalField . uid ) ;
181+ }
182+ const globalFieldPayload = this . stack . globalField ( globalField . uid , { api_version : nestedGlobalFieldsVersion } ) ;
183+ Object . assign ( globalFieldPayload , cloneDeep ( globalField ) , {
184+ stackHeaders : globalFieldPayload . stackHeaders ,
185+ } ) ;
186+ apiOptions . apiData = globalFieldPayload ;
187+ return apiOptions ;
188+ }
189+
170190 async replaceGFs ( ) : Promise < any > {
171191 const onSuccess = ( { response : globalField , apiData : { uid } = { uid : null } } : any ) => {
172192 this . createdGFs . push ( globalField ) ;
0 commit comments