1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace Scheduler\Web\Radar\Config; |
4
|
|
|
|
5
|
|
|
use Aura\Di\Container; |
6
|
|
|
use Aura\Di\ContainerConfig; |
7
|
|
|
use Doctrine\DBAL\DriverManager; |
8
|
|
|
use Scheduler\Domain\Model\Shift\HoursWorkedCalculator; |
9
|
|
|
use Scheduler\Domain\Model\Shift\ShiftCoworkersFinder; |
10
|
|
|
use Scheduler\Domain\Model\Shift\ShiftMapper; |
11
|
|
|
use Scheduler\Domain\Model\User\UserMapper; |
12
|
|
|
use Scheduler\Domain\Model\User\InMemoryAuthenticator; |
13
|
|
|
use Scheduler\Infrastructure\DBAL; |
14
|
|
|
use Scheduler\Web\Resource\HoursWorkedSummaryResource; |
15
|
|
|
use Scheduler\Web\Resource\ShiftResource; |
16
|
|
|
use Scheduler\Web\Resource\UserResource; |
17
|
|
|
|
18
|
|
|
class ServiceConfig extends ContainerConfig |
19
|
|
|
{ |
20
|
|
|
public function define(Container $di) |
21
|
|
|
{ |
22
|
|
|
$di->set('db.connection', $di->lazy( |
23
|
|
|
[DriverManager::class, 'getConnection'], |
24
|
|
|
[ |
25
|
|
|
'dbname' => getenv('DB_NAME'), |
26
|
|
|
'user' => getenv('DB_USER'), |
27
|
|
|
'password' => getenv('DB_PASSWORD'), |
28
|
|
|
'host' => getenv('DB_HOST'), |
29
|
|
|
'port' => getenv('DB_PORT'), |
30
|
|
|
'driver' => getenv('DB_DRIVER'), |
31
|
|
|
] |
32
|
|
|
)); |
33
|
|
|
|
34
|
|
|
$di->set('db.schema', $di->lazyNew(DBAL\DbalSchema::class)); |
35
|
|
|
$di->params[DBAL\DbalSchema::class]['connection'] = $di->lazyGet('db.connection'); |
36
|
|
|
|
37
|
|
|
$di->set("user.mapper", $di->lazyNew(DBAL\DbalUserMapper::class)); |
38
|
|
|
$di->params[DBAL\DbalUserMapper::class]['db'] = $di->lazyGet('db.connection'); |
39
|
|
|
|
40
|
|
|
$di->set("shift.mapper", $di->lazyNew(DBAL\DbalShiftMapper::class)); |
41
|
|
|
$di->params[DBAL\DbalShiftMapper::class]['db'] = $di->lazyGet('db.connection'); |
42
|
|
|
$di->params[DBAL\DbalShiftMapper::class]['userMapper'] = $di->lazyGet("user.mapper"); |
43
|
|
|
|
44
|
|
|
$di->set("user.authenticator", $di->lazyNew(InMemoryAuthenticator::class)); |
45
|
|
|
$di->params[InMemoryAuthenticator::class]["userMapper"] = $di->lazyGet("user.mapper"); |
46
|
|
|
$di->params[InMemoryAuthenticator::class]["tokenMap"] = [ |
47
|
|
|
"i_am_a_manager" => 1, |
48
|
|
|
"i_am_an_employee" => 2, |
49
|
|
|
"i_am_shelly" => 3 |
50
|
|
|
]; |
51
|
|
|
|
52
|
|
|
$di->set("shift.resource", $di->lazyNew(ShiftResource::class)); |
53
|
|
|
$di->params[ShiftResource::class]["userResource"] = $di->lazyGet("user.resource"); |
54
|
|
|
|
55
|
|
|
$di->set("user.resource", $di->lazyNew(UserResource::class)); |
56
|
|
|
|
57
|
|
|
$di->set("summary.resource", $di->lazyNew(HoursWorkedSummaryResource::class)); |
58
|
|
|
|
59
|
|
|
$di->set("hours.calculator", $di->lazyNew(HoursWorkedCalculator::class)); |
60
|
|
|
$di->params[HoursWorkedCalculator::class]["shiftMapper"] = $di->lazyGet("shift.mapper"); |
61
|
|
|
|
62
|
|
|
$di->set("shift.coworkers.finder", $di->lazyNew(ShiftCoworkersFinder::class)); |
63
|
|
|
$di->params[ShiftCoworkersFinder::class]["shiftMapper"] = $di->lazyGet("shift.mapper"); |
64
|
|
|
} |
65
|
|
|
} |
66
|
|
|
|