fb2eaa3950
* WIP(delete): remove business logic from controller
* fix(deletion): handle group leave logic on app server still
* fix(lint): unused import
* fix(import): bracket syntax
* fix(test): adapt test for worker flow
* fix(deletion): update delete/feedback form copy
* fix(text): don't break to new paragraph about Gems
* fix(deletion): remove orphaned chat messages
* Revert "fix(deletion): handle group leave logic on app server still"
This reverts commit 9db541f4c3.
* fix(tests): remove tests
These can potentially be tested in the worker's suite? They target functionality that the group leave route handles within the deletion flow
* fix(lint): no-undef
* refactor redis setup into own file and use ioredis
* use bullmq directly to schedule jobs
* add space
* add key prefix
* add semicolon
* fix(jobs): update redis package
---------
Co-authored-by: Phillip Thelen <phillip@habitica.com>
52 lines
1.2 KiB
JavaScript
52 lines
1.2 KiB
JavaScript
import nconf from 'nconf';
|
|
import express from 'express';
|
|
import http from 'http';
|
|
import mongoose from 'mongoose';
|
|
import redis from 'ioredis';
|
|
import logger from './libs/logger';
|
|
|
|
// 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 connectToMongoDB from './libs/mongoose';
|
|
import './libs/setupPassport';
|
|
import './libs/setupFirebase';
|
|
|
|
// Load some schemas & models
|
|
import './models/challenge';
|
|
import './models/group';
|
|
import './models/user';
|
|
import SERVER_STATUS from './libs/serverStatus';
|
|
|
|
connectToMongoDB();
|
|
|
|
const server = http.createServer();
|
|
const app = express();
|
|
|
|
process.on('SIGTERM', async () => {
|
|
console.log('SIGTERM signal received: closing HTTP server');
|
|
server.close(async () => {
|
|
await mongoose.disconnect();
|
|
if (redis.quit) {
|
|
await redis.quit();
|
|
}
|
|
process.exit(0);
|
|
});
|
|
});
|
|
|
|
app.set('port', nconf.get('PORT'));
|
|
|
|
attachMiddlewares(app, server);
|
|
|
|
server.on('request', app);
|
|
server.listen(app.get('port'), () => {
|
|
logger.info(`Express server listening on port ${app.get('port')}`);
|
|
SERVER_STATUS.EXPRESS = true;
|
|
});
|
|
|
|
export default server;
|