| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- <?php
- /**
- * This file is part of the Klarna Core module
- *
- * (c) Klarna Bank AB (publ)
- *
- * For the full copyright and license information, please view the NOTICE
- * and LICENSE files that were distributed with this source code.
- */
- namespace Klarna\Core\Model;
- use Klarna\Core\Api\OrderInterface;
- use Klarna\Core\Api\OrderRepositoryInterface;
- use Klarna\Core\Model\ResourceModel\Order as OrderResource;
- use Magento\Framework\Exception\CouldNotSaveException;
- use Magento\Framework\Exception\NoSuchEntityException;
- use Magento\Sales\Api\Data\OrderInterface as MageOrder;
- /**
- * Class OrderRepository
- *
- * @package Klarna\Core\Model
- */
- class OrderRepository implements OrderRepositoryInterface
- {
- /**
- * Order factory
- *
- * @var OrderFactory
- */
- private $orderFactory;
- /**
- * Resource model
- *
- * @var OrderResource
- */
- private $resourceModel;
- /**
- * OrderRepository constructor.
- *
- * @param OrderFactory $orderFactory
- * @param OrderResource $resourceModel
- *
- * @codeCoverageIgnore
- */
- public function __construct(
- OrderFactory $orderFactory,
- OrderResource $resourceModel
- ) {
- $this->orderFactory = $orderFactory;
- $this->resourceModel = $resourceModel;
- }
- /**
- * {@inheritdoc}
- */
- public function save(OrderInterface $order)
- {
- try {
- $this->resourceModel->save($order);
- } catch (\Exception $e) {
- throw new CouldNotSaveException(__($e->getMessage()));
- }
- return $order;
- }
- /**
- * {@inheritdoc}
- */
- public function getByKlarnaOrderId($klarnaOrderId)
- {
- $order = $this->orderFactory->create();
- $orderId = $this->resourceModel->getIdByKlarnaOrderId($klarnaOrderId);
- if (!$orderId) {
- $order->setKlarnaOrderId($klarnaOrderId);
- return $order;
- }
- $this->resourceModel->load($order, $orderId);
- return $order;
- }
- /**
- * {@inheritdoc}
- */
- public function getByOrder(MageOrder $mageOrder)
- {
- $order = $this->orderFactory->create();
- $orderId = $this->resourceModel->getIdByOrder($mageOrder);
- if (!$orderId) {
- throw new NoSuchEntityException(__('Requested order doesn\'t exist'));
- }
- $this->resourceModel->load($order, $orderId);
- return $order;
- }
- /**
- * {@inheritdoc}
- */
- public function getById($id)
- {
- $order = $this->orderFactory->create();
- $this->resourceModel->load($order, $id);
- if (!$order->getId()) {
- throw new NoSuchEntityException(__('Order with id "%1" does not exist.', $id));
- }
- return $order;
- }
- /**
- * {@inheritdoc}
- */
- public function getByReservationId($reservationId)
- {
- $order = $this->orderFactory->create();
- $orderId = $this->resourceModel->getIdByReservationId($reservationId);
- if (!$orderId) {
- throw new NoSuchEntityException(__('Order with Reservation ID "%1" does not exist.', $reservationId));
- }
- $this->resourceModel->load($order, $orderId);
- return $order;
- }
- /**
- * {@inheritdoc}
- */
- public function getBySessionId($sessionId)
- {
- $order = $this->orderFactory->create();
- $orderId = $this->resourceModel->getIdBySessionId($sessionId);
- if (!$orderId) {
- throw new NoSuchEntityException(__('Order with session_id "%1" does not exist.', $sessionId));
- }
- $this->resourceModel->load($order, $orderId);
- return $order;
- }
- }
|