diff --git a/example/app-asteroid.js b/example/app-asteroid.js
index 78e1bb5..e3fb05a 100644
--- a/example/app-asteroid.js
+++ b/example/app-asteroid.js
@@ -1,7 +1,7 @@
var asteroid = require('asteroid')
, app = module.exports = asteroid();
-var StorageService = require('../');
+// var StorageService = require('../');
// expose a rest api
app.use(asteroid.rest());
@@ -10,6 +10,22 @@ app.configure(function () {
app.set('port', process.env.PORT || 3000);
});
+var ds = asteroid.createDataSource({
+ connector: require('../lib/storage-connector'),
+ provider: 'filesystem',
+ root: '/tmp/storage'
+});
+
+var Container = ds.createModel('container', {name: String});
+
+console.log(Container);
+Container.getContainers(console.log);
+
+console.log('shared', Container.getContainers.shared);
+
+app.model(Container);
+
+/*
var handler = new StorageService({provider: 'filesystem', root: '/tmp/storage'});
app.service('storage', handler);
@@ -28,46 +44,8 @@ app.get('/', function (req, res, next) {
res.end();
});
-app.post('/upload/:container', function (req, res, next) {
- handler.upload(req, res, function (err, result) {
- if (!err) {
- res.setHeader('Content-Type', 'application/json');
- res.send(200, result);
- } else {
- res.send(500, err);
- }
- });
-});
+*/
-app.get('/download', function (req, res, next) {
- handler.getContainers(function (err, containers) {
- var html = "
Containers
";
- containers.forEach(function (f) {
- html += "- " + f.name + "
"
- });
- html += "
Home
";
- res.send(200, html);
- });
-});
-
-app.get('/download/:container', function (req, res, next) {
- handler.getFiles(req.params.container, function (err, files) {
- var html = "Files in container " + req.params.container + "
Home
";
- res.send(200, html);
- });
-});
-
-app.get('/download/:container/:file', function (req, res, next) {
- handler.download(req, res, function (err, result) {
- if (err) {
- res.send(500, err);
- }
- });
-});
app.listen(app.get('port'));
console.log('http://127.0.0.1:' + app.get('port'));
diff --git a/lib/index.js b/lib/index.js
index 47ebfb7..e3d5d7a 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -132,15 +132,15 @@ StorageService.prototype.removeFile.http = [
];
StorageService.prototype.upload.shared = true;
-StorageService.prototype.upload.accepts = [{arg: 'file', type: 'object', 'http': {source: 'req'}}];
-StorageService.prototype.upload.returns = {arg: 'description', type: 'object'};
+StorageService.prototype.upload.accepts = [{arg: 'req', type: 'undefined', 'http': {source: 'req'}}];
+StorageService.prototype.upload.returns = {arg: 'result', type: 'object'};
StorageService.prototype.upload.http = [
{verb: 'post', path: '/:container/upload/:file'}
];
StorageService.prototype.download.shared = true;
-StorageService.prototype.download.accepts = [{arg: 'file', type: 'object', 'http': {source: 'req'}}];
-StorageService.prototype.download.returns = {arg: 'body', type: 'object'};
+StorageService.prototype.download.accepts = [{arg: 'req', type: 'undefined', 'http': {source: 'req'}}];
+StorageService.prototype.download.returns = {arg: 'res', type: 'stream'};
StorageService.prototype.download.http = [
{verb: 'get', path: '/:container/download/:file'}
];
\ No newline at end of file
diff --git a/lib/storage-connector.js b/lib/storage-connector.js
new file mode 100644
index 0000000..bf81bc7
--- /dev/null
+++ b/lib/storage-connector.js
@@ -0,0 +1,26 @@
+var StorageService = require('./index');
+/**
+ * Export the initialize method to JDB
+ * @param schema
+ * @param callback
+ */
+exports.initialize = function (schema, callback) {
+ var settings = schema.settings || {};
+
+ var adapter = new StorageService(settings);
+ schema.adapter = adapter;
+ schema.adapter.schema = schema;
+
+ adapter.DataAccessObject = function() {};
+ for (var m in StorageService.prototype) {
+ var method = StorageService.prototype[m];
+ if ('function' === typeof method) {
+ adapter.DataAccessObject[m] = method.bind(adapter);
+ for(var k in method) {
+ adapter.DataAccessObject[m][k] = method[k];
+ }
+ }
+ }
+
+ adapter.define = function(model, properties, settings) {};
+}