abhishek-akbari01 commited on
Commit
ea55d69
·
1 Parent(s): 6b4f322

expose api to create permission

Browse files
src/controllers/permission.controller.ts ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { Request, Response } from 'express';
2
+ import Permission from '../models/permissions';
3
+ import { logger } from '../utils/logger';
4
+
5
+ const createPermission = async (req: Request, res: Response) => {
6
+ try {
7
+ const { permission_name } = req.body;
8
+
9
+ const newPermission = {
10
+ permission_name,
11
+ };
12
+
13
+ const createdPermission = await Permission.create(newPermission);
14
+
15
+ const permissionResponse = {
16
+ id: createdPermission.id,
17
+ permission_name: createdPermission.permission_name,
18
+ };
19
+
20
+ return res.status(201).json({
21
+ message: 'Permission created successfully',
22
+ data: permissionResponse,
23
+ });
24
+
25
+ } catch (error) {
26
+ logger.error('Error creating a Permission:', error);
27
+ return res.status(500).json({
28
+ error: 'Error while creating a Permission.',
29
+ });
30
+ }
31
+ };
32
+
33
+ export default createPermission;
src/routes/permission.routes.ts ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import express from "express";
2
+ import { jwtMiddleware } from '../middlewares/authMiddleware';
3
+ import createPermission from "../controllers/permission.controller";
4
+
5
+ const permissionRouter = express.Router();
6
+ permissionRouter.use(jwtMiddleware);
7
+
8
+ /**
9
+ * @swagger
10
+ * components:
11
+ * schemas:
12
+ * Permission:
13
+ * type: object
14
+ * required:
15
+ * - permission_name
16
+ * properties:
17
+ * id:
18
+ * type: integer
19
+ * description: The auto-generated id of the permission
20
+ * permission_name:
21
+ * type: string
22
+ * description: The name of the permission
23
+ * example:
24
+ * id: 1
25
+ * permission_name: CREATE_USER
26
+ *
27
+ * PermissionUpdate:
28
+ * type: object
29
+ * properties:
30
+ * permission_name:
31
+ * type: string
32
+ * description: The name of the permission
33
+ * example:
34
+ * permission_name: CREATE_USER
35
+ */
36
+
37
+ /**
38
+ * @swagger
39
+ * /api/permissions:
40
+ * post:
41
+ * summary: Create a new permission
42
+ * tags: [Permissions]
43
+ * requestBody:
44
+ * required: true
45
+ * content:
46
+ * application/json:
47
+ * schema:
48
+ * $ref: '#/components/schemas/Permission'
49
+ * responses:
50
+ * 201:
51
+ * description: Permission created successfully
52
+ * content:
53
+ * application/json:
54
+ * schema:
55
+ * $ref: '#/components/schemas/Permission'
56
+ * 400:
57
+ * description: Validation errors
58
+ * 500:
59
+ * description: Error while creating a Permission
60
+ */
61
+ permissionRouter.post('/', createPermission);
62
+
63
+ export default permissionRouter;
src/routes/root.routes.ts CHANGED
@@ -10,6 +10,7 @@ import rolesRouter from './roles.routes';
10
  import settingRouter from './settings.routes';
11
  import invoiceActivityLogRouter from './invoiceActivityLogs.routes';
12
  import vendorConfigRouter from './vendorConfig.routes';
 
13
 
14
  const router = express.Router();
15
 
@@ -37,5 +38,6 @@ router.use('/api/roles', rolesRouter);
37
  router.use('/api/settings/', settingRouter)
38
  router.use('/api/invoice-activity-logs', invoiceActivityLogRouter);
39
  router.use('/api/vendor-config', vendorConfigRouter);
 
40
 
41
  export default router;
 
10
  import settingRouter from './settings.routes';
11
  import invoiceActivityLogRouter from './invoiceActivityLogs.routes';
12
  import vendorConfigRouter from './vendorConfig.routes';
13
+ import permissionRouter from './permission.routes';
14
 
15
  const router = express.Router();
16
 
 
38
  router.use('/api/settings/', settingRouter)
39
  router.use('/api/invoice-activity-logs', invoiceActivityLogRouter);
40
  router.use('/api/vendor-config', vendorConfigRouter);
41
+ router.use('/api/permissions', permissionRouter);
42
 
43
  export default router;