Browse Source

update index.ts about cors

pearlgw 3 weeks ago
parent
commit
410820c51e

+ 15 - 8
index.ts

@@ -20,19 +20,27 @@ import './src/utils/Scheduler';
20 20
 const app: Application = express();
21 21
 
22 22
 const allowedOrigins = [
23
-    'http://localhost:3006', // frontend local
24
-    'https://radar-dev.farmagitechs.co.id' // production domain
23
+    "http://localhost:3006",              // frontend local
24
+    "https://radar-dev.farmagitechs.co.id" // production domain
25 25
 ];
26 26
 
27 27
 const corsOptions = {
28
-    origin: allowedOrigins,
29
-    methods: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS'],
30
-    allowedHeaders: ['Content-Type', 'Authorization'],
28
+    origin: (origin: string | undefined, callback: (err: Error | null, allow?: boolean) => void) => {
29
+        if (!origin || allowedOrigins.includes(origin)) {
30
+            // allow requests tanpa Origin (misal Postman) & origin yg ada di daftar
31
+            callback(null, true);
32
+        } else {
33
+            callback(new Error("Not allowed by CORS"));
34
+        }
35
+    },
36
+    methods: ["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"],
37
+    allowedHeaders: ["Content-Type", "Authorization"],
31 38
     credentials: true,
32 39
 };
33 40
 
41
+// app.use(cors());
34 42
 app.use(cors(corsOptions));
35
-app.options('*', cors(corsOptions));
43
+app.options(/(.*)/, cors(corsOptions));
36 44
 app.use(bodyParser.json());
37 45
 app.use(keycloak.middleware());
38 46
 app.use(express.json())
@@ -47,9 +55,8 @@ apiV1.use('/hospital-area', salesHospitalRoutes);
47 55
 apiV1.use('/vendor', vendorRoutes);
48 56
 apiV1.use('/area', areaRoutes);
49 57
 apiV1.use('/category', CategoryRoutes);
50
-// apiV1.use('/vendor-sales', vendorSalesRoutes);
51 58
 
52
-app.get('/', (req: Request, res: Response) => {
59
+app.get('', (req: Request, res: Response) => {
53 60
     res.send('Selamat Datang di API Radar Farmagitechs');
54 61
 });
55 62
 

+ 2 - 0
src/routes/admin/CategoryRoute.ts

@@ -3,6 +3,7 @@ import * as CategoryController from '../../controllers/admin/CategoryController'
3 3
 import keycloak from '../../middleware/Keycloak';
4 4
 import { extractToken } from '../../middleware/ExtractToken';
5 5
 import checkRoles from '../../middleware/CheckRoles';
6
+
6 7
 const router: Router = express.Router();
7 8
 
8 9
 router.get('/', [keycloak.protect(), extractToken, checkRoles(["admin"])], CategoryController.getAllCategory);
@@ -13,4 +14,5 @@ router.delete('/:id', [keycloak.protect(), extractToken, checkRoles(["admin"])],
13 14
 
14 15
 router.get('/:id/use', [keycloak.protect(), extractToken, checkRoles(["admin"])], CategoryController.showUseCategory);
15 16
 router.post('/merge', [keycloak.protect(), extractToken, checkRoles(["admin"])], CategoryController.mergeCategory);
17
+
16 18
 export default router;

+ 0 - 6
src/routes/admin/CityRoute.ts

@@ -4,12 +4,6 @@ import keycloak from '../../middleware/Keycloak';
4 4
 import { extractToken } from '../../middleware/ExtractToken';
5 5
 import checkRoles from '../../middleware/CheckRoles';
6 6
 
7
-// router.get('/', verifyJWT, checkRole(['admin', 'sales']), cityController.getAllCity);
8
-// router.post('/', verifyJWT, checkRole(['admin']), cityController.storeCity);
9
-// router.get('/:id', verifyJWT, checkRole(['admin', 'sales']), cityController.showCity);
10
-// router.patch('/:id', verifyJWT, checkRole(['admin']), cityController.updateCity);
11
-// router.delete('/:id', verifyJWT, checkRole(['admin']), cityController.deleteCity);
12
-
13 7
 const router: Router = express.Router();
14 8
 
15 9
 router.get('/', [keycloak.protect(), extractToken, checkRoles(["admin", "sales"])], CityController.getAllCity);

+ 2 - 2
src/routes/admin/HospitalRoute.ts

@@ -1,4 +1,4 @@
1
-import { Router } from 'express';
1
+import express, { Router } from 'express';
2 2
 import * as HospitalController from '../../controllers/admin/HospitalController';
3 3
 import * as VendorExperienceController from '../../controllers/admin/VendorExperienceController';
4 4
 import * as ExecutivesHistoryController from '../../controllers/admin/ExecutivesHistoryController';
@@ -9,7 +9,7 @@ import keycloak from '../../middleware/Keycloak';
9 9
 import { extractToken } from '../../middleware/ExtractToken';
10 10
 import checkRoles from '../../middleware/CheckRoles';
11 11
 
12
-const router = Router();
12
+const router: Router = express.Router();
13 13
 
14 14
 router.get('/', [keycloak.protect(), extractToken, checkRoles(["admin"])], HospitalController.getAllHospital);
15 15
 router.post('/', [keycloak.protect(), extractToken, checkRoles(["admin"])], upload.single('image'), HospitalController.storeHospital);

+ 2 - 19
src/routes/admin/ProvinceRoute.ts

@@ -1,27 +1,10 @@
1
-import express from 'express';
1
+import express, { Router } from 'express';
2 2
 import * as ProvinceController from '../../controllers/admin/ProvinceController';
3 3
 import keycloak from '../../middleware/Keycloak';
4 4
 import { extractToken } from '../../middleware/ExtractToken';
5 5
 import checkRoles from '../../middleware/CheckRoles';
6 6
 
7
-const router = express.Router();
8
-
9
-// import express from 'express';
10
-// const router = express.Router();
11
-// const provinceController = require('../../controllers/admin/ProvinceController.js')
12
-// // const verifyJWT = require('../../middleware/VerifyJWT.js');
13
-// // const checkRole = require('../../middleware/CheckRole.js');
14
-
15
-// const keycloak = require('../../middleware/Keycloak.js');
16
-// const extractToken = require('../../middleware/ExtractToken.js');
17
-// const checkRoles = require('../../middleware/CheckRoles.js');
18
-
19
-// router.get('/', verifyJWT, checkRole(['admin', 'sales']), provinceController.getAllProvince);
20
-// router.get('/', verifyJWT, checkRole(['admin']), provinceController.getAllProvince);
21
-// router.post('/', verifyJWT, checkRole(['admin']), provinceController.storeProvince);
22
-// router.get('/:id', verifyJWT, checkRole(['admin']), provinceController.showProvince);
23
-// router.patch('/:id', verifyJWT, checkRole(['admin']), provinceController.updateProvince);
24
-// router.delete('/:id', verifyJWT, checkRole(['admin']), provinceController.deleteProvince);
7
+const router: Router = express.Router();
25 8
 
26 9
 router.get('/', [keycloak.protect(), extractToken, checkRoles(['admin'])], ProvinceController.getAllProvince);
27 10
 router.post('/', [keycloak.protect(), extractToken, checkRoles(['admin'])], ProvinceController.storeProvince);

+ 0 - 6
src/routes/admin/VendorRoute.ts

@@ -4,12 +4,6 @@ import keycloak from '../../middleware/Keycloak';
4 4
 import { extractToken } from '../../middleware/ExtractToken';
5 5
 import checkRoles from '../../middleware/CheckRoles';
6 6
 
7
-// router.get('/', verifyJWT, checkRole(['admin', 'sales']), vendorController.getAllVendor);
8
-// router.post('/', verifyJWT, checkRole(['admin', 'sales']), vendorController.storeVendor);
9
-// router.get('/:id', verifyJWT, checkRole(['admin', 'sales']), vendorController.showVendor);
10
-// router.patch('/:id', verifyJWT, checkRole(['admin', 'sales']), vendorController.updateVendor);
11
-// router.delete('/:id', verifyJWT, checkRole(['admin']), vendorController.deleteVendor);
12
-
13 7
 const router: Router = express.Router();
14 8
 
15 9
 router.get('/', [keycloak.protect(), extractToken, checkRoles(['admin', 'sales'])], VendorController.getAllVendor);

+ 1 - 18
src/routes/sales/AreaRoute.ts

@@ -6,23 +6,6 @@ import checkRoles from '../../middleware/CheckRoles';
6 6
 
7 7
 const router: Router = express.Router();
8 8
 
9
-// router.get('/', verifyJWT, checkRole(['sales']), areaController.getAllAreaByUser);
10
-
11 9
 router.get('/', [keycloak.protect(), extractToken, checkRoles(['sales'])], areaController.getAllAreaByUser);
12 10
 
13
-export default router;
14
-
15
-
16
-// const express = require('express')
17
-// const router = express.Router()
18
-// const areaController = require('../../controllers/sales/AreaController.js')
19
-
20
-// const keycloak = require('../../middleware/Keycloak.js');
21
-// const extractToken = require('../../middleware/ExtractToken.js');
22
-// const checkRoles = require('../../middleware/CheckRoles.js');
23
-
24
-// // router.get('/', verifyJWT, checkRole(['sales']), areaController.getAllAreaByUser);
25
-
26
-// router.get('/', [keycloak.protect(), extractToken, checkRoles(['sales'])], areaController.getAllAreaByUser);
27
-
28
-// module.exports = router;
11
+export default router;

+ 2 - 2
src/routes/sales/HospitalRoute.ts

@@ -1,4 +1,4 @@
1
-import { Router } from 'express';
1
+import express, { Router } from 'express';
2 2
 import * as HospitalController from '../../controllers/sales/HospitalController';
3 3
 import * as VendorExperienceController from '../../controllers/sales/VendorExperienceController';
4 4
 import * as ExecutivesHistoryController from '../../controllers/sales/ExecutivesHistoryController';
@@ -9,7 +9,7 @@ import keycloak from '../../middleware/Keycloak';
9 9
 import { extractToken } from '../../middleware/ExtractToken';
10 10
 import checkRoles from '../../middleware/CheckRoles';
11 11
 
12
-const router = Router();
12
+const router: Router = express.Router();
13 13
 
14 14
 router.get('/', [keycloak.protect(), extractToken, checkRoles(['sales'])], HospitalController.getAllHospitalByArea);
15 15
 router.post('/', [keycloak.protect(), extractToken, checkRoles(['sales'])], upload.single('image'), HospitalController.storeHospital);