in handlers/dynamodb.go [33:55]
func (d *DynamoDBEventHandler) StreamHandler(ctx context.Context, event events.DynamoDBEvent) (StreamsEventResponse, error) {
internalEvents := make([]types.Event, len(event.Records))
for i, ddbEvent := range event.Records {
internalEvents[i] = eventFromDynamoDBRecord(ddbEvent)
}
failedEvents, err := d.productStream.Publish(ctx, internalEvents)
if err != nil {
log.Fatalf("totally failed to publish: %v", err)
return StreamsEventResponse{}, err
}
if len(failedEvents) > 0 {
itemFailures := make([]BatchItemFailure, len(failedEvents))
for i, failedItem := range failedEvents {
itemFailures[i] = BatchItemFailure{ItemIdentifier: failedItem.Resources[0]}
}
return StreamsEventResponse{BatchItemFailures: itemFailures}, nil
}
return StreamsEventResponse{}, nil
}