У меня длинная логика для проверки совместимости заказанных продуктов.и эта логика нужна в двух контроллерах.Поэтому я хочу поместить этот фрагмент кода куда-нибудь.
Является ли это хорошей идеей поместить эту логику в OrderRepository
, пока я хочу следовать шаблону репозитория?если это не так, где лучшее место?
вот метод создания заказа в OrderRepository
:
/**
* Create the order
*
* @param array $params
* @return Order
* @throws OrderInvalidArgumentException
*/
public function createOrder(array $params) : Order
{
try {
$order = $this->create($params);
$orderRepo = new OrderRepository($order);
$orderRepo->buildOrderDetails(Cart::content());
// Check the compatibility here
event(new OrderCreateEvent($order));
return $order;
} catch (QueryException $e) {
throw new OrderInvalidArgumentException($e->getMessage(), 500, $e);
}
}