in lambda/go/update-episode-status/main.go [27:58]
func (h *Handler) Handle(ctx context.Context, input InputEvent) (
string, error,
) {
log.Println("updating episode status,", input)
exp, err := ddbexp.NewBuilder().WithUpdate(
ddbexp.Set(
ddbexp.Name("status"),
ddbexp.Value(input.Status),
),
).Build()
if err != nil {
return "", fmt.Errorf("failed to build update expression, %w", err)
}
_, err = h.ddbClient.UpdateItem(ctx, &ddb.UpdateItemInput{
TableName: &h.episodeTableName,
Key: workshop.Episode{
ID: input.EpisodeID,
}.AttributeValuePrimaryKey(),
UpdateExpression: exp.Update(),
ExpressionAttributeNames: exp.Names(),
ExpressionAttributeValues: exp.Values(),
})
if err != nil {
return "", fmt.Errorf("failed to update episode, %w", err)
}
log.Printf("episode %v updated, %v", input.EpisodeID, input.Status)
return input.Status, nil
}