Files
habitica/website/server/server.js
Brian Fenton ac90a40be5 Api quest restrictions - no purchase/start without fulfilling eligibility requirements (#10387)
* removing duplicate translation key

* fixing typos

* extracting quest prerequisite check. adding check for previous quest completion, if required

* fixing (undoing) static change, adding tests

* more typos

* correcting test failures

* honoring quest prerequisites in quest invite API call. updating format of il8n string replacement arg

* no longer using apiError, use translate method instead (msg key was not defined)

* adding @apiError to docblock as requested in issue

* removing checks on quest invite method. small window of opportunity/low risk
2018-05-27 16:41:56 +02:00

45 lines
1.1 KiB
JavaScript

import nconf from 'nconf';
import logger from './libs/logger';
import express from 'express';
import http from 'http';
try {
// @TODO: May need to remove - testing
const memwatch = require('memwatch-next'); // eslint-disable-line global-require
memwatch.on('leak', (info) => {
const message = 'Memory leak detected.';
logger.error(message, info);
});
} catch (err) {
logger.info('"memwatch-next" couldn\'t be loaded.');
}
const server = http.createServer();
const app = express();
app.set('port', nconf.get('PORT'));
// Setup translations
// Must come before attach middlewares so Mongoose validations can use translations
import './libs/i18n';
import attachMiddlewares from './middlewares/index';
// Load config files
import './libs/setupMongoose';
import './libs/setupPassport';
// Load some schemas & models
import './models/challenge';
import './models/group';
import './models/user';
attachMiddlewares(app, server);
server.on('request', app);
server.listen(app.get('port'), () => {
logger.info(`Express server listening on port ${app.get('port')}`);
});
module.exports = server;