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
}