44
55namespace PhpList \RestBundle \Subscription \Controller ;
66
7+ use Doctrine \ORM \EntityManagerInterface ;
78use OpenApi \Attributes as OA ;
89use PhpList \Core \Domain \Subscription \Model \SubscriberList ;
910use PhpList \Core \Domain \Subscription \Service \Manager \SubscriptionManager ;
@@ -28,16 +29,19 @@ class SubscriptionController extends BaseController
2829{
2930 private SubscriptionManager $ subscriptionManager ;
3031 private SubscriptionNormalizer $ subscriptionNormalizer ;
32+ private EntityManagerInterface $ entityManager ;
3133
3234 public function __construct (
3335 Authentication $ authentication ,
3436 RequestValidator $ validator ,
3537 SubscriptionManager $ subscriptionManager ,
3638 SubscriptionNormalizer $ subscriptionNormalizer ,
39+ EntityManagerInterface $ entityManager ,
3740 ) {
3841 parent ::__construct ($ authentication , $ validator );
3942 $ this ->subscriptionManager = $ subscriptionManager ;
4043 $ this ->subscriptionNormalizer = $ subscriptionNormalizer ;
44+ $ this ->entityManager = $ entityManager ;
4145 }
4246
4347 #[Route('/{listId}/subscribers ' , name: 'create ' , requirements: ['listId ' => '\d+ ' ], methods: ['POST ' ])]
@@ -127,6 +131,7 @@ public function createSubscription(
127131 /** @var SubscriptionRequest $subscriptionRequest */
128132 $ subscriptionRequest = $ this ->validator ->validate ($ request , SubscriptionRequest::class);
129133 $ subscriptions = $ this ->subscriptionManager ->createSubscriptions ($ list , $ subscriptionRequest ->emails );
134+ $ this ->entityManager ->flush ();
130135 $ normalized = array_map (fn ($ item ) => $ this ->subscriptionNormalizer ->normalize ($ item ), $ subscriptions );
131136
132137 return $ this ->json ($ normalized , Response::HTTP_CREATED );
@@ -193,6 +198,7 @@ public function deleteSubscriptions(
193198 /** @var SubscriptionRequest $subscriptionRequest */
194199 $ subscriptionRequest = $ this ->validator ->validateDto ($ subscriptionRequest );
195200 $ this ->subscriptionManager ->deleteSubscriptions ($ list , $ subscriptionRequest ->emails );
201+ $ this ->entityManager ->flush ();
196202
197203 return $ this ->json (null , Response::HTTP_NO_CONTENT );
198204 }
0 commit comments