mirror of
https://github.com/jsbin/jsbin.git
synced 2026-01-25 15:38:56 +00:00
43 lines
1.0 KiB
JavaScript
43 lines
1.0 KiB
JavaScript
'use strict';
|
|
var passport = require('passport');
|
|
var DropboxOAuth2Strategy = require('passport-dropbox-oauth2').Strategy;
|
|
var active = false;
|
|
var noop = function () {};
|
|
try {
|
|
var zmq = require('zmq');
|
|
var socket = zmq.socket('push');
|
|
} catch (err){
|
|
zmq = null
|
|
socket = {
|
|
send: noop
|
|
}
|
|
};
|
|
|
|
module.exports = function (options) {
|
|
return !!zmq ? {
|
|
initialize: function () {
|
|
socket.bind(options.dropbox.port, function(err) {
|
|
console.error(err);
|
|
});
|
|
passport.use(new DropboxOAuth2Strategy({
|
|
clientID: options.dropbox.id,
|
|
clientSecret: options.dropbox.secret,
|
|
callbackURL: options.dropbox.callback
|
|
}, function (accessToken, refreshToken, profile, done) {
|
|
profile.accessToken = accessToken;
|
|
done(null, profile);
|
|
}
|
|
));
|
|
}
|
|
} : { initialize: noop }
|
|
};
|
|
|
|
module.exports.saveBin = function (file, fileName, user) {
|
|
socket.send(JSON.stringify({
|
|
type:'dropbox',
|
|
file: file,
|
|
fileName: fileName,
|
|
token: user.dropbox_token
|
|
}));
|
|
};
|