From eaa9b7f09400d90b1a1d6cf9caeb3995eb3a4dd5 Mon Sep 17 00:00:00 2001 From: Roman Timashev Date: Wed, 23 Mar 2016 02:12:19 +0300 Subject: [PATCH] + server --- services/Instagram/src/server.js | 45 ++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 services/Instagram/src/server.js diff --git a/services/Instagram/src/server.js b/services/Instagram/src/server.js new file mode 100644 index 00000000..fe139491 --- /dev/null +++ b/services/Instagram/src/server.js @@ -0,0 +1,45 @@ +import Koa from 'koa'; +import serve from 'koa-static'; +import convert from 'koa-convert'; +import sessionStore from 'koa-session-store'; +import store from 'koa-session-mongo'; +import bodyParser from 'koa-bodyparser'; + +import {db} from './core/db'; +import instagram from './middlewares/instagram'; +import {routers, statelessRouters} from './routers'; +import {sessionSecret, sessionExpirationTime} from './config'; + +export default function(){ + const app = new Koa(); + app.proxy = true; + app.keys = [sessionSecret]; + + app.use(convert(serve('../build'))); + app.use(bodyParser()); + app.use(statelessRouters()); + app.use(session('sid', sessionExpirationTime)); + app.use(instagram()); + app.use(routers()); + app.use(error()); + + return app; +} + +function session(name, exp){ + return convert(sessionStore({ + name: name, + expirationTime: exp, + store: store.create({ + db: db, + collection: 'sessions' + }) + })) +} + +function error(){ + return ctx => { + ctx.status = 404; + ctx.body = `Document ${ctx.path} not found`; + }; +}