Files
asan-service/server/index.js
T
2024-12-02 13:09:29 +03:30

73 lines
2.3 KiB
JavaScript

/// / develop environment config
const { isDev, isProduction, DevServerPort } = require('./_env')
const errorHandler = require('./errorHandler')
const wss = require('./WebSocket/wss')
/// / init express app (wrapping all functions into init() to prevent running in development mode by nuxt dev mode)
function init() {
// run preConfigured modules
require('./database')
require('body-parser')
// include modules to configure
const express = require('express')
const fileUpload = require('express-fileupload')
const authentication = require('./authentication')
const { checkThirdPartyAccess } = require('./plugins/checkThirdPartyAccess')
const { rs } = require('./plugins/resHeader')
const { getVerityToken, getPanatechToken } = require('./ArpaWebservice')
const cronJobs = require('./plugins/cronJobs')
const router = express.Router()
const cors = require('cors')
// Create express instance
const app = express()
// Init body-parser options (inbuilt with express)
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.use(fileUpload())
app.use(rs)
app.use(cors())
console.log('🟢 ~ Node Server is running ')
// load plugins
getVerityToken()
getPanatechToken()
cronJobs()
// API routes
const Public = require('./routes/public')
const admin = require('./routes/admin')
const user = require('./routes/user')
const agent = require('./routes/agent')
const gps = require('./routes/gps')
const auth = require('./routes/auth')
const cross = require('./routes/cross')
const thirdParty = require('./routes/thirdParty')
// Use API Routes
router.use('/public', Public)
router.use('/admin', authentication.isAdmin, admin)
router.use('/user', authentication.isUser, user)
router.use('/agent', authentication.isAgent, agent)
router.use('/gps', authentication.isGPS, gps)
router.use('/auth', auth)
router.use('/cross', cross)
router.use('/thirdParty', checkThirdPartyAccess, thirdParty)
app.use(isDev ? '/api' : '', router)
app.use(errorHandler.run)
return app
}
/// / development server
if (isDev) {
init().listen(DevServerPort, () => {
console.log('🟢 ~ Node Server is running in development mode on port:', DevServerPort)
})
wss()
}
/// / server middleware (production mode)
module.exports.serverMiddleware = isProduction && { path: '/api', handler: init() }