Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
PayloadValidator.php
Go to the documentation of this file.
1 <?php
7 namespace Magento\Setup\Model;
8 
13 {
17  private $moduleList;
18 
22  public function __construct(\Magento\Framework\Module\FullModuleList $moduleList)
23  {
24  $this->moduleList = $moduleList;
25  }
26 
33  public function validatePayload(array $postPayload)
34  {
35  $jobType = $postPayload[UpdaterTaskCreator::KEY_POST_JOB_TYPE];
36  $errorMessage = '';
37  switch ($jobType) {
38  case 'uninstall':
39  $errorMessage = $this->validateUninstallPayload($postPayload);
40  break;
41 
42  case 'update':
43  $errorMessage = $this->validateUpdatePayload($postPayload);
44  break;
45 
46  case 'enable':
47  case 'disable':
48  $errorMessage = $this->validateEnableDisablePayload($postPayload);
49  break;
50  }
51  return $errorMessage;
52  }
53 
60  private function validateUninstallPayload(array $postPayload)
61  {
62  $errorMessage = '';
63  if (!isset($postPayload[UpdaterTaskCreator::KEY_POST_DATA_OPTION])) {
64  $errorMessage = 'Missing dataOption' . PHP_EOL;
65  }
66  return $errorMessage;
67  }
68 
75  private function validateUpdatePayload(array $postPayload)
76  {
77  $errorMessage = '';
78  if (!isset($postPayload[UpdaterTaskCreator::KEY_POST_PACKAGES])) {
79  $errorMessage = 'Missing packages' . PHP_EOL;
80  } else {
81  $packages = $postPayload[UpdaterTaskCreator::KEY_POST_PACKAGES];
82  foreach ($packages as $package) {
83  if ((!isset($package[UpdaterTaskCreator::KEY_POST_PACKAGE_NAME]))
85  ) {
86  $errorMessage .= 'Missing package information' . PHP_EOL;
87  break;
88  }
89  }
90  }
91  return $errorMessage;
92  }
93 
100  private function validateEnableDisablePayload(array $postPayload)
101  {
102  $errorMessage = '';
103  if (!isset($postPayload[UpdaterTaskCreator::KEY_POST_PACKAGES])) {
104  $errorMessage = 'Missing packages' . PHP_EOL;
105  } else {
106  $packages = $postPayload[UpdaterTaskCreator::KEY_POST_PACKAGES];
107  foreach ($packages as $package) {
108  if (!$this->moduleList->has($package[UpdaterTaskCreator::KEY_POST_PACKAGE_NAME])) {
109  $errorMessage .= 'Invalid Magento module name: '
110  . $package[UpdaterTaskCreator::KEY_POST_PACKAGE_NAME] . PHP_EOL;
111  break;
112  }
113  }
114  }
115  return $errorMessage;
116  }
117 }
__construct(\Magento\Framework\Module\FullModuleList $moduleList)