123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- <?php
- namespace App\Shop\OrderStatuses\Repositories;
- use Jsdecena\Baserepo\BaseRepository;
- use App\Shop\OrderStatuses\Exceptions\OrderStatusInvalidArgumentException;
- use App\Shop\OrderStatuses\Exceptions\OrderStatusNotFoundException;
- use App\Shop\OrderStatuses\OrderStatus;
- use App\Shop\OrderStatuses\Repositories\Interfaces\OrderStatusRepositoryInterface;
- use Illuminate\Database\Eloquent\ModelNotFoundException;
- use Illuminate\Database\QueryException;
- use Illuminate\Support\Collection;
- class OrderStatusRepository extends BaseRepository implements OrderStatusRepositoryInterface
- {
- /**
- * OrderStatusRepository constructor.
- * @param OrderStatus $orderStatus
- */
- public function __construct(OrderStatus $orderStatus)
- {
- parent::__construct($orderStatus);
- $this->model = $orderStatus;
- }
- /**
- * Create the order status
- *
- * @param array $params
- * @return OrderStatus
- * @throws OrderStatusInvalidArgumentException
- */
- public function createOrderStatus(array $params) : OrderStatus
- {
- try {
- return $this->create($params);
- } catch (QueryException $e) {
- throw new OrderStatusInvalidArgumentException($e->getMessage());
- }
- }
- /**
- * Update the order status
- *
- * @param array $data
- *
- * @return bool
- * @throws OrderStatusInvalidArgumentException
- */
- public function updateOrderStatus(array $data) : bool
- {
- try {
- return $this->update($data);
- } catch (QueryException $e) {
- throw new OrderStatusInvalidArgumentException($e->getMessage());
- }
- }
- /**
- * @param int $id
- * @return OrderStatus
- * @throws OrderStatusNotFoundException
- */
- public function findOrderStatusById(int $id) : OrderStatus
- {
- try {
- return $this->findOneOrFail($id);
- } catch (ModelNotFoundException $e) {
- throw new OrderStatusNotFoundException('Order status not found.');
- }
- }
- /**
- * @return mixed
- */
- public function listOrderStatuses()
- {
- return $this->all();
- }
- /**
- * @return bool
- * @throws \Exception
- */
- public function deleteOrderStatus() : bool
- {
- return $this->delete();
- }
- /**
- * @return Collection
- */
- public function findOrders() : Collection
- {
- return $this->model->orders()->get();
- }
- /**
- * @param string $name
- *
- * @return mixed
- */
- public function findByName(string $name)
- {
- return $this->model->where('name', $name)->first();
- }
- }
|