import express, { Application, Request, Response } from 'express'; import path from 'path'; import bodyParser from 'body-parser'; import cors from 'cors'; import { errorHandler } from './src/middleware/ErrorHandler'; import keycloak from './src/middleware/Keycloak'; import { config } from './config/config'; import provinceRoutes from './src/routes/admin/ProvinceRoute'; import cityRoutes from './src/routes/admin/CityRoute'; import vendorRoutes from './src/routes/admin/VendorRoute'; import hospitalRoutes from './src/routes/admin/HospitalRoute'; import salesHospitalRoutes from './src/routes/sales/HospitalRoute'; import areaRoutes from './src/routes/sales/AreaRoute'; import CategoryRoutes from './src/routes/admin/CategoryRoute'; import ScheduleVisitationRoutes from './src/routes/admin/ScheduleVisitationRoute'; import ScheduleVisitationForSalesRoutes from './src/routes/sales/ScheduleVisitationRoute'; import salesRoutes from './src/routes/admin/SalesRoute'; import userAreaRoutes from './src/routes/admin/UserAreaRoute'; import './src/utils/Scheduler'; import "./src/utils/ScheduleNotification"; const app: Application = express(); const whitelist = [ "http://localhost:3006", "https://radar-dev.farmagitechs.co.id" ]; var corsOptions = { origin: function (origin: any, callback: any) { if (!origin || whitelist.indexOf(origin) !== -1) { callback(null, true) } else { callback(new Error('Not allowed by CORS')) } } } app.use(cors(corsOptions)); app.use(bodyParser.json()); app.use(keycloak.middleware()); app.use(express.json()); app.use('/storage/', express.static(path.join(__dirname, 'storage/'))); const apiV1 = express.Router(); apiV1.use('/province', provinceRoutes); apiV1.use('/sales', salesRoutes); apiV1.use('/user-area', userAreaRoutes); apiV1.use('/city', cityRoutes); apiV1.use('/hospital', hospitalRoutes); apiV1.use('/hospital-area', salesHospitalRoutes); apiV1.use('/vendor', vendorRoutes); apiV1.use('/area', areaRoutes); apiV1.use('/category', CategoryRoutes); apiV1.use('/schedule-visitation', ScheduleVisitationRoutes); apiV1.use('/schedule-sales', ScheduleVisitationForSalesRoutes); app.get('', (req: Request, res: Response) => { res.send('Selamat Datang di API Radar Farmagitechs'); }); app.use('/v1/api', apiV1); app.use(errorHandler); app.listen(config.port, () => { console.log(`Server started on port ${config.port}`); });