summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/index.js11
-rw-r--r--app/node_modules/okserver/index.js5
-rw-r--r--app/node_modules/okservices/index.js28
-rw-r--r--app/node_modules/okservices/package.json15
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"
+ }
+}