// [START update_entity] // MarkDone marks the task done with the given ID. func MarkDone(ctx context.Context, client *datastore.Client, taskID int64) error { // Create a key using the given integer ID. key := datastore.IDKey("Task", taskID, nil) // In a transaction load each task, set done to true and store. _, err := client.RunInTransaction(ctx, func(tx *datastore.Transaction) error { var task Task if err := tx.Get(key, &task); err != nil { return err } task.Done = true _, err := tx.Put(key, &task) return err }) return err }