func()

in src/psearch/serving/internal/services/spanner_service.go [65:82]


func (s *SpannerService) GetProduct(ctx context.Context, productID string) (map[string]interface{}, error) {
	row, err := s.client.Single().ReadRow(ctx, "products", spanner.Key{productID}, []string{"product_data"})
	if err != nil {
		return nil, fmt.Errorf("failed to read product %s: %v", productID, err)
	}

	var productDataJSON string
	if err := row.Column(0, &productDataJSON); err != nil {
		return nil, fmt.Errorf("failed to scan product data: %v", err)
	}

	var productData map[string]interface{}
	if err := json.Unmarshal([]byte(productDataJSON), &productData); err != nil {
		return nil, fmt.Errorf("failed to unmarshal product data: %v", err)
	}

	return productData, nil
}