Skip to content

Commit 83d1755

Browse files
committed
Restore lost relationships in standard objects.
1 parent 5798282 commit 83d1755

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

pkg/driver/driver.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ func ReadSalseforceMeta(baseDir string) (SalesforceMeta, error) {
3434
return retval, err
3535
}
3636

37+
removeMissingRelations(retval.SObjects)
38+
3739
return retval, nil
3840
}
3941

pkg/driver/read.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,12 @@ func readFieldsMeta(
219219
fldMeta.Type = "_" // reqired
220220
}
221221

222+
if (fldMeta.Type == "MasterDetail" || fldMeta.Type == "Lookup") &&
223+
fldMeta.ReferenceTo == "" && len(fldMeta.FullName) > 2 && strings.HasSuffix(fldMeta.FullName, "Id") {
224+
225+
fldMeta.ReferenceTo = strings.TrimSuffix(fldMeta.FullName, "Id")
226+
}
227+
222228
objMeta := sobjMap[entityName]
223229
objMeta.Fields[fld.Name()] = &fldMeta
224230
}
@@ -351,3 +357,15 @@ func readApexTriggers(baseDir string) (map[string]*SfApexTrigger, error) {
351357

352358
return trigMap, nil
353359
}
360+
361+
func removeMissingRelations(sobjMap map[string]*SfCustomObject) {
362+
for _, sobjMeta := range sobjMap {
363+
for _, fldMeta := range sobjMeta.Fields {
364+
if fldMeta.Type == "MasterDetail" || fldMeta.Type == "Lookup" {
365+
if _, ok := sobjMap[fldMeta.ReferenceTo]; !ok {
366+
fldMeta.ReferenceTo = ""
367+
}
368+
}
369+
}
370+
}
371+
}

0 commit comments

Comments
 (0)