Skip to content

Commit

Permalink
Styled with Prettier.
Browse files Browse the repository at this point in the history
  • Loading branch information
astrotars committed Aug 28, 2017
1 parent 1d2249c commit 43a3acd
Show file tree
Hide file tree
Showing 23 changed files with 3,411 additions and 1,656 deletions.
74 changes: 37 additions & 37 deletions api/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,41 +4,41 @@
* Config
*/
module.exports = {
name: 'GetStream.io - React Example App',
version: '1.0.0',
env: process.env.NODE_ENV || 'development',
port: process.env.PORT || 8000,
jwt: {
secret: process.env.JWT_SECRET,
},
db: {
name: 'cabin',
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
host: process.env.DB_HOST,
port: process.env.DB_PORT,
},
mapbox: {
accessToken: process.env.MAPBOX_ACCESS_TOKEN,
},
s3: {
key: process.env.S3_KEY,
secret: process.env.S3_SECRET,
bucket: process.env.S3_BUCKET,
},
stream: {
appId: process.env.STREAM_APP_ID,
key: process.env.STREAM_KEY,
secret: process.env.STREAM_SECRET,
},
algolia: {
appId: process.env.ALGOLIA_APP_ID,
searchOnlyKey: process.env.ALGOLIA_SEARCH_ONLY_KEY,
apiKey: process.env.ALGOLIA_API_KEY,
},
keen: {
projectId: process.env.KEEN_PROJECT_ID,
writeKey: process.env.KEEN_WRITE_KEY,
readKey: process.env.KEEN_READ_KEY,
},
name: 'GetStream.io - React Example App',
version: '1.0.0',
env: process.env.NODE_ENV || 'development',
port: process.env.PORT || 8000,
jwt: {
secret: process.env.JWT_SECRET,
},
db: {
name: 'cabin',
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
host: process.env.DB_HOST,
port: process.env.DB_PORT,
},
mapbox: {
accessToken: process.env.MAPBOX_ACCESS_TOKEN,
},
s3: {
key: process.env.S3_KEY,
secret: process.env.S3_SECRET,
bucket: process.env.S3_BUCKET,
},
stream: {
appId: process.env.STREAM_APP_ID,
key: process.env.STREAM_KEY,
secret: process.env.STREAM_SECRET,
},
algolia: {
appId: process.env.ALGOLIA_APP_ID,
searchOnlyKey: process.env.ALGOLIA_SEARCH_ONLY_KEY,
apiKey: process.env.ALGOLIA_API_KEY,
},
keen: {
projectId: process.env.KEEN_PROJECT_ID,
writeKey: process.env.KEEN_WRITE_KEY,
readKey: process.env.KEEN_READ_KEY,
},
};
91 changes: 46 additions & 45 deletions api/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,60 +3,59 @@
/**
* Module Dependencies
*/
var config = require('./config'),
bunyan = require('bunyan'),
winston = require('winston'),
bunyanWinston = require('bunyan-winston-adapter'),
mysql = require('mysql'),
jwt = require('restify-jwt'),
Mail = require('winston-mail').Mail,
Sentry = require('winston-sentry');
var config = require('./config'),
bunyan = require('bunyan'),
winston = require('winston'),
bunyanWinston = require('bunyan-winston-adapter'),
mysql = require('mysql'),
jwt = require('restify-jwt'),
Mail = require('winston-mail').Mail,
Sentry = require('winston-sentry');

/**
* Global Dependencies
*/
global.__base = __dirname + '/';
global.config = require('./config.js');
global.__base = __dirname + '/';
global.config = require('./config.js');
global.restify = require('restify');

/**
* Transports (Logging)
*/
var transports = [
new winston.transports.Console({
level: 'info',
timestamp: function() {
return new Date().toString();
},
json: true
})
new winston.transports.Console({
level: 'info',
timestamp: function() {
return new Date().toString();
},
json: true,
}),
];

/**
* Sentry Transport (Logging)
*/
if (process.env.SENTRY) {
new winston.transports.Console({ level: 'silly' }),
new Sentry({
patchGlobal: true,
dsn: process.env.SENTRY,
})
new winston.transports.Console({ level: 'silly' }), new Sentry({
patchGlobal: true,
dsn: process.env.SENTRY,
});
}

/**
* Logging
*/
global.log = new winston.Logger({
transports: transports
transports: transports,
});

/**
* Initialize Server
*/
global.server = restify.createServer({
name : config.name,
version : config.version,
log : bunyanWinston.createAdapter(log),
name: config.name,
version: config.version,
log: bunyanWinston.createAdapter(log),
});

/**
Expand All @@ -68,37 +67,39 @@ server.use(restify.authorizationParser());
server.use(restify.queryParser({ mapParams: true }));
server.pre(require('./lib/cors')());
server.use(restify.fullResponse());
server.use(jwt({ secret: config.jwt.secret }).unless({
path: ['/users']
}));
server.use(
jwt({ secret: config.jwt.secret }).unless({
path: ['/users'],
}),
);

/**
* Initialize MySQL Connection
*/
global.db = mysql.createConnection({
port : config.db.port,
host : config.db.host,
user : config.db.username,
password : config.db.password,
database : config.db.name,
timezone: 'UTC'
port: config.db.port,
host: config.db.host,
user: config.db.username,
password: config.db.password,
database: config.db.name,
timezone: 'UTC',
});
db.connect();

db.query(`
SET sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
`)
`);

/**
* Boot
*/
server.listen(config.port, function () {
require('./routes');
log.info(
'%s v%s ready to accept connections on port listening on port %s in %s environment',
server.name,
config.version,
config.port,
config.env
);
server.listen(config.port, function() {
require('./routes');
log.info(
'%s v%s ready to accept connections on port listening on port %s in %s environment',
server.name,
config.version,
config.port,
config.env,
);
});
97 changes: 58 additions & 39 deletions api/lib/cors/index.js
Original file line number Diff line number Diff line change
@@ -1,42 +1,61 @@
'use strict';

function cors(options) {

const defaultAllowHeaders = ['Authorization', 'Content-Type'];
const defaultAllowMethods = ["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD"];

const opts = Object.assign({}, {
allowHeaders: defaultAllowHeaders,
allowMethods: defaultAllowMethods,
allowOrigins: null,
allowCreds: true,
}, options || {});

const setHeader = (req, res, methods) => {
const origin = req.headers.origin;
const requestMethod = req.headers['access-control-request-method'];
const requestHeaders = req.headers['access-control-request-headers'];

res.once('header', () => {
if (opts.allowCreds) res.header('Access-Control-Allow-Credentials', 'true');

if (opts.allowOrigins) {
res.header('Access-Control-Allow-Origin',
(Array.isArray(opts.allowOrigins)) ? opts.allowOrigins.join(', ') : opts.allowOrigins);
} else {
res.header('Access-Control-Allow-Origin', origin);
}

res.header('Access-Control-Allow-Methods', opts.allowMethods.join(', '));
res.header('Access-Control-Allow-Headers', opts.allowHeaders.map(h => h.toUpperCase()).join(', '));
});
};

return (req, res, next) => {
setHeader(req, res);
if (req.method == 'OPTIONS') return res.send(200);
return next();
};
};
const defaultAllowHeaders = ['Authorization', 'Content-Type'];
const defaultAllowMethods = [
'GET',
'POST',
'PUT',
'DELETE',
'PATCH',
'HEAD',
];

const opts = Object.assign(
{},
{
allowHeaders: defaultAllowHeaders,
allowMethods: defaultAllowMethods,
allowOrigins: null,
allowCreds: true,
},
options || {},
);

const setHeader = (req, res, methods) => {
const origin = req.headers.origin;
const requestMethod = req.headers['access-control-request-method'];
const requestHeaders = req.headers['access-control-request-headers'];

res.once('header', () => {
if (opts.allowCreds)
res.header('Access-Control-Allow-Credentials', 'true');

if (opts.allowOrigins) {
res.header(
'Access-Control-Allow-Origin',
Array.isArray(opts.allowOrigins)
? opts.allowOrigins.join(', ')
: opts.allowOrigins,
);
} else {
res.header('Access-Control-Allow-Origin', origin);
}

res.header(
'Access-Control-Allow-Methods',
opts.allowMethods.join(', '),
);
res.header(
'Access-Control-Allow-Headers',
opts.allowHeaders.map(h => h.toUpperCase()).join(', '),
);
});
};

return (req, res, next) => {
setHeader(req, res);
if (req.method == 'OPTIONS') return res.send(200);
return next();
};
}

module.exports = cors;
Loading

0 comments on commit 43a3acd

Please sign in to comment.