index.ts 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import express, { Application, Request, Response } from 'express';
  2. import path from 'path';
  3. import bodyParser from 'body-parser';
  4. import cors from 'cors';
  5. import { errorHandler } from './src/middleware/ErrorHandler';
  6. import keycloak from './src/middleware/Keycloak';
  7. import { config } from './config/config';
  8. import provinceRoutes from './src/routes/admin/ProvinceRoute';
  9. import cityRoutes from './src/routes/admin/CityRoute';
  10. import vendorRoutes from './src/routes/admin/VendorRoute';
  11. import hospitalRoutes from './src/routes/admin/HospitalRoute';
  12. import salesHospitalRoutes from './src/routes/sales/HospitalRoute';
  13. import areaRoutes from './src/routes/sales/AreaRoute';
  14. import CategoryRoutes from './src/routes/admin/CategoryRoute';
  15. import ScheduleVisitationRoutes from './src/routes/admin/ScheduleVisitationRoute';
  16. import ScheduleVisitationForSalesRoutes from './src/routes/sales/ScheduleVisitationRoute';
  17. import salesRoutes from './src/routes/admin/SalesRoute';
  18. import userAreaRoutes from './src/routes/admin/UserAreaRoute';
  19. import './src/utils/Scheduler';
  20. import "./src/utils/ScheduleNotification";
  21. const app: Application = express();
  22. const whitelist = [
  23. "http://localhost:3006",
  24. "https://radar-dev.farmagitechs.co.id"
  25. ];
  26. var corsOptions = {
  27. origin: function (origin: any, callback: any) {
  28. if (!origin || whitelist.indexOf(origin) !== -1) {
  29. callback(null, true)
  30. } else {
  31. callback(new Error('Not allowed by CORS'))
  32. }
  33. }
  34. }
  35. app.use(cors(corsOptions));
  36. app.use(bodyParser.json());
  37. app.use(keycloak.middleware());
  38. app.use(express.json());
  39. app.use('/storage/', express.static(path.join(__dirname, 'storage/')));
  40. const apiV1 = express.Router();
  41. apiV1.use('/province', provinceRoutes);
  42. apiV1.use('/sales', salesRoutes);
  43. apiV1.use('/user-area', userAreaRoutes);
  44. apiV1.use('/city', cityRoutes);
  45. apiV1.use('/hospital', hospitalRoutes);
  46. apiV1.use('/hospital-area', salesHospitalRoutes);
  47. apiV1.use('/vendor', vendorRoutes);
  48. apiV1.use('/area', areaRoutes);
  49. apiV1.use('/category', CategoryRoutes);
  50. apiV1.use('/schedule-visitation', ScheduleVisitationRoutes);
  51. apiV1.use('/schedule-sales', ScheduleVisitationForSalesRoutes);
  52. app.get('', (req: Request, res: Response) => {
  53. res.send('Selamat Datang di API Radar Farmagitechs');
  54. });
  55. app.use('/v1/api', apiV1);
  56. app.use(errorHandler);
  57. app.listen(config.port, () => {
  58. console.log(`Server started on port ${config.port}`);
  59. });