diff options
| -rw-r--r-- | app/index.js | 11 | ||||
| -rw-r--r-- | app/node_modules/okserver/index.js | 5 | ||||
| -rw-r--r-- | app/node_modules/okservices/index.js | 28 | ||||
| -rw-r--r-- | app/node_modules/okservices/package.json | 15 |
4 files changed, 58 insertions, 1 deletions
diff --git a/app/index.js b/app/index.js index 4ec8730..b9958c2 100644 --- a/app/index.js +++ b/app/index.js @@ -13,6 +13,7 @@ var OKResource = require('okresource') var OKTemplate = require('oktemplate'); var OKServer = require('okserver'); var OKSchema = require('okschema'); +var OKImageService = require('okservices').OKImageService; /** * OKCMS! @@ -85,6 +86,11 @@ function OKCMS(options) { this._createAdminViews(adminPath, app, express, resourceConfig, resourceCache, adminTemplateProvider, adminMeta); + // Create services + var imageService = OKImageService({ + express: express + }); + var server = this._server = new OKServer({ express: express, app: app, @@ -93,7 +99,10 @@ function OKCMS(options) { // Specify root folders and paths for serving static assets root: root, adminRoot: adminRoot, - adminPath: adminPath + adminPath: adminPath, + services: { + image: imageService + } }); } diff --git a/app/node_modules/okserver/index.js b/app/node_modules/okserver/index.js index e6145ee..1645eaa 100644 --- a/app/node_modules/okserver/index.js +++ b/app/node_modules/okserver/index.js @@ -25,6 +25,7 @@ function OKServer(options) { var router = express.Router({ strict: app.get('strict routing') }); + var services = options.services || {}; Object.keys(views) // Sort such that more general routes are matched last .sort(specificity) @@ -59,6 +60,10 @@ function OKServer(options) { app.use(adminPath, express.static(adminRoot)); // Application router app.use(router); + // Add services + if (services.image) { + app.use('/_services/image', services.image.middleware()); + } // Make sure this lady is last. Checks whether the desired // route has a trailing-slash counterpart and redirects there app.use(slash()); diff --git a/app/node_modules/okservices/index.js b/app/node_modules/okservices/index.js new file mode 100644 index 0000000..cb96072 --- /dev/null +++ b/app/node_modules/okservices/index.js @@ -0,0 +1,28 @@ +var skipper = require('skipper'); + +function OKImageService(options) { + if (!(this instanceof OKImageService)) return new OKImageService(options); + options = options || {}; + if (!options.express) + throw new Error('Express not provided to OKImageService'); + var express = options.express; + + var router = express.Router(); + + router.use(skipper()); + + router.post('/', function(req, res) { + // req should have a method `file` on it which is + // provided by skipper. Use that to do AWS stuff + }); + + this._middleware = router; +} + +OKImageService.prototype.middleware = function() { + return this._middleware; +}; + +module.exports = { + OKImageService: OKImageService +}; diff --git a/app/node_modules/okservices/package.json b/app/node_modules/okservices/package.json new file mode 100644 index 0000000..f27247b --- /dev/null +++ b/app/node_modules/okservices/package.json @@ -0,0 +1,15 @@ +{ + "name": "okservices", + "version": "1.0.0", + "description": "providing very good services", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "OKFocus", + "license": "None", + "dependencies": { + "skipper": "^0.5.5", + "skipper-s3": "^0.5.5" + } +} |
