Loading app/exposure.js +20 −19 Original line number Diff line number Diff line let express = require('express'), const express = require('express'), bodyParser = require('body-parser'), fs = require('fs'), path = require('path'), http = require('http'), https = require('https'); https = require('https'), let logger, params, version, robotsContent, sitemapContent, sitemapLastUpdated, oauthUrl = process.env.OAUTH_URL, oauthClientId = process.env.OAUTH_CLIENT_ID, oauthClientSecret = process.env.OAUTH_CLIENT_SECRET, Loading @@ -13,6 +12,8 @@ let logger, params, version, robotsContent, sitemapContent, sitemapLastUpdated, apiUrl = process.env.API_URL, sitemapUrl = process.env.SITEMAP_URL; let logger, params, version, robotsContent, sitemapContent, sitemapLastUpdated; function getLang(req) { return req && req.headers && req.headers['content-language'] || params.lang; Loading Loading @@ -77,7 +78,7 @@ function onOwnRequestResponse(bindParams, internalRes) { content += nestedChunks[i].toString(); } let originalRes = nestedBindParams.originalRes, const originalRes = nestedBindParams.originalRes, onSuccess = nestedBindParams.onSuccess || onOwnRequestSuccess, onError = nestedBindParams.onError || onOwnRequestError, afterResponse = nestedBindParams.afterResponse; Loading @@ -98,7 +99,7 @@ function onOwnRequestSuccess(originalRes, content) { originalRes.status(this.statusCode).send(content); let internalUrl = this.req.protocol + '//' + this.req.host + this.req.path, const internalUrl = this.req.protocol + '//' + this.req.host + this.req.path, internalRequestMessage = `INTERNAL ${this.req.method} ${internalUrl} ${this.statusCode}`; logger.info(internalRequestMessage); Loading @@ -113,7 +114,7 @@ function onOwnRequestError(originalRes, err) { description: 'Something went wrong at server. Please, try again.' }); let errorMessage = err instanceof Object ? err.toString() : err; const errorMessage = err instanceof Object ? err.toString() : err; logger.error(errorMessage); } Loading @@ -121,12 +122,12 @@ function onSitemapRequest(_req, res) { res.set('Content-Type', 'text/xml'); let currTimestamp = Date.now(); const currTimestamp = Date.now(); if (!sitemapContent || !sitemapContent.length || sitemapLastUpdated < currTimestamp - 300000) { let afterResponseCallback = (status, content) => sitemapContent = status ? content : ''; const afterResponseCallback = (status, content) => sitemapContent = status ? content : ''; let internalReq = https.request(sitemapUrl, onOwnRequestResponse.bind(this, { const internalReq = https.request(sitemapUrl, onOwnRequestResponse.bind(this, { originalRes: res, afterResponse: afterResponseCallback })); Loading @@ -149,7 +150,7 @@ function onRobotsRequest(req, res) { robotsContent = 'User-agent: *\n'; if (production) { let sitemapPath = 'https://' + req.hostname + '/sitemap.xml', const sitemapPath = 'https://' + req.hostname + '/sitemap.xml', sitemapLine = 'Sitemap: ' + sitemapPath; robotsContent += 'Allow: /\n\n' + sitemapLine; Loading @@ -176,13 +177,13 @@ function onOauthTokenRequest(req, res) { res.set('Content-Type', 'application/json'); let getTokenUrl = oauthUrl + '/token', const getTokenUrl = oauthUrl + '/token', reqLibrary = getTokenUrl.indexOf('https') === -1 ? http : https; let clientCredentials = oauthClientId + ':' + oauthClientSecret, const clientCredentials = oauthClientId + ':' + oauthClientSecret, base64ClientCredentials = Buffer.from(clientCredentials).toString('base64'); let options = { const options = { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', Loading @@ -190,16 +191,16 @@ function onOauthTokenRequest(req, res) { } }; let bindParams = { const bindParams = { originalRes: res, onError: onOauthRequestError }; let internalReq = reqLibrary.request(getTokenUrl, options, onOwnRequestResponse.bind(this, bindParams)); const internalReq = reqLibrary.request(getTokenUrl, options, onOwnRequestResponse.bind(this, bindParams)); internalReq.on('error', onOauthRequestError.bind(this, res)); let body = req.body, const body = req.body, password = encodeURIComponent(body.password), username = encodeURIComponent(body.username), bodyData = 'grant_type=password&username=' + username + '&password=' + password + '&scope=write'; Loading @@ -210,7 +211,7 @@ function onOauthTokenRequest(req, res) { function onOauthRequestError(originalRes, err) { let error = JSON.parse(err), const error = JSON.parse(err), errorType = error.error, errorDescription = error.error_description; Loading Loading @@ -245,12 +246,12 @@ function exposeRoutes(app) { function exposeContents(app, directoryName) { let pathOptions = { const pathOptions = { maxAge: 600000, index: false }; let exposedPath = path.join(__dirname, '..', directoryName), const exposedPath = path.join(__dirname, '..', directoryName), staticPropName = 'static', servedPath = express[staticPropName](exposedPath, pathOptions); Loading app/index.js +7 −7 Original line number Diff line number Diff line let packageJson = require('../package.json'), const packageJson = require('../package.json'), version = packageJson.version, params = require('./params')(version), logging = require('./logging'), logger = logging.logger, logger = logging.logger; cluster; let cluster; if (params.cluster) { cluster = require('cluster'); } if (cluster && cluster.isMaster) { let numCpus = require('os').cpus().length; const numCpus = require('os').cpus().length; for (let i = 0; i < numCpus; i++) { cluster.fork(); Loading @@ -24,7 +24,7 @@ if (cluster && cluster.isMaster) { logger.error('worker %i died (%s)', worker.process.pid, signal); }); } else { let express = require('express'), const express = require('express'), http = require('http'), metrics = require('./metrics')(logger, '/metrics'), Loading @@ -33,9 +33,9 @@ if (cluster && cluster.isMaster) { port = params.port, debug = params.debug, pid = process.pid; pid = process.pid, let app = express(); app = express(); logging.registerAppLogger(params, app); metrics.registerAppMetrics(app); Loading app/logging.js +3 −3 Original line number Diff line number Diff line var morgan = require('morgan'), const morgan = require('morgan'), winston = require('winston'); var logConsoleTransport = new (winston.transports.Console)({ const logConsoleTransport = new (winston.transports.Console)({ level: 'silly', format: winston.format.combine( winston.format.splat(), Loading @@ -16,7 +16,7 @@ var logConsoleTransport = new (winston.transports.Console)({ ) }); var logger = winston.createLogger({ const logger = winston.createLogger({ transports: [ logConsoleTransport ], Loading app/metrics.js +9 −9 Original line number Diff line number Diff line var promClient = require('prom-client'), const promClient = require('prom-client'), responseTime = require('response-time'); var register = promClient.register, const register = promClient.register, counter = promClient.Counter, histogram = promClient.Histogram, summary = promClient.Summary, logger, promPath; summary = promClient.Summary; var numOfRequests = new counter({ let logger, promPath; const numOfRequests = new counter({ name: 'numOfRequests', help: 'Number of requests made', labelNames: ['method'] }); var pathsTaken = new counter({ const pathsTaken = new counter({ name: 'pathsTaken', help: 'Paths taken in the app', labelNames: ['path'] }); var responses = new summary({ const responses = new summary({ name: 'responses', help: 'Response time in millis', labelNames: ['method', 'path', 'status'] Loading Loading @@ -50,7 +50,7 @@ function injectMetricsRoute(app) { res.set('Content-Type', register.contentType); var metricsPromise = register.metrics(); const metricsPromise = register.metrics(); metricsPromise.then( (function(response, value) { Loading app/params.js +2 −2 Original line number Diff line number Diff line let commander = require('commander'); const commander = require('commander'); module.exports = function(version) { Loading @@ -12,7 +12,7 @@ module.exports = function(version) { .showSuggestionAfterError() .parse(process.argv); let commanderOpts = commander.opts(); const commanderOpts = commander.opts(); return { useBuilt: commanderOpts.useBuilt, Loading Loading
app/exposure.js +20 −19 Original line number Diff line number Diff line let express = require('express'), const express = require('express'), bodyParser = require('body-parser'), fs = require('fs'), path = require('path'), http = require('http'), https = require('https'); https = require('https'), let logger, params, version, robotsContent, sitemapContent, sitemapLastUpdated, oauthUrl = process.env.OAUTH_URL, oauthClientId = process.env.OAUTH_CLIENT_ID, oauthClientSecret = process.env.OAUTH_CLIENT_SECRET, Loading @@ -13,6 +12,8 @@ let logger, params, version, robotsContent, sitemapContent, sitemapLastUpdated, apiUrl = process.env.API_URL, sitemapUrl = process.env.SITEMAP_URL; let logger, params, version, robotsContent, sitemapContent, sitemapLastUpdated; function getLang(req) { return req && req.headers && req.headers['content-language'] || params.lang; Loading Loading @@ -77,7 +78,7 @@ function onOwnRequestResponse(bindParams, internalRes) { content += nestedChunks[i].toString(); } let originalRes = nestedBindParams.originalRes, const originalRes = nestedBindParams.originalRes, onSuccess = nestedBindParams.onSuccess || onOwnRequestSuccess, onError = nestedBindParams.onError || onOwnRequestError, afterResponse = nestedBindParams.afterResponse; Loading @@ -98,7 +99,7 @@ function onOwnRequestSuccess(originalRes, content) { originalRes.status(this.statusCode).send(content); let internalUrl = this.req.protocol + '//' + this.req.host + this.req.path, const internalUrl = this.req.protocol + '//' + this.req.host + this.req.path, internalRequestMessage = `INTERNAL ${this.req.method} ${internalUrl} ${this.statusCode}`; logger.info(internalRequestMessage); Loading @@ -113,7 +114,7 @@ function onOwnRequestError(originalRes, err) { description: 'Something went wrong at server. Please, try again.' }); let errorMessage = err instanceof Object ? err.toString() : err; const errorMessage = err instanceof Object ? err.toString() : err; logger.error(errorMessage); } Loading @@ -121,12 +122,12 @@ function onSitemapRequest(_req, res) { res.set('Content-Type', 'text/xml'); let currTimestamp = Date.now(); const currTimestamp = Date.now(); if (!sitemapContent || !sitemapContent.length || sitemapLastUpdated < currTimestamp - 300000) { let afterResponseCallback = (status, content) => sitemapContent = status ? content : ''; const afterResponseCallback = (status, content) => sitemapContent = status ? content : ''; let internalReq = https.request(sitemapUrl, onOwnRequestResponse.bind(this, { const internalReq = https.request(sitemapUrl, onOwnRequestResponse.bind(this, { originalRes: res, afterResponse: afterResponseCallback })); Loading @@ -149,7 +150,7 @@ function onRobotsRequest(req, res) { robotsContent = 'User-agent: *\n'; if (production) { let sitemapPath = 'https://' + req.hostname + '/sitemap.xml', const sitemapPath = 'https://' + req.hostname + '/sitemap.xml', sitemapLine = 'Sitemap: ' + sitemapPath; robotsContent += 'Allow: /\n\n' + sitemapLine; Loading @@ -176,13 +177,13 @@ function onOauthTokenRequest(req, res) { res.set('Content-Type', 'application/json'); let getTokenUrl = oauthUrl + '/token', const getTokenUrl = oauthUrl + '/token', reqLibrary = getTokenUrl.indexOf('https') === -1 ? http : https; let clientCredentials = oauthClientId + ':' + oauthClientSecret, const clientCredentials = oauthClientId + ':' + oauthClientSecret, base64ClientCredentials = Buffer.from(clientCredentials).toString('base64'); let options = { const options = { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', Loading @@ -190,16 +191,16 @@ function onOauthTokenRequest(req, res) { } }; let bindParams = { const bindParams = { originalRes: res, onError: onOauthRequestError }; let internalReq = reqLibrary.request(getTokenUrl, options, onOwnRequestResponse.bind(this, bindParams)); const internalReq = reqLibrary.request(getTokenUrl, options, onOwnRequestResponse.bind(this, bindParams)); internalReq.on('error', onOauthRequestError.bind(this, res)); let body = req.body, const body = req.body, password = encodeURIComponent(body.password), username = encodeURIComponent(body.username), bodyData = 'grant_type=password&username=' + username + '&password=' + password + '&scope=write'; Loading @@ -210,7 +211,7 @@ function onOauthTokenRequest(req, res) { function onOauthRequestError(originalRes, err) { let error = JSON.parse(err), const error = JSON.parse(err), errorType = error.error, errorDescription = error.error_description; Loading Loading @@ -245,12 +246,12 @@ function exposeRoutes(app) { function exposeContents(app, directoryName) { let pathOptions = { const pathOptions = { maxAge: 600000, index: false }; let exposedPath = path.join(__dirname, '..', directoryName), const exposedPath = path.join(__dirname, '..', directoryName), staticPropName = 'static', servedPath = express[staticPropName](exposedPath, pathOptions); Loading
app/index.js +7 −7 Original line number Diff line number Diff line let packageJson = require('../package.json'), const packageJson = require('../package.json'), version = packageJson.version, params = require('./params')(version), logging = require('./logging'), logger = logging.logger, logger = logging.logger; cluster; let cluster; if (params.cluster) { cluster = require('cluster'); } if (cluster && cluster.isMaster) { let numCpus = require('os').cpus().length; const numCpus = require('os').cpus().length; for (let i = 0; i < numCpus; i++) { cluster.fork(); Loading @@ -24,7 +24,7 @@ if (cluster && cluster.isMaster) { logger.error('worker %i died (%s)', worker.process.pid, signal); }); } else { let express = require('express'), const express = require('express'), http = require('http'), metrics = require('./metrics')(logger, '/metrics'), Loading @@ -33,9 +33,9 @@ if (cluster && cluster.isMaster) { port = params.port, debug = params.debug, pid = process.pid; pid = process.pid, let app = express(); app = express(); logging.registerAppLogger(params, app); metrics.registerAppMetrics(app); Loading
app/logging.js +3 −3 Original line number Diff line number Diff line var morgan = require('morgan'), const morgan = require('morgan'), winston = require('winston'); var logConsoleTransport = new (winston.transports.Console)({ const logConsoleTransport = new (winston.transports.Console)({ level: 'silly', format: winston.format.combine( winston.format.splat(), Loading @@ -16,7 +16,7 @@ var logConsoleTransport = new (winston.transports.Console)({ ) }); var logger = winston.createLogger({ const logger = winston.createLogger({ transports: [ logConsoleTransport ], Loading
app/metrics.js +9 −9 Original line number Diff line number Diff line var promClient = require('prom-client'), const promClient = require('prom-client'), responseTime = require('response-time'); var register = promClient.register, const register = promClient.register, counter = promClient.Counter, histogram = promClient.Histogram, summary = promClient.Summary, logger, promPath; summary = promClient.Summary; var numOfRequests = new counter({ let logger, promPath; const numOfRequests = new counter({ name: 'numOfRequests', help: 'Number of requests made', labelNames: ['method'] }); var pathsTaken = new counter({ const pathsTaken = new counter({ name: 'pathsTaken', help: 'Paths taken in the app', labelNames: ['path'] }); var responses = new summary({ const responses = new summary({ name: 'responses', help: 'Response time in millis', labelNames: ['method', 'path', 'status'] Loading Loading @@ -50,7 +50,7 @@ function injectMetricsRoute(app) { res.set('Content-Type', register.contentType); var metricsPromise = register.metrics(); const metricsPromise = register.metrics(); metricsPromise.then( (function(response, value) { Loading
app/params.js +2 −2 Original line number Diff line number Diff line let commander = require('commander'); const commander = require('commander'); module.exports = function(version) { Loading @@ -12,7 +12,7 @@ module.exports = function(version) { .showSuggestionAfterError() .parse(process.argv); let commanderOpts = commander.opts(); const commanderOpts = commander.opts(); return { useBuilt: commanderOpts.useBuilt, Loading