SeedConfig   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 4

Importance

Changes 0
Metric Value
wmc 4
lcom 0
cbo 4
dl 0
loc 34
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A modify() 0 31 4
1
<?php
2
3
namespace Scheduler\Web\Radar\Config;
4
5
use Aura\Di\Container;
6
use Aura\Di\ContainerConfig;
7
use Aura\Payload\Payload;
8
use Symfony\Component\Yaml\Parser;
9
10
class SeedConfig extends ContainerConfig
11
{
12
    public function modify(Container $di)
13
    {
14
        $adr = $di->get('radar/adr:adr');
15
16
        // For demonstration purposes, seed database using test fixtures
17
        $adr->get('seed', "/seed", function () use ($di) {
18
            $payload = new Payload();
19
20
            $di->get('db.schema')->drop();
21
            $di->get('db.schema')->create();
22
23
            $yaml = new Parser();
24
            $yamlFile = __DIR__ . "/../../../../tests/Infrastructure/DBAL/fixtures.yml";
25
            $fixtures = $yaml->parse(file_get_contents($yamlFile));
26
27
            if (! is_array($fixtures)) {
28
                throw new RuntimeException("Could not parse fixtures file");
29
            }
30
31
            foreach ($fixtures as $table => $rows) {
32
                foreach ($rows as $row) {
33
                    $di->get('db.connection')->insert($table, $row);
34
                }
35
            }
36
37
            $payload->setStatus($payload::SUCCESS);
38
            $payload->setOutput(["message" => "Database seeded"]);
39
40
            return $payload;
41
        });
42
    }
43
}
44