34
35
// CopyVersionHistoryUntilLCAVersionHistoryItem returns copy of VersionHistory up until LCA item.
36
>
func CopyVersionHistoryUntilLCAVersionHistoryItem(v *historyspb.VersionHistory, lcaItem *historyspb.VersionHistoryItem) (*historyspb.VersionHistory, error) {
version_history.go
37
>
versionHistory := &historyspb.VersionHistory{}
38
>
notFoundErr := serviceerror.NewInternal("version history does not contains the LCA item.")
39
>
for _, item := range v.Items {
40
>
if item.Version < lcaItem.Version {
41
if err := AddOrUpdateVersionHistoryItem(versionHistory, item); err != nil {
42
return nil, err
43
}
45
>
if lcaItem.GetEventId() > item.GetEventId() {
46
return nil, notFoundErr
47
}