This repository has been archived on 2026-06-29. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
spellsaurus/api/index.js
2020-12-26 17:01:00 +01:00

52 lines
1.3 KiB
JavaScript

'use strict';
// MODULES
const express = require('express');
const bodyParser = require('body-parser');
const helmet = require('helmet');
const morgan = require('morgan');
const cors = require('cors'); // module to format the json response
const dotenv = require('dotenv').config();
// Creates instances of database connections
const connection = require('./database/bookshelf');
const db = connection.db;
// CONSTANTS
const port = 2814;
// Import routes
const routes = require('./routes');
// Builds app w/ express
let app = express();
app.use(bodyParser.json({ limit: '10kb' }));
app.use(cors({
origin: [
"http://localhost:8080",
],
credentials: true,
}));
app.use(morgan('dev'));
app.use(helmet());
// Server
app.listen(port, () => console.log(`App listening on port ${port}`));
// Auth guard
const authguard = (req, res, next) => {
if (req.headers.auracle_key !== process.env.API_KEY_PUBLIC) {
return res.status(401).send('The API key is either missing or incorrect.');
} else {
next();
}
}
// Routing
app.use('/api/spells', authguard, routes.spells);
app.use('/api/schools', authguard, routes.schools);
app.use('/api/meta_schools', authguard, routes.meta_schools);
app.use('/api/variables', authguard, routes.variables);
app.use('/api/ingredients', authguard, routes.ingredients);
app.use('/api/users', authguard, routes.users);