2020-10-31 13:33:59 -07:00
|
|
|
import express from 'express';
|
|
|
|
import authenticate from '../src/authenticate';
|
|
|
|
import dbConnection from './db';
|
2020-11-02 10:31:05 -08:00
|
|
|
import session from 'express-session';
|
|
|
|
import cookieParser from 'cookie-parser';
|
|
|
|
import grant from "grant";
|
|
|
|
import router from "./routes/user";
|
2020-10-31 13:33:59 -07:00
|
|
|
|
|
|
|
const app = express()
|
|
|
|
|
|
|
|
app.use(express.json());
|
|
|
|
app.use(express.urlencoded({ extended: true }));
|
2020-11-02 10:31:05 -08:00
|
|
|
app.use(cookieParser());
|
|
|
|
app.use(session({
|
|
|
|
secret: process.env.SECRET,
|
|
|
|
cookie: {
|
|
|
|
secure: process.env.NODE_ENV === 'production',
|
|
|
|
},
|
|
|
|
}));
|
2020-10-31 13:33:59 -07:00
|
|
|
|
|
|
|
app.use(async function (req, res, next) {
|
|
|
|
req.rawUser = authenticate(req);
|
|
|
|
req.user = req.rawUser && req.rawUser.authenticated ? req.rawUser : null;
|
|
|
|
req.admin = req.user && req.user.roles === 'admin';
|
|
|
|
req.db = await dbConnection();
|
|
|
|
next();
|
2020-11-02 10:31:05 -08:00
|
|
|
});
|
|
|
|
|
|
|
|
router.use(grant.express()(require('./social').default));
|
2020-10-31 13:33:59 -07:00
|
|
|
|
|
|
|
app.use(require('./routes/banner').default);
|
|
|
|
|
|
|
|
app.use(require('./routes/user').default);
|
|
|
|
app.use(require('./routes/profile').default);
|
|
|
|
app.use(require('./routes/admin').default);
|
|
|
|
|
|
|
|
app.use(require('./routes/nouns').default);
|
|
|
|
app.use(require('./routes/sources').default);
|
|
|
|
|
|
|
|
export default {
|
|
|
|
path: '/api',
|
|
|
|
handler: app,
|
|
|
|
}
|