func()

in domain/products.go [50:66]


func (d *Products) PutProduct(ctx context.Context, id string, body []byte) (*types.Product, error) {
	product := types.Product{}
	if err := json.Unmarshal(body, &product); err != nil {
		return nil, fmt.Errorf("%w", ErrJsonUnmarshal)
	}

	if product.Id != id {
		return nil, fmt.Errorf("%w", ErrProductIdMismatch)
	}

	err := d.store.Put(ctx, product)
	if err != nil {
		return nil, fmt.Errorf("%w", err)
	}

	return &product, nil
}