@@ -251,4 +251,63 @@ public function getSubscriber(Request $request, int $subscriberId, SubscriberNor
251251 false
252252 );
253253 }
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+ }
254313}
0 commit comments