implemented recursive dedupe and compile
This commit is contained in:
@@ -37,3 +37,38 @@ type Source struct {
|
||||
SourceType *SourceType
|
||||
ObjectType ObjectType
|
||||
}
|
||||
|
||||
func dedupeSources(inputSources []Source) []Source {
|
||||
urlMapping := map[string]int{}
|
||||
|
||||
deduped := []Source{}
|
||||
|
||||
for _, source := range inputSources {
|
||||
if mergeWithIndex, ok := urlMapping[source.Url]; ok {
|
||||
// has to merge current source with source at index
|
||||
if source.ObjectType != "" {
|
||||
deduped[mergeWithIndex].ObjectType = source.ObjectType
|
||||
}
|
||||
if source.SourceType != nil {
|
||||
deduped[mergeWithIndex].SourceType = source.SourceType
|
||||
}
|
||||
|
||||
} else {
|
||||
// just appending
|
||||
urlMapping[source.Url] = len(deduped)
|
||||
deduped = append(deduped, source)
|
||||
}
|
||||
}
|
||||
|
||||
return deduped
|
||||
}
|
||||
|
||||
func sourceIndices(sources []Source) []string {
|
||||
res := []string{}
|
||||
|
||||
for _, source := range sources {
|
||||
res = append(res, "url"+source.Url)
|
||||
}
|
||||
|
||||
return res
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user