Вот метод, который извлекает все заказы для данного идентификатора заказа пользователя
func (r *DatastoreRepository) FindOrders(ctx context.Context, userID string, orderIDs []string) ([]*domain.Order, interface{}) {
keys := make([]*datastore.Key, len(orderIDs))
for i, orderID := range orderIDs {
key := datastore.NameKey(kindOrder, orderID, nil)
key.Namespace = userID
keys[i] = key
}
orders := make([]*domain.Order, len(keys))
multiErrors := r.client.GetMulti(ctx, keys, orders)
return orders, multiErrors
}
Этот метод возвращает *[]domain.Order
моему методу обслуживания. Теперь сервисный метод хочет получить доступ к key
объекту данного заказа (чтобы удалить заказ). Один из способов сделать это - заново создать ключ для каждого заказа на основе идентификатора заказа, но это звучит как избыточность кода (я делаю это и в FindOrders
, и мне придется делать это также в DeleteOrders
). Есть ли способ, которым я могу получить доступ к datastore.key
объекту для данного заказа от order object
?