6 declare(strict_types=1);
13 use Magento\Framework\Validation\ValidationResultFactory;
45 private $objectManager;
50 private $snakeToCamelCaseConverter;
55 private $validationResultFactory;
65 ValidationResultFactory $validationResultFactory
68 $this->snakeToCamelCaseConverter = $snakeToCamelCaseConverter;
69 $this->validationResultFactory = $validationResultFactory;
77 $this->stockId = $stockId;
95 $this->quantity = $quantity;
104 $this->metadata = $metadata;
114 $validationResult = $this->validate();
115 if (!$validationResult->isValid()) {
128 $reservation = $this->objectManager->create(ReservationInterface::class,
$arguments);
138 private function validate()
142 if (
null === $this->stockId) {
146 if (
null === $this->sku ||
'' === trim($this->sku)) {
150 if (
null === $this->quantity) {
154 return $this->validationResultFactory->create([
'errors' =>
$errors]);
161 private function reset()
163 $this->stockId =
null;
165 $this->quantity =
null;
166 $this->metadata =
null;
176 private function convertArrayKeysFromSnakeToCamelCase(array $array): array
178 $convertedArrayKeys = $this->snakeToCamelCaseConverter->convert(array_keys($array));
179 return array_combine($convertedArrayKeys, array_values($array));
setQuantity(float $quantity)
setMetadata(string $metadata=null)
__construct(ObjectManagerInterface $objectManager, SnakeToCamelCaseConverter $snakeToCamelCaseConverter, ValidationResultFactory $validationResultFactory)