@@ -251,4 +251,63 @@ public function getSubscriber(Request $request, int $subscriberId, SubscriberNor
251
251
false
252
252
);
253
253
}
254
+
255
+
256
+ #[Route('/{subscriberId} ' , name: 'delete_subscriber ' , requirements: ['subscriberId ' => '\d+ ' ], methods: ['DELETE ' ])]
257
+ #[OA \Delete(
258
+ path: '/subscribers/{subscriberId} ' ,
259
+ description: 'Delete subscriber by id. ' ,
260
+ summary: 'Delete subscriber ' ,
261
+ requestBody: new OA \RequestBody (
262
+ description: 'Pass session credentials ' ,
263
+ required: true ,
264
+ ),
265
+ tags: ['subscribers ' ],
266
+ parameters: [
267
+ new OA \Parameter (
268
+ name: 'session ' ,
269
+ description: 'Session ID obtained from authentication ' ,
270
+ in: 'header ' ,
271
+ required: true ,
272
+ schema: new OA \Schema (type: 'string ' )
273
+ ),
274
+ new OA \Parameter (
275
+ name: 'subscriberId ' ,
276
+ description: 'Subscriber ID ' ,
277
+ in: 'path ' ,
278
+ required: true ,
279
+ schema: new OA \Schema (type: 'string ' )
280
+ )
281
+ ],
282
+ responses: [
283
+ new OA \Response (
284
+ response: 204 ,
285
+ description: 'Success ' ,
286
+ ),
287
+ new OA \Response (
288
+ response: 403 ,
289
+ description: 'Failure ' ,
290
+ content: new OA \JsonContent (ref: '#/components/schemas/UnauthorizedResponse ' )
291
+ ),
292
+ new OA \Response (
293
+ response: 404 ,
294
+ description: 'Not Found ' ,
295
+ )
296
+ ]
297
+ )]
298
+ public function deleteSubscriber (
299
+ Request $ request ,
300
+ #[MapEntity(mapping: ['subscriberId ' => 'id ' ])] Subscriber $ subscriber ,
301
+ ): JsonResponse {
302
+ $ this ->requireAuthentication ($ request );
303
+
304
+ $ this ->subscriberManager ->deleteSubscriber ($ subscriber );
305
+
306
+ return new JsonResponse (
307
+ null ,
308
+ Response::HTTP_NO_CONTENT ,
309
+ [],
310
+ false
311
+ );
312
+ }
254
313
}
0 commit comments