Skip to content

Commit 4f67858

Browse files
committed
ISSUE-345: delete message endpoint
1 parent 9658f64 commit 4f67858

File tree

4 files changed

+71
-10
lines changed

4 files changed

+71
-10
lines changed

src/Controller/CampaignController.php

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,4 +280,57 @@ public function updateMessage(
280280
Response::HTTP_OK
281281
);
282282
}
283+
284+
#[Route('/{messageId}', name: 'delete_campaign', methods: ['DELETE'])]
285+
#[OA\Delete(
286+
path: '/campaigns/{messageId}',
287+
description: 'Delete campaign/message by id.',
288+
summary: 'Delete campaign by id.',
289+
tags: ['campaigns'],
290+
parameters: [
291+
new OA\Parameter(
292+
name: 'session',
293+
description: 'Session ID obtained from authentication',
294+
in: 'header',
295+
required: true,
296+
schema: new OA\Schema(
297+
type: 'string'
298+
)
299+
),
300+
new OA\Parameter(
301+
name: 'messageId',
302+
description: 'message ID',
303+
in: 'path',
304+
required: true,
305+
schema: new OA\Schema(type: 'string')
306+
)
307+
],
308+
responses: [
309+
new OA\Response(
310+
response: 200,
311+
description: 'Success',
312+
content: new OA\JsonContent(ref: '#/components/schemas/Message')
313+
),
314+
new OA\Response(
315+
response: 403,
316+
description: 'Failure',
317+
content: new OA\JsonContent(ref: '#/components/schemas/UnauthorizedResponse')
318+
),
319+
new OA\Response(
320+
response: 404,
321+
description: 'Failure',
322+
content: new OA\JsonContent(ref: '#/components/schemas/NotFoundErrorResponse')
323+
)
324+
]
325+
)]
326+
public function deleteMessage(
327+
Request $request,
328+
#[MapEntity(mapping: ['messageId' => 'id'])] Message $message
329+
): JsonResponse {
330+
$this->requireAuthentication($request);
331+
332+
$this->messageManager->delete($message);
333+
334+
return new JsonResponse(null, Response::HTTP_NO_CONTENT);
335+
}
283336
}

src/Controller/ListController.php

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -218,16 +218,7 @@ public function getList(
218218
new OA\Response(
219219
response: 404,
220220
description: 'Failure',
221-
content: new OA\JsonContent(
222-
properties: [
223-
new OA\Property(
224-
property: 'message',
225-
type: 'string',
226-
example: 'There is no session with that ID.'
227-
)
228-
],
229-
type: 'object'
230-
)
221+
content: new OA\JsonContent(ref: '#/components/schemas/NotFoundErrorResponse')
231222
)
232223
]
233224
)]

src/OpenApi/SwaggerSchemasResponse.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,18 @@
5050
],
5151
type: 'object'
5252
)]
53+
#[OA\Schema(
54+
schema: 'NotFoundErrorResponse',
55+
required: ['message'],
56+
properties: [
57+
new OA\Property(
58+
property: 'message',
59+
type: 'string',
60+
example: 'There is no entity with that ID.'
61+
),
62+
],
63+
type: 'object'
64+
)]
5365
class SwaggerSchemasResponse
5466
{
5567
}

src/Service/Manager/MessageManager.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,9 @@ public function updateMessage(
4343

4444
return $message;
4545
}
46+
47+
public function delete(Message $message): void
48+
{
49+
$this->messageRepository->remove($message);
50+
}
4651
}

0 commit comments

Comments
 (0)