Passed
Branch main (b0ee7b)
by Gaetano
09:00
created

JsonDefinitionParser::parseMigrationDefinition()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 16
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 11
c 1
b 0
f 0
nc 2
nop 1
dl 0
loc 16
rs 9.9
1
<?php
2
3
namespace Kaliop\eZWorkflowEngineBundle\Core\DefinitionParser;
4
5
use Kaliop\eZMigrationBundle\API\Value\MigrationDefinition;
6
use Kaliop\eZMigrationBundle\API\DefinitionParserInterface;
7
use Kaliop\eZWorkflowEngineBundle\API\Value\WorkflowDefinition;
8
9
class JsonDefinitionParser extends AbstractDefinitionParser implements DefinitionParserInterface
10
{
11
    public function supports($migrationName)
12
    {
13
        $ext = pathinfo($migrationName, PATHINFO_EXTENSION);
14
        return  $ext == 'json';
15
    }
16
17
    /**
18
     * Parses a workflow definition file, and returns the list of actions to take
19
     *
20
     * @param MigrationDefinition $definition
21
     * @return WorkflowDefinition
22
     */
23
    public function parseMigrationDefinition(MigrationDefinition $definition)
24
    {
25
        try {
26
            $data = json_decode($definition->rawDefinition, true);
27
        } catch (\Exception $e) {
28
            return new WorkflowDefinition(
29
                $definition->name,
30
                $definition->path,
31
                $definition->rawDefinition,
32
                MigrationDefinition::STATUS_INVALID,
33
                array(),
34
                $e->getMessage()
35
            );
36
        }
37
38
        return $this->parseMigrationDefinitionData($data, $definition, 'Json');
39
    }
40
}