keeweb/app/scripts/storage/storage-dropbox.js

45 lines
1.4 KiB
JavaScript
Raw Normal View History

2015-12-02 21:39:40 +01:00
'use strict';
2015-12-12 09:53:50 +01:00
var DropboxLink = require('../comp/dropbox-link'),
Logger = require('../util/logger');
var logger = new Logger('storage-dropbox');
2015-12-02 21:39:40 +01:00
var StorageDropbox = {
name: 'dropbox',
enabled: true,
load: function(path, callback) {
2015-12-12 09:53:50 +01:00
logger.debug('Load', path);
var ts = logger.ts();
2015-12-07 20:07:56 +01:00
DropboxLink.openFile(path, function(err, data, stat) {
2015-12-12 09:53:50 +01:00
logger.debug('Loaded', path, stat ? stat.versionTag : null, logger.ts(ts));
2015-12-08 20:18:35 +01:00
if (callback) { callback(err, data, stat ? { rev: stat.versionTag } : null); }
2015-12-12 09:53:50 +01:00
}, _.noop);
2015-12-08 20:18:35 +01:00
},
stat: function(path, callback) {
2015-12-12 09:53:50 +01:00
logger.debug('Stat', path);
var ts = logger.ts();
2015-12-08 20:18:35 +01:00
DropboxLink.stat(path, function(err, stat) {
2015-12-12 09:53:50 +01:00
logger.debug('Stated', path, stat ? stat.versionTag : null, logger.ts(ts));
2015-12-08 20:18:35 +01:00
if (callback) { callback(err, stat ? { rev: stat.versionTag } : null); }
2015-12-12 09:53:50 +01:00
}, _.noop);
2015-12-02 21:39:40 +01:00
},
2015-12-10 20:44:02 +01:00
save: function(path, data, callback, rev) {
2015-12-12 09:53:50 +01:00
logger.debug('Save', path, rev);
var ts = logger.ts();
2015-12-11 21:51:16 +01:00
DropboxLink.saveFile(path, data, rev, function(err) {
2015-12-12 09:53:50 +01:00
logger.debug('Saved', path, logger.ts(ts));
2015-12-11 21:51:16 +01:00
if (!callback) { return; }
if (err && err.status === DropboxLink.ERROR_CONFLICT) {
err = { revConflict: true };
}
callback(err);
2015-12-12 09:53:50 +01:00
}, _.noop);
2015-12-02 21:39:40 +01:00
}
};
module.exports = StorageDropbox;