nraufu/politico

View on GitHub
server/app.js

Summary

Maintainability
A
0 mins
Test Coverage
import express from 'express';
import morgan from 'morgan';
import cors from 'cors';
import swaggerUi from 'swagger-ui-express';
import swaggerDocument from '../swagger.json';
import userRouter from './routes/users';
import partyRouter from './routes/parties';
import officeRouter from './routes/offices';
import voteRouter from "./routes/votes";
import petitionRouter from './routes/petition';
import createTables from './models/createTables';

createTables();

const app = express();
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cors());
app.use(morgan('dev'));
const PORT = process.env.PORT || 3000;

app.get('/', (req, res) => {
    res.status(200).json({
        Message: 'Welcome To Politico 👋'
    });
});

app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));

//api routes
app.use('/auth/', userRouter);
app.use('/parties/', partyRouter);
app.use('/offices/', officeRouter);
app.use('/votes/', voteRouter);
app.use('/petitions/', petitionRouter);

//invalid route handler
app.use((req, res, next) => {
    res.status(400).json({Error: 'Invalid Request'});
    next();
});

app.listen(PORT, () => console.log(`Server listening on port ${PORT}....`));

export default app;