Skip to content

Commit

Permalink
[chain] Relocate metadata validation to processMetadata. (#323)
Browse files Browse the repository at this point in the history
  • Loading branch information
jmolivas committed Feb 18, 2018
1 parent e3bed22 commit 162e970
Showing 1 changed file with 37 additions and 14 deletions.
51 changes: 37 additions & 14 deletions src/Utils/ChainDiscovery.php
Original file line number Diff line number Diff line change
Expand Up @@ -193,18 +193,13 @@ public function getChainCommands()
foreach ($files as $file) {
$chainMetadata = $this->getFileMetadata($file);

$chain = Yaml::parse($chainMetadata);
if (!$chain || !array_key_exists('command', $chain)) {
if (!$chainMetadata) {
continue;
}
if (!is_array($chain['command']) || !array_key_exists('name', $chain['command'])) {
continue;
}
$name = $chain['command']['name'];
$description = '';
if (is_array($chain['command']) && array_key_exists('description', $chain['command'])) {
$description = $chain['command']['description'];
}

$name = $chainMetadata['command']['name'];
$description = $chainMetadata['command']['description'];

$chainCommands[$name] = [
'description' => $description,
'file' => $file,
Expand Down Expand Up @@ -287,15 +282,43 @@ public function getFileMetadata($file)
$line = strtok(PHP_EOL);
}

if (!$metadata) {
$chainMetadata = $this->processMetadata($metadata);

if (!$chainMetadata) {
$this->files[$file]['messages'][] = $this->translatorManager
->trans('commands.chain.messages.metadata-registration');
return '';
return [];
}

$this->files[$file]['metadata'] = $metadata;
$this->files[$file]['metadata'] = $chainMetadata;

return $chainMetadata;
}

private function processMetadata($metadata) {
if (!$metadata) {
return [];
}

$chainMetadata = Yaml::parse($metadata);

if (!$chainMetadata || !is_array($chainMetadata)) {
return [];
}

if (!array_key_exists('command', $chainMetadata) || !is_array($chainMetadata['command'])) {
return [];
}

if (!array_key_exists('name', $chainMetadata['command'])) {
return [];
}

if (!array_key_exists('description', $chainMetadata['command'])) {
$chainMetadata['command']['description'] = '';
}

return $metadata;
return $chainMetadata;
}

/**
Expand Down

0 comments on commit 162e970

Please sign in to comment.