Skip to content

Commit f669133

Browse files
add: validation to createFetureFlag api
1 parent 7bf47cd commit f669133

File tree

4 files changed

+35
-8
lines changed

4 files changed

+35
-8
lines changed

controllers/featureFlags.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ export const createFeatureFlag = async (req: CustomRequest, res: CustomResponse)
7272
export const updateFeatureFlag = async (req: CustomRequest, res: CustomResponse) => {
7373
try {
7474
const { flagId } = req.params;
75-
console.log("Mehulllll", flagId)
7675
const updateData: UpdateFeatureFlagRequestBody = {
7776
Status: req.body.Status,
7877
UserId: req.body.UserId,

middlewares/validators/featureFlag.ts

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,32 @@ export const validateUpdateFeatureFlag = async (req: Request, res: CustomRespons
2525
logger.error(`Error validating update feature flag payload: ${error.message}`);
2626
res.boom.badRequest(error.message);
2727
}
28-
};
28+
};
29+
30+
const createFeatureFlagSchema = Joi.object({
31+
Name: Joi.string()
32+
.required()
33+
.messages({
34+
'any.required': 'Name is required'
35+
}),
36+
Description: Joi.string()
37+
.required()
38+
.messages({
39+
'any.required': 'Description is required'
40+
}),
41+
UserId: Joi.string()
42+
.required()
43+
.messages({
44+
'any.required': 'UserId is required'
45+
})
46+
});
47+
48+
export const validateCreateFeatureFlag = async (req: Request, res: CustomResponse, next: NextFunction) => {
49+
try {
50+
await createFeatureFlagSchema.validateAsync(req.body);
51+
next();
52+
} catch (error) {
53+
logger.error(`Error validating create feature flag payload: ${error.message}`);
54+
res.boom.badRequest(error.message);
55+
}
56+
};

routes/featureFlag.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ import express from "express";
22
const router = express.Router();
33
import authenticate from "../middlewares/authenticate";
44
const authorizeRoles = require("../middlewares/authorizeRoles");
5-
import { createFeatureFlag, getAllFeatureFlags, getFeatureFlagById, updateFeatureFlag} from "../controllers/featureFlags";
5+
import { createFeatureFlag, getAllFeatureFlags, getFeatureFlagById, updateFeatureFlag } from "../controllers/featureFlags";
66
const { SUPERUSER } = require("../constants/roles");
7-
import { validateUpdateFeatureFlag } from '../middlewares/validators/featureFlag';
7+
import { validateUpdateFeatureFlag, validateCreateFeatureFlag } from '../middlewares/validators/featureFlag';
88

99
router.get("/getAllFeatureFlags", authenticate, getAllFeatureFlags);
1010
router.get("/getFeatureFlag/:flagId", authenticate, getFeatureFlagById);
11-
router.post('/createFeatureFlag', authenticate, authorizeRoles([SUPERUSER]), createFeatureFlag);
11+
router.post('/createFeatureFlag', authenticate, authorizeRoles([SUPERUSER]), validateCreateFeatureFlag, createFeatureFlag);
1212
router.patch('/updateFeatureFlag/:flagId', authenticate, authorizeRoles([SUPERUSER]), validateUpdateFeatureFlag, updateFeatureFlag);
1313

14-
module.exports = router;
14+
module.exports = router;

services/featureFlagService.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,12 @@ const updateFeatureFlag = async (
6262
updateData: UpdateFeatureFlagRequestBody
6363
): Promise<FeatureFlagResponse> => {
6464
try {
65-
const response = await fetch(`http://127.0.0.1:3000/feature-flags/${flagId}`, {
65+
const response = await fetch(`${FEATURE_FLAG_BASE_URL}/feature-flags/${flagId}`, {
6666
method: "PATCH",
6767
headers: generateHeaders(),
6868
body: JSON.stringify(updateData),
6969
});
70-
console.log("Mehulllll", response)
70+
7171
if (!response.ok) {
7272
const error = await response.json();
7373
return {

0 commit comments

Comments
 (0)