Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AppendReservations.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
15 use Psr\Log\LoggerInterface;
16 
21 {
25  private $saveMultiple;
26 
30  private $logger;
31 
36  public function __construct(
37  SaveMultiple $saveMultiple,
38  LoggerInterface $logger
39  ) {
40  $this->saveMultiple = $saveMultiple;
41  $this->logger = $logger;
42  }
43 
47  public function execute(array $reservations): void
48  {
49  if (empty($reservations)) {
50  throw new InputException(__('Input data is empty'));
51  }
52 
54  foreach ($reservations as $reservation) {
55  if (null !== $reservation->getReservationId()) {
56  $message = __(
57  'Cannot update Reservation %reservation',
58  ['reservation' => $reservation->getReservationId()]
59  );
60  $this->logger->error($message);
61  throw new InputException($message);
62  }
63  }
64  try {
65  $this->saveMultiple->execute($reservations);
66  } catch (\Exception $e) {
67  $this->logger->error($e->getMessage());
68  throw new CouldNotSaveException(__('Could not append Reservation'), $e);
69  }
70  }
71 }
__()
Definition: __.php:13
$message
$logger
__construct(SaveMultiple $saveMultiple, LoggerInterface $logger)