func()

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
}