Skip to content

Commit dc3ff0b

Browse files
committed
ISSUE-345: delete subscriber endpoint
1 parent 8a5f4cd commit dc3ff0b

File tree

2 files changed

+64
-0
lines changed

2 files changed

+64
-0
lines changed

src/Controller/SubscriberController.php

+59
Original file line numberDiff line numberDiff line change
@@ -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
}

src/Service/Manager/SubscriberManager.php

+5
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,9 @@ public function updateSubscriber(UpdateSubscriberRequest $subscriberRequest): Su
6464

6565
return $subscriber;
6666
}
67+
68+
public function deleteSubscriber(Subscriber $subscriber): void
69+
{
70+
$this->subscriberRepository->remove($subscriber);
71+
}
6772
}

0 commit comments

Comments
 (0)