mirror of
https://github.com/jsbin/jsbin.git
synced 2026-01-25 15:38:56 +00:00
Merge branch 'feature/private_bins' of github.com:remy/jsbin into feature/private_bins
Conflicts: lib/models/bin.js
This commit is contained in:
commit
c7b2e6156f
@ -448,15 +448,6 @@ module.exports = utils.inherit(Object, {
|
||||
}
|
||||
});
|
||||
},
|
||||
getVisibility: function(bin, fn) {
|
||||
var sql = templates.getVisibility;
|
||||
this.connection.query(sql, [bin.url, bin.revision], function(err, result) {
|
||||
if (err) {
|
||||
return fn(err);
|
||||
}
|
||||
fn(null, result[0] ? result[0].visibility : false);
|
||||
});
|
||||
},
|
||||
getBinMetadata: function(bin, fn) {
|
||||
var sql = templates.getBinMetadata;
|
||||
this.connection.query(sql, [bin.url, bin.revision], function(err, result) {
|
||||
@ -469,13 +460,16 @@ module.exports = utils.inherit(Object, {
|
||||
});
|
||||
});
|
||||
},
|
||||
setBinVisibility: function(bin, value, fn) {
|
||||
setBinVisibility: function(bin, name, value, fn) {
|
||||
var sql = templates.setBinVisibility, params = [
|
||||
value, bin.metadata.name, bin.url
|
||||
value, name, bin.url
|
||||
];
|
||||
if (!bin.metadata || bin.metadata.name !== name) {
|
||||
return fn(301);
|
||||
}
|
||||
this.connection.query(sql, params, function(err, result) {
|
||||
if (err) {
|
||||
return fn(err);
|
||||
return fn(500);
|
||||
}
|
||||
fn(err, result);
|
||||
});
|
||||
|
||||
@ -34,7 +34,6 @@
|
||||
"reportBin": "UPDATE `sandbox` SET `reported`=? WHERE `url`=? AND `revision`=? AND `active`='y'",
|
||||
"isOwnerOf": "SELECT name=? as `owner` FROM `owners` WHERE `url`=? AND `revision`=1",
|
||||
"getUserBinCount": "SELECT COUNT(*) as total FROM `owners` WHERE `name`=?",
|
||||
"getVisibility": "SELECT * FROM `owners` WHERE `url`=? AND `revision`=?",
|
||||
"setBinVisibility": "UPDATE `owners` SET `visibility`=? WHERE `name`=? AND `url`=?",
|
||||
"getBinMetadata": "SELECT * FROM `owners` AS `o`, `ownership` AS `os` WHERE o.name=os.name AND o.url=? AND o.revision=?",
|
||||
"setProAccount": "UPDATE ownership SET `pro`=?, `updated`=? WHERE `name`=?"
|
||||
|
||||
@ -520,15 +520,6 @@ module.exports = utils.inherit(Object, {
|
||||
}
|
||||
});
|
||||
},
|
||||
getVisibility: function(bin, fn) {
|
||||
var sql = templates.getVisibility;
|
||||
this.connection.get(sql, [bin.url, bin.revision], function(err, result) {
|
||||
if (err) {
|
||||
return fn(err);
|
||||
}
|
||||
fn(null, result[0] ? result[0].visibility : false);
|
||||
});
|
||||
},
|
||||
getBinMetadata: function(bin, fn) {
|
||||
var sql = templates.getBinMetadata;
|
||||
this.connection.get(sql, [bin.url, bin.revision], function(err, result) {
|
||||
@ -541,13 +532,16 @@ module.exports = utils.inherit(Object, {
|
||||
});
|
||||
});
|
||||
},
|
||||
setBinVisibility: function(bin, value, fn) {
|
||||
setBinVisibility: function(bin, name, value, fn) {
|
||||
var sql = templates.setBinVisibility, params = [
|
||||
value, bin.metadata.name, bin.url
|
||||
];
|
||||
if (bin.metadata.name !== name) {
|
||||
return fn(301)
|
||||
}
|
||||
this.connection.run(sql, params, function(err, result) {
|
||||
if (err) {
|
||||
return fn(err);
|
||||
return fn(500);
|
||||
}
|
||||
fn(err, result);
|
||||
});
|
||||
|
||||
@ -362,17 +362,20 @@ module.exports = Observable.extend({
|
||||
if (!req.session.user || !req.session.user.pro) {
|
||||
return res.send(301);
|
||||
}
|
||||
this.models.bin.setBinVisibility(req.bin, 'private', function(err, bin){
|
||||
this.models.bin.setBinVisibility(req.bin, req.session.name, 'private', function(err, bin){
|
||||
if (err) {
|
||||
res.send(500);
|
||||
res.send(err);
|
||||
}
|
||||
res.send(200, 'OK');
|
||||
});
|
||||
},
|
||||
setBinAsPublic: function(req, res, next) {
|
||||
this.models.bin.setBinVisibility(req.bin, 'public', function(err, bin){
|
||||
if (!req.session.user || !req.session.user.pro) {
|
||||
return res.send(301);
|
||||
}
|
||||
this.models.bin.setBinVisibility(req.bin, req.session.name, 'public', function(err, bin){
|
||||
if (err) {
|
||||
res.send(500);
|
||||
res.send(err);
|
||||
}
|
||||
res.send(200, 'OK');
|
||||
});
|
||||
|
||||
@ -69,14 +69,11 @@ var model = {
|
||||
report: function (params, fn) {
|
||||
this.store.reportBin(params, fn);
|
||||
},
|
||||
getVisibility: function(bin, fn) {
|
||||
this.store.getVisibility(bin, fn);
|
||||
},
|
||||
getBinMetadata: function(bin, fn) {
|
||||
this.store.getBinMetadata(bin, fn);
|
||||
},
|
||||
setBinVisibility: function(bin, value, fn) {
|
||||
this.store.setBinVisibility(bin, value, fn);
|
||||
setBinVisibility: function(bin, name, value, fn) {
|
||||
this.store.setBinVisibility(bin, name, value, fn);
|
||||
}
|
||||
};
|
||||
|
||||
@ -104,4 +101,4 @@ Object.keys(model).forEach(function (key) {
|
||||
};
|
||||
});
|
||||
|
||||
module.exports = Observable.extend(model);
|
||||
module.exports = Observable.extend(model);
|
||||
|
||||
@ -47,7 +47,6 @@ var methods = [
|
||||
'getUserBinCount',
|
||||
'populateOwners',
|
||||
'getOne',
|
||||
'getVisibility',
|
||||
'getBinMetadata',
|
||||
'setBinVisibility',
|
||||
'setProAccount'
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user