webgme-engine
Version:
WebGME server and Client API without a GUI
52 lines (40 loc) • 1.43 kB
JavaScript
/*eslint-env node*/
/**
* @author pmeijer / https://github.com/pmeijer
*/
;
var Q = require('q'),
BlobFSBackend = require('./BlobFSBackend'),
BlobRunPluginClient = require('./BlobRunPluginClient');
function BlobClientWithFSBackend(gmeConfig, logger, opts) {
var blobBackend = new BlobFSBackend(gmeConfig, logger),
blobClient = new BlobRunPluginClient(blobBackend, logger, opts);
// Forward the buckets for users.
blobClient.contentBucket = blobBackend.contentBucket;
blobClient.metadataBucket = blobBackend.metadataBucket;
blobClient.tempBucket = blobBackend.tempBucket;
blobClient.listObjects = function (bucket, callback) {
var deferred = Q.defer();
blobBackend.listObjects(bucket, function (err, hashes) {
if (err) {
deferred.reject(err);
} else {
deferred.resolve(hashes);
}
});
return deferred.promise.nodeify(callback);
};
blobClient.deleteObject = function (bucket, hash, callback) {
var deferred = Q.defer();
blobBackend.__deleteObject(bucket, hash, function (err) {
if (err) {
deferred.reject(err);
} else {
deferred.resolve();
}
});
return deferred.promise.nodeify(callback);
};
return blobClient;
}
module.exports = BlobClientWithFSBackend;