-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Expand file tree
/
Copy pathCoursesPutController.php
More file actions
39 lines (29 loc) · 1.02 KB
/
CoursesPutController.php
File metadata and controls
39 lines (29 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
declare(strict_types=1);
namespace CodelyTv\Apps\Mooc\Backend\Controller\Courses;
use CodelyTv\Mooc\Courses\Application\Create\CreateCourseCommand;
use CodelyTv\Shared\Infrastructure\Logger\MonologLogger;
use CodelyTv\Shared\Infrastructure\Symfony\ApiController;
use Monolog\Logger;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
final class CoursesPutController extends ApiController
{
public function __invoke(string $id, Request $request, Logger $logger): Response
{
$this->dispatch(
new CreateCourseCommand(
$id,
$request->request->getAlpha('name'),
$request->request->getAlpha('duration')
)
);
$loggerMessage = new MonologLogger($logger);
$loggerMessage->info('Created Course: '.$request->request->getAlpha('name'), 'info');
return new Response('', Response::HTTP_CREATED);
}
protected function exceptions(): array
{
return [];
}
}