Skip to content

Commit 8a5f4cd

Browse files
committed
ISSUE-345: refactor swagger
1 parent a553700 commit 8a5f4cd

File tree

4 files changed

+27
-92
lines changed

4 files changed

+27
-92
lines changed

src/Controller/ListController.php

+11-55
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
* @author Xheni Myrtaj <[email protected]>
2727
* @author Tatevik Grigoryan <[email protected]>
2828
*/
29+
#[Route('/lists')]
2930
class ListController extends AbstractController
3031
{
3132
use AuthenticationTrait;
@@ -46,7 +47,7 @@ public function __construct(
4647
$this->serializer = $serializer;
4748
}
4849

49-
#[Route('/lists', name: 'get_lists', methods: ['GET'])]
50+
#[Route('/', name: 'get_lists', methods: ['GET'])]
5051
#[OA\Get(
5152
path: '/lists',
5253
description: 'Returns a JSON list of all subscriber lists.',
@@ -96,16 +97,7 @@ public function __construct(
9697
new OA\Response(
9798
response: 403,
9899
description: 'Failure',
99-
content: new OA\JsonContent(
100-
properties: [
101-
new OA\Property(
102-
property: 'message',
103-
type: 'string',
104-
example: 'No valid session key was provided as basic auth password.'
105-
)
106-
],
107-
type: 'object'
108-
)
100+
content: new OA\JsonContent(ref: '#/components/schemas/UnauthorizedResponse')
109101
)
110102
]
111103
)]
@@ -120,7 +112,7 @@ public function getLists(Request $request): JsonResponse
120112
return new JsonResponse($json, Response::HTTP_OK, [], true);
121113
}
122114

123-
#[Route('/lists/{listId}', name: 'get_list', methods: ['GET'])]
115+
#[Route('/{listId}', name: 'get_list', methods: ['GET'])]
124116
#[OA\Get(
125117
path: '/lists/{listId}',
126118
description: 'Returns a single subscriber list with specified ID.',
@@ -163,16 +155,7 @@ public function getLists(Request $request): JsonResponse
163155
new OA\Response(
164156
response: 403,
165157
description: 'Failure',
166-
content: new OA\JsonContent(
167-
properties: [
168-
new OA\Property(
169-
property: 'message',
170-
type: 'string',
171-
example: 'No valid session key was provided as basic auth password.'
172-
)
173-
],
174-
type: 'object'
175-
)
158+
content: new OA\JsonContent(ref: '#/components/schemas/UnauthorizedResponse')
176159
),
177160
new OA\Response(
178161
response: 404,
@@ -202,7 +185,7 @@ public function getList(
202185
return new JsonResponse($json, Response::HTTP_OK, [], true);
203186
}
204187

205-
#[Route('/lists/{listId}', name: 'delete_list', methods: ['DELETE'])]
188+
#[Route('/{listId}', name: 'delete_list', methods: ['DELETE'])]
206189
#[OA\Delete(
207190
path: '/lists/{listId}',
208191
description: 'Deletes a single subscriber list.',
@@ -232,16 +215,7 @@ public function getList(
232215
new OA\Response(
233216
response: 403,
234217
description: 'Failure',
235-
content: new OA\JsonContent(
236-
properties: [
237-
new OA\Property(
238-
property: 'message',
239-
type: 'string',
240-
example: 'No valid session key was provided.'
241-
)
242-
],
243-
type: 'object'
244-
)
218+
content: new OA\JsonContent(ref: '#/components/schemas/UnauthorizedResponse')
245219
),
246220
new OA\Response(
247221
response: 404,
@@ -270,7 +244,7 @@ public function deleteList(
270244
return new JsonResponse(null, Response::HTTP_NO_CONTENT, [], false);
271245
}
272246

273-
#[Route('/lists/{listId}/subscribers', name: 'get_subscriber_from_list', methods: ['GET'])]
247+
#[Route('/{listId}/subscribers', name: 'get_subscriber_from_list', methods: ['GET'])]
274248
#[OA\Get(
275249
path: '/lists/{listId}/subscribers',
276250
description: 'Returns a JSON list of all subscribers for a subscriber list.',
@@ -304,16 +278,7 @@ public function deleteList(
304278
new OA\Response(
305279
response: 403,
306280
description: 'Failure',
307-
content: new OA\JsonContent(
308-
properties: [
309-
new OA\Property(
310-
property: 'message',
311-
type: 'string',
312-
example: 'No valid session key was provided as basic auth password.'
313-
)
314-
],
315-
type: 'object'
316-
)
281+
content: new OA\JsonContent(ref: '#/components/schemas/UnauthorizedResponse')
317282
)
318283
]
319284
)]
@@ -332,7 +297,7 @@ public function getListMembers(
332297
return new JsonResponse($json, Response::HTTP_OK, [], true);
333298
}
334299

335-
#[Route('/lists/{listId}/subscribers/count', name: 'get_subscribers_count_from_list', methods: ['GET'])]
300+
#[Route('/{listId}/subscribers/count', name: 'get_subscribers_count_from_list', methods: ['GET'])]
336301
#[OA\Get(
337302
path: '/lists/{listId}/count',
338303
description: 'Returns a count of all subscribers in a given list.',
@@ -362,16 +327,7 @@ public function getListMembers(
362327
new OA\Response(
363328
response: 403,
364329
description: 'Failure',
365-
content: new OA\JsonContent(
366-
properties: [
367-
new OA\Property(
368-
property: 'message',
369-
type: 'string',
370-
example: 'No valid session key was provided as basic auth password.'
371-
)
372-
],
373-
type: 'object'
374-
)
330+
content: new OA\JsonContent(ref: '#/components/schemas/UnauthorizedResponse')
375331
)
376332
]
377333
)]

src/Controller/SessionController.php

+1-9
Original file line numberDiff line numberDiff line change
@@ -136,15 +136,7 @@ public function createSession(
136136
new OA\Response(
137137
response: 403,
138138
description: 'Failure',
139-
content: new OA\JsonContent(
140-
properties: [
141-
new OA\Property(
142-
property: 'message',
143-
type: 'string',
144-
example: 'No valid session key was provided as basic auth password.'
145-
)
146-
]
147-
)
139+
content: new OA\JsonContent(ref: '#/components/schemas/UnauthorizedResponse')
148140
),
149141
new OA\Response(
150142
response: 404,

src/Controller/SubscriberController.php

+4-28
Original file line numberDiff line numberDiff line change
@@ -76,15 +76,7 @@ public function __construct(Authentication $authentication, SubscriberManager $s
7676
new OA\Response(
7777
response: 403,
7878
description: 'Failure',
79-
content: new OA\JsonContent(
80-
properties: [
81-
new OA\Property(
82-
property: 'message',
83-
type: 'string',
84-
example: 'No valid session key was provided as basic auth password.'
85-
)
86-
]
87-
)
79+
content: new OA\JsonContent(ref: '#/components/schemas/UnauthorizedResponse')
8880
),
8981
new OA\Response(
9082
response: 409,
@@ -176,23 +168,15 @@ public function createSubscriber(
176168
new OA\Response(
177169
response: 403,
178170
description: 'Failure',
179-
content: new OA\JsonContent(
180-
properties: [
181-
new OA\Property(
182-
property: 'message',
183-
type: 'string',
184-
example: 'No valid session key was provided as basic auth password.'
185-
)
186-
]
187-
)
171+
content: new OA\JsonContent(ref: '#/components/schemas/UnauthorizedResponse')
188172
),
189173
new OA\Response(
190174
response: 404,
191175
description: 'Not Found',
192176
)
193177
]
194178
)]
195-
public function update(
179+
public function updateSubscriber(
196180
Request $request,
197181
#[MapEntity(mapping: ['subscriberId' => 'id'])] Subscriber $subscriber,
198182
SerializerInterface $serializer,
@@ -246,15 +230,7 @@ public function update(
246230
new OA\Response(
247231
response: 403,
248232
description: 'Failure',
249-
content: new OA\JsonContent(
250-
properties: [
251-
new OA\Property(
252-
property: 'message',
253-
type: 'string',
254-
example: 'No valid session key was provided as basic auth password.'
255-
)
256-
]
257-
)
233+
content: new OA\JsonContent(ref: '#/components/schemas/UnauthorizedResponse')
258234
),
259235
new OA\Response(
260236
response: 404,

src/OpenApi/SwaggerSchemas.php

+11
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,17 @@
4747
],
4848
type: 'object'
4949
)]
50+
#[OA\Schema(
51+
schema: 'UnauthorizedResponse',
52+
properties: [
53+
new OA\Property(
54+
property: 'message',
55+
type: 'string',
56+
example: 'No valid session key was provided as basic auth password.'
57+
)
58+
],
59+
type: 'object'
60+
)]
5061
class SwaggerSchemas
5162
{
5263
}

0 commit comments

Comments
 (0)