191
request *historyservice.GetWorkflowExecutionRawHistoryRequest,
192
versionHistories *historyspb.VersionHistories,
193
>
) (*historyspb.VersionHistory, error) {
api.go
194
>
195
>
req := request.Request
196
>
197
>
targetBranch, err := versionhistory.GetCurrentVersionHistory(versionHistories)
198
>
if err != nil {
199
return nil, err
200
}
201
>
firstItem, err := versionhistory.GetFirstVersionHistoryItem(targetBranch)
api.go
202
>
if err != nil {
203
return nil, err
204
}
205
>
lastItem, err := versionhistory.GetLastVersionHistoryItem(targetBranch)
api.go
206
>
if err != nil {
207
return nil, err
208
}
209
210
>
setDefaultStartAndEndEvent(req, firstItem, lastItem)
api.go
211
>
212
>
if req.GetStartEventId() < 0 {
213
return nil, consts.ErrInvalidFirstNextEventCombination
214
}
215
216
// get branch based on the end event if end event is defined in the request
217
>
if req.GetEndEventId() == lastItem.GetEventId() &&
api.go
218
>
req.GetEndEventVersion() == lastItem.GetVersion() {
219
>
// this is a special case, target branch remains the same
220
>
} else {
221
endItem := versionhistory.NewVersionHistoryItem(req.GetEndEventId(), req.GetEndEventVersion())
222
idx, err := versionhistory.FindFirstVersionHistoryIndexByVersionHistoryItem(versionHistories, endItem)