API Base App
This commit is contained in:
27
api/setup/setups/01_emails.php
Normal file
27
api/setup/setups/01_emails.php
Normal file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
use Psr\Container\ContainerInterface;
|
||||
|
||||
return [
|
||||
Ddeboer\Imap\ServerInterface::class => function(ContainerInterface $container) {
|
||||
$emails = $container->get('emails');
|
||||
if (isset($emails->port)) {
|
||||
return new \Ddeboer\Imap\Server($emails->host, $emails->port);
|
||||
}
|
||||
return new \Ddeboer\Imap\Server($emails->host);
|
||||
},
|
||||
\Ddeboer\Imap\ConnectionInterface::class => function(ContainerInterface $container) {
|
||||
$emails = $container->get('emails');
|
||||
$server = $container->get(\Ddeboer\Imap\ServerInterface::class);
|
||||
return $server->authenticate($emails->username, $emails->password);
|
||||
},
|
||||
PDO::class => function(ContainerInterface $container) {
|
||||
$database = $container->get('database');
|
||||
$dsn = ["mysql:host={$database->host}"];
|
||||
if (isset($database->port)) {
|
||||
$dsn []= "port={$database->port}";
|
||||
}
|
||||
$dsn []= "dbname={$database->name}";
|
||||
$dsn = implode(';', $dsn);
|
||||
return new PDO($dsn, $database->username, $database->password);
|
||||
},
|
||||
];
|
40
api/setup/setups/02_services.php
Normal file
40
api/setup/setups/02_services.php
Normal file
@ -0,0 +1,40 @@
|
||||
<?php
|
||||
use Psr\Container\ContainerInterface;
|
||||
|
||||
return [
|
||||
\ProVM\Common\Service\Mailboxes::class => function(ContainerInterface $container) {
|
||||
return (new \ProVM\Common\Service\Mailboxes(
|
||||
$container->get(\Ddeboer\Imap\ConnectionInterface::class),
|
||||
$container->get('emails')->folder,
|
||||
$container->get('emails')->username
|
||||
))->setLogger($container->get(\Psr\Log\LoggerInterface::class));
|
||||
},
|
||||
\ProVM\Common\Service\Emails::class => function(ContainerInterface $container) {
|
||||
return (new \ProVM\Common\Service\Emails(
|
||||
$container->get(\ProVM\Common\Service\Mailboxes::class),
|
||||
$container->get(\ProVM\Emails\Repository\Message::class),
|
||||
$container->get('attachments_folder')
|
||||
))->setLogger($container->get(\Psr\Log\LoggerInterface::class));
|
||||
},
|
||||
\ProVM\Common\Service\Attachments::class => function(ContainerInterface $container) {
|
||||
return new \ProVM\Common\Service\Attachments(
|
||||
$container->get(\ProVM\Common\Service\Decrypt::class),
|
||||
$container->get('attachments_folder')
|
||||
);
|
||||
},
|
||||
\ProVM\Common\Service\Decrypt::class => function(ContainerInterface $container) {
|
||||
return new \ProVM\Common\Service\Decrypt(
|
||||
$container->get(\Psr\Log\LoggerInterface::class),
|
||||
$container->get('base_command'),
|
||||
$container->get('passwords')
|
||||
);
|
||||
},
|
||||
\ProVM\Common\Service\Install::class => function(ContainerInterface $container) {
|
||||
$database = $container->get('database');
|
||||
$pdo = new PDO("mysql:host={$database->host};dbname={$database->name}", $database->username, $database->password);
|
||||
return new \ProVM\Common\Service\Install(
|
||||
$container->get(\Psr\Log\LoggerInterface::class),
|
||||
$pdo
|
||||
);
|
||||
}
|
||||
];
|
12
api/setup/setups/97_auth.php
Normal file
12
api/setup/setups/97_auth.php
Normal file
@ -0,0 +1,12 @@
|
||||
<?php
|
||||
use Psr\Container\ContainerInterface;
|
||||
|
||||
return [
|
||||
\ProVM\Common\Middleware\Auth::class => function(ContainerInterface $container) {
|
||||
return new \ProVM\Common\Middleware\Auth(
|
||||
$container->get(\Nyholm\Psr7\Factory\Psr17Factory::class),
|
||||
$container->get(\Psr\Log\LoggerInterface::class),
|
||||
$container->get('api_key')
|
||||
);
|
||||
}
|
||||
];
|
15
api/setup/setups/98_log.php
Normal file
15
api/setup/setups/98_log.php
Normal file
@ -0,0 +1,15 @@
|
||||
<?php
|
||||
use Psr\Container\ContainerInterface;
|
||||
|
||||
return [
|
||||
\Monolog\Handler\RotatingFileHandler::class => function(ContainerInterface $container) {
|
||||
$handler = new \Monolog\Handler\RotatingFileHandler($container->get('log_file'));
|
||||
$handler->setFormatter($container->get(\Monolog\Formatter\LineFormatter::class));
|
||||
return $handler;
|
||||
},
|
||||
\Psr\Log\LoggerInterface::class => function(ContainerInterface $container) {
|
||||
$logger = new \Monolog\Logger('file_logger');
|
||||
$logger->pushHandler($container->get(\Monolog\Handler\RotatingFileHandler::class));
|
||||
return $logger;
|
||||
}
|
||||
];
|
15
api/setup/setups/99_errors.php
Normal file
15
api/setup/setups/99_errors.php
Normal file
@ -0,0 +1,15 @@
|
||||
<?php
|
||||
use Psr\Container\ContainerInterface;
|
||||
|
||||
return [
|
||||
\Whoops\Handler\JsonResponseHandler::class => function(ContainerInterface $container) {
|
||||
return (new \Whoops\Handler\JsonResponseHandler())
|
||||
->setJsonApi(true)
|
||||
->addTraceToOutput(true);
|
||||
},
|
||||
\Zeuxisoo\Whoops\Slim\WhoopsMiddleware::class => function(ContainerInterface $container) {
|
||||
return new \Zeuxisoo\Whoops\Slim\WhoopsMiddleware([], [
|
||||
$container->get(\Whoops\Handler\JsonResponseHandler::class)
|
||||
]);
|
||||
}
|
||||
];
|
Reference in New Issue
Block a user