v12.0.0 - initial commit
This commit is contained in:
commit
e2c49ea43c
1145 changed files with 97211 additions and 0 deletions
132
packages/server/lib/routes.js
Normal file
132
packages/server/lib/routes.js
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
const express = require('express')
|
||||
const compression = require('compression')
|
||||
const helmet = require('helmet')
|
||||
const morgan = require('morgan')
|
||||
const nocache = require('nocache')
|
||||
|
||||
const logger = require('./logger')
|
||||
|
||||
const addRWBytes = require('./middlewares/addRWBytes')
|
||||
const authorize = require('./middlewares/authorize')
|
||||
const errorHandler = require('./middlewares/errorHandler')
|
||||
const filterOldRequests = require('./middlewares/filterOldRequests')
|
||||
const findOperatorId = require('./middlewares/operatorId')
|
||||
const populateDeviceId = require('./middlewares/populateDeviceId')
|
||||
const populateSettings = require('./middlewares/populateSettings')
|
||||
const populateMachineSettings = require('./middlewares/populateMachineSettings')
|
||||
const recordPing = require('./middlewares/recordPing')
|
||||
|
||||
const unitsRoutes = require('./routes/unitsRoutes')
|
||||
const cashboxRoutes = require('./routes/cashboxRoutes')
|
||||
const customerRoutes = require('./routes/customerRoutes')
|
||||
const logsRoutes = require('./routes/logsRoutes')
|
||||
const pairingRoutes = require('./routes/pairingRoutes')
|
||||
const diagnosticsRoutes = require('./routes/diagnosticsRoutes')
|
||||
const performanceRoutes = require('./routes/performanceRoutes')
|
||||
const rejectIncompatibleMachines = require('./middlewares/rejectIncompatbleMachines')
|
||||
const stateRoutes = require('./routes/stateRoutes')
|
||||
const termsAndConditionsRoutes = require('./routes/termsAndConditionsRoutes')
|
||||
const txRoutes = require('./routes/txRoutes')
|
||||
const verifyUserRoutes = require('./routes/verifyUserRoutes')
|
||||
const verifyTxRoutes = require('./routes/verifyTxRoutes')
|
||||
const verifyPromoCodeRoutes = require('./routes/verifyPromoCodeRoutes')
|
||||
const probeRoutes = require('./routes/probeLnRoutes')
|
||||
const failedQRScansRoutes = require('./routes/failedQRScans')
|
||||
|
||||
const { graphQLServer, context } = require('./graphql/server')
|
||||
|
||||
const { expressMiddleware } = require('@apollo/server/express4')
|
||||
|
||||
const loadRoutes = async () => {
|
||||
const app = express()
|
||||
|
||||
const configRequiredRoutes = [
|
||||
'/poll',
|
||||
'/terms_conditions',
|
||||
'/event',
|
||||
'/phone_code',
|
||||
'/customer',
|
||||
'/tx',
|
||||
'/verify_promo_code',
|
||||
'/graphql',
|
||||
]
|
||||
|
||||
// middleware setup
|
||||
app.use(addRWBytes())
|
||||
app.use(compression({ threshold: 500 }))
|
||||
app.use(helmet())
|
||||
app.use(nocache())
|
||||
app.use(express.json({ limit: '25mb' }))
|
||||
|
||||
morgan.token('bytesRead', (_req, res) => res.bytesRead)
|
||||
morgan.token('bytesWritten', (_req, res) => res.bytesWritten)
|
||||
app.use(
|
||||
morgan(
|
||||
':method :url :status :response-time ms -- :bytesRead/:bytesWritten B',
|
||||
{ stream: logger.stream },
|
||||
),
|
||||
)
|
||||
|
||||
app.use('/robots.txt', (req, res) => {
|
||||
res.type('text/plain')
|
||||
res.send('User-agent: *\nDisallow: /')
|
||||
})
|
||||
|
||||
app.get('/', (req, res) => {
|
||||
res.sendStatus(404)
|
||||
})
|
||||
|
||||
// app /pair and /ca routes
|
||||
app.use('/', pairingRoutes)
|
||||
|
||||
app.use(populateDeviceId)
|
||||
app.use(authorize)
|
||||
app.use(filterOldRequests)
|
||||
app.use(findOperatorId)
|
||||
app.use(configRequiredRoutes, populateSettings)
|
||||
app.use(configRequiredRoutes, populateMachineSettings)
|
||||
|
||||
// other app routes
|
||||
app.use('/graphql', recordPing)
|
||||
app.use('/terms_conditions', termsAndConditionsRoutes)
|
||||
app.use('/state', stateRoutes)
|
||||
app.use('/cashbox', cashboxRoutes)
|
||||
|
||||
app.use('/network', performanceRoutes)
|
||||
app.use('/diagnostics', diagnosticsRoutes)
|
||||
app.use('/failedqrscans', failedQRScansRoutes)
|
||||
|
||||
app.use('/verify_user', verifyUserRoutes)
|
||||
app.use('/verify_transaction', verifyTxRoutes)
|
||||
app.use('/verify_promo_code', verifyPromoCodeRoutes)
|
||||
|
||||
app.use('/customer', customerRoutes)
|
||||
|
||||
app.use('/tx', txRoutes)
|
||||
|
||||
app.use('/logs', logsRoutes)
|
||||
app.use('/units', unitsRoutes)
|
||||
|
||||
app.use('/probe', probeRoutes)
|
||||
|
||||
// Not all requests have the machine version on the url
|
||||
// rejecting poll is enough to render the machine "stuck"
|
||||
app.use(rejectIncompatibleMachines)
|
||||
await graphQLServer.start()
|
||||
app.use(
|
||||
'/graphql',
|
||||
express.json(),
|
||||
expressMiddleware(graphQLServer, {
|
||||
context,
|
||||
}),
|
||||
)
|
||||
|
||||
app.use(errorHandler)
|
||||
app.use((req, res) => {
|
||||
res.status(404).json({ error: 'No such route' })
|
||||
})
|
||||
|
||||
return app
|
||||
}
|
||||
|
||||
module.exports = { loadRoutes }
|
||||
Loading…
Add table
Add a link
Reference in a new issue