Skip to content

Commit 3793938

Browse files
committed
Mod toggle responses.
1 parent f4003a6 commit 3793938

File tree

4 files changed

+74
-27
lines changed

4 files changed

+74
-27
lines changed

src/config/docs/TogglesSchema.yml

Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -61,26 +61,42 @@ components:
6161
AddToggleRs:
6262
type: object
6363
properties:
64-
name:
65-
type: string
66-
example: testToggle
67-
enabled:
68-
type: boolean
69-
example: false
70-
description:
71-
type: string
72-
example: This is a toggle description.
64+
addedToggle:
65+
name:
66+
type: string
67+
example: testToggle
68+
enabled:
69+
type: boolean
70+
example: false
71+
description:
72+
type: string
73+
example: This is a toggle description.
7374

7475
UpdateToggleRs:
7576
type: object
7677
properties:
77-
name:
78-
type: string
79-
example: testToggle
80-
enabled:
81-
type: boolean
82-
example: false
83-
description:
84-
type: string
85-
example: This is a toggle description.
78+
updatedToggle:
79+
name:
80+
type: string
81+
example: testToggle
82+
enabled:
83+
type: boolean
84+
example: false
85+
description:
86+
type: string
87+
example: This is a toggle description.
88+
89+
DeleteToggleRs:
90+
type: object
91+
properties:
92+
deletedToggle:
93+
name:
94+
type: string
95+
example: testToggle
96+
enabled:
97+
type: boolean
98+
example: false
99+
description:
100+
type: string
101+
example: This is a toggle description.
86102

src/controllers/admin/toggleController.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export const addToggle = async (req: Request, res: Response) => {
3636
try {
3737
const newToggle = await toggleService.addToggle({ name, enabled, description } as IToggle);
3838
logger.info(`Successfully added toggle with identifier ${name}`);
39-
return res.status(201).json(newToggle);
39+
return res.status(201).json({ message: "Toggle successfully added", newToggle });
4040
} catch (error) {
4141
logger.error(`Failed to add toggle for identifier ${ name }:`, error);
4242
return res.status(500).json({ message: 'An error occurred while adding toggle; please try again later' });
@@ -48,7 +48,7 @@ export const updateToggle = async (req: Request, res: Response) => {
4848
try {
4949
const updatedToggle = await toggleService.updateToggle(name, enabled, description);
5050
logger.info(`Successfully updated toggle with identifier ${name}`);
51-
return res.status(200).json(updatedToggle);
51+
return res.status(200).json({ message: "Toggle successfully updated", updatedToggle });
5252
} catch (error) {
5353
logger.error(`Failed to update toggle for identifier ${ name }:`, error);
5454
return res.status(500).json({ message: 'An error occurred while updating toggle; please try again later' });
@@ -64,7 +64,7 @@ export const deleteToggle = async (req: Request, res: Response) => {
6464
return res.status(404).json({ message: "Toggle not found" });
6565
}
6666
logger.info(`Successfully deleted toggle with identifier ${toggle_name}`);
67-
return res.status(200).json({ message: "Toggle successfully deleted" });
67+
return res.status(200).json({ message: "Toggle successfully deleted", deletedToggle });
6868
} catch (error) {
6969
logger.error(`Failed to delete toggle for identifier ${ toggle_name }:`, error);
7070
return res.status(500).json({ message: 'An error occurred while deleting toggle; please try again later' });

src/routes/toggle.routes.ts

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,13 @@ toggleRoutes.get("/:toggle_name", toggleController.getToggle);
9494
* content:
9595
* application/json:
9696
* schema:
97-
* $ref: '/api/docs/TogglesSchema.yml#/components/schemas/AddToggleRs'
97+
* type: object
98+
* properties:
99+
* message:
100+
* type: string
101+
* example: "Toggle successfully added"
102+
* addedToggle:
103+
* $ref: '/api/docs/TogglesSchema.yml#/components/schemas/AddToggleRs'
98104
* 401:
99105
* description: Unauthorized
100106
* 500:
@@ -123,7 +129,13 @@ toggleRoutes.post("/add", verifyAdminToken, toggleController.addToggle);
123129
* content:
124130
* application/json:
125131
* schema:
126-
* $ref: '/api/docs/TogglesSchema.yml#/components/schemas/UpdateToggleRs'
132+
* type: object
133+
* properties:
134+
* message:
135+
* type: string
136+
* example: "Toggle successfully updated"
137+
* updatedToggle:
138+
* $ref: '/api/docs/TogglesSchema.yml#/components/schemas/UpdateToggleRs'
127139
* 401:
128140
* description: Unauthorized
129141
* 500:
@@ -149,7 +161,17 @@ toggleRoutes.put("/update", verifyAdminToken, toggleController.updateToggle);
149161
* description: The name of the toggle to delete
150162
* responses:
151163
* 200:
152-
* description: Successful response | Toggle successfully deleted
164+
* description: Successful response
165+
* content:
166+
* application/json:
167+
* schema:
168+
* type: object
169+
* properties:
170+
* message:
171+
* type: string
172+
* example: "Toggle successfully deleted"
173+
* deletedToggle:
174+
* $ref: '/api/docs/TogglesSchema.yml#/components/schemas/DeleteToggleRs'
153175
* 404:
154176
* description: Toggle not found
155177
* 401:

test/controllers/admin/toggleController.spec.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,10 @@ describe('toggleController', () => {
139139

140140
expect(toggleService.addToggle).toHaveBeenCalledWith(req.body);
141141
expect(res.status).toHaveBeenCalledWith(201);
142-
expect(res.json).toHaveBeenCalledWith(newToggle);
142+
expect(res.json).toHaveBeenCalledWith({
143+
message: 'Toggle successfully added',
144+
newToggle: newToggle
145+
});
143146
});
144147

145148
it('should return appropriate [500] when adding toggle fails', async () => {
@@ -184,7 +187,10 @@ describe('toggleController', () => {
184187

185188
expect(toggleService.updateToggle).toHaveBeenCalledWith('testToggle', false, 'Test toggle');
186189
expect(res.status).toHaveBeenCalledWith(200);
187-
expect(res.json).toHaveBeenCalledWith(updatedToggle);
190+
expect(res.json).toHaveBeenCalledWith({
191+
message: 'Toggle successfully updated',
192+
updatedToggle: updatedToggle
193+
});
188194
});
189195

190196
it('should return appropriate [500] when updating toggle fails', async () => {
@@ -225,7 +231,10 @@ describe('toggleController', () => {
225231

226232
expect(toggleService.deleteToggleByName).toHaveBeenCalledWith('testToggle');
227233
expect(res.status).toHaveBeenCalledWith(200);
228-
expect(res.json).toHaveBeenCalledWith({ message: 'Toggle successfully deleted' });
234+
expect(res.json).toHaveBeenCalledWith({
235+
message: 'Toggle successfully deleted',
236+
deletedToggle
237+
});
229238
});
230239

231240
it('should return appropriate [404] when the toggle is not found', async () => {

0 commit comments

Comments
 (0)