221
}
222
224
>
response.HistoryBatches = []*historypb.History{}
225
>
numOfEvents := 0
226
>
encoder := codec.NewJSONPBEncoder()
227
>
228
>
outer:
229
>
for token.CurrentPart <= token.HighestPart {
230
>
231
>
filename := constructHistoryFilenameMultipart(request.NamespaceID, request.WorkflowID, request.RunID, token.CloseFailoverVersion, token.CurrentPart)
232
>
encodedHistoryBatches, err := h.gcloudStorage.Get(ctx, URI, filename)
233
>
if err != nil {
234
return nil, serviceerror.NewUnavailable(err.Error())
235
}
237
return nil, serviceerror.NewInternal("Fail retrieving history file: " + URI.String() + "/" + filename)
238
}
239
241
>
if err != nil {
242
return nil, serviceerror.NewInternal(err.Error())
243
}
244
// trim the batches in the beginning based on token.BatchIdxOffset
246
>
247
>
for idx, batch := range batches {
248
>
response.HistoryBatches = append(response.HistoryBatches, batch)
249
>
token.BatchIdxOffset++
250
>
numOfEvents += len(batch.Events)
251
>
252
>
if numOfEvents >= request.PageSize {
253
if idx == len(batches)-1 {
254
// handle the edge case where page size is meeted after adding the last batch