|
4 | 4 |
|
5 | 5 | namespace PhpList\RestBundle\Messaging\Controller; |
6 | 6 |
|
| 7 | +use Doctrine\ORM\EntityManagerInterface; |
7 | 8 | use OpenApi\Attributes as OA; |
| 9 | +use PhpList\Core\Domain\Messaging\Message\SyncCampaignProcessorMessage; |
8 | 10 | use PhpList\Core\Domain\Messaging\Model\Message; |
9 | | -use PhpList\Core\Domain\Messaging\Service\Processor\CampaignProcessor; |
10 | 11 | use PhpList\Core\Security\Authentication; |
11 | 12 | use PhpList\RestBundle\Common\Controller\BaseController; |
12 | 13 | use PhpList\RestBundle\Common\Validator\RequestValidator; |
|
17 | 18 | use Symfony\Component\HttpFoundation\JsonResponse; |
18 | 19 | use Symfony\Component\HttpFoundation\Request; |
19 | 20 | use Symfony\Component\HttpFoundation\Response; |
| 21 | +use Symfony\Component\Messenger\MessageBusInterface; |
20 | 22 | use Symfony\Component\Routing\Attribute\Route; |
21 | 23 |
|
22 | 24 | /** |
|
28 | 30 | class CampaignController extends BaseController |
29 | 31 | { |
30 | 32 | private CampaignService $campaignService; |
31 | | - private CampaignProcessor $campaignProcessor; |
| 33 | + private MessageBusInterface $messageBus; |
32 | 34 |
|
33 | 35 | public function __construct( |
34 | 36 | Authentication $authentication, |
35 | 37 | RequestValidator $validator, |
36 | 38 | CampaignService $campaignService, |
37 | | - CampaignProcessor $campaignProcessor, |
| 39 | + MessageBusInterface $messageBus, |
| 40 | + private readonly EntityManagerInterface $entityManager, |
38 | 41 | ) { |
39 | 42 | parent::__construct($authentication, $validator); |
40 | 43 | $this->campaignService = $campaignService; |
41 | | - $this->campaignProcessor = $campaignProcessor; |
| 44 | + $this->messageBus = $messageBus; |
42 | 45 | } |
43 | 46 |
|
44 | 47 | #[Route('', name: 'get_list', methods: ['GET'])] |
@@ -211,11 +214,10 @@ public function createMessage(Request $request): JsonResponse |
211 | 214 |
|
212 | 215 | /** @var CreateMessageRequest $createMessageRequest */ |
213 | 216 | $createMessageRequest = $this->validator->validate($request, CreateMessageRequest::class); |
| 217 | + $message = $this->campaignService->createMessage($createMessageRequest, $authUser); |
| 218 | + $this->entityManager->flush(); |
214 | 219 |
|
215 | | - return $this->json( |
216 | | - $this->campaignService->createMessage($createMessageRequest, $authUser), |
217 | | - Response::HTTP_CREATED |
218 | | - ); |
| 220 | + return $this->json(data: $message, status: Response::HTTP_CREATED); |
219 | 221 | } |
220 | 222 |
|
221 | 223 | #[Route('/{messageId}', name: 'update', requirements: ['messageId' => '\d+'], methods: ['PUT'])] |
@@ -284,11 +286,10 @@ public function updateMessage( |
284 | 286 |
|
285 | 287 | /** @var UpdateMessageRequest $updateMessageRequest */ |
286 | 288 | $updateMessageRequest = $this->validator->validate($request, UpdateMessageRequest::class); |
| 289 | + $message = $this->campaignService->updateMessage($updateMessageRequest, $authUser, $message); |
| 290 | + $this->entityManager->flush(); |
287 | 291 |
|
288 | | - return $this->json( |
289 | | - $this->campaignService->updateMessage($updateMessageRequest, $authUser, $message), |
290 | | - Response::HTTP_OK |
291 | | - ); |
| 292 | + return $this->json(data:$message, status: Response::HTTP_OK); |
292 | 293 | } |
293 | 294 |
|
294 | 295 | #[Route('/{messageId}', name: 'delete', requirements: ['messageId' => '\d+'], methods: ['DELETE'])] |
@@ -339,6 +340,7 @@ public function deleteMessage( |
339 | 340 | $authUser = $this->requireAuthentication($request); |
340 | 341 |
|
341 | 342 | $this->campaignService->deleteMessage($authUser, $message); |
| 343 | + $this->entityManager->flush(); |
342 | 344 |
|
343 | 345 | return $this->json(null, Response::HTTP_NO_CONTENT); |
344 | 346 | } |
@@ -388,7 +390,7 @@ public function sendMessage( |
388 | 390 | throw $this->createNotFoundException('Campaign not found.'); |
389 | 391 | } |
390 | 392 |
|
391 | | - $this->campaignProcessor->process($message); |
| 393 | + $this->messageBus->dispatch(new SyncCampaignProcessorMessage($message->getId())); |
392 | 394 |
|
393 | 395 | return $this->json($this->campaignService->getMessage($message), Response::HTTP_OK); |
394 | 396 | } |
|
0 commit comments