Created
December 28, 2010 03:58
-
-
Save nbqx/756886 to your computer and use it in GitHub Desktop.
Revisions
-
nbqx revised this gist
Dec 28, 2010 . 1 changed file with 20 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,6 +1,11 @@ var request = require('request'), querystring = require('querystring'); var Note = function(key){ this.key = key; } Note.prototype = new process.EventEmitter(); var SimpleNote = function(email, passwd){ this.email = email; this.passwd = passwd; @@ -71,6 +76,20 @@ SimpleNote.prototype.get = function(key,cbk){ }.bind(self)); }; SimpleNote.prototype.getNote = function(key){ var self = this; var note = new Note(key); self.auth.emit('connected', function(){ request({uri:this.baseURL+'/note?'+this.toQuery({email:this.email, auth:this.token, key:key}), method:'GET'}, function(err,res,bdy){ if(!err && res.statusCode==200){ note.content = bdy; note.emit('load'); }else{ throw err } }); }.bind(self)); return note } SimpleNote.prototype.create = function(content,cbk){ var self = this; self.auth.emit('connected', function(){ @@ -110,4 +129,4 @@ SimpleNote.prototype.toQuery = function(obj){ SimpleNote.prototype.toBase64 = function(str){ return (new Buffer(str)).toString('base64') } -
nbqx revised this gist
Dec 28, 2010 . 1 changed file with 15 additions and 7 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -4,7 +4,7 @@ var request = require('request'), var SimpleNote = function(email, passwd){ this.email = email; this.passwd = passwd; this.encoded_body = (new Buffer(this.toQuery({email:this.email,password:this.passwd}))).toString("base64"); this.token = undefined; this.baseURL = "https://simple-note.appspot.com/api"; @@ -38,7 +38,7 @@ var SimpleNote = function(email, passwd){ SimpleNote.prototype.list = function(cbk){ var self = this; self.auth.emit('connected', function(){ request({uri:this.baseURL+'/index?'+this.toQuery({email:this.email, auth:this.token}), method:'GET'}, function(err,res,bdy){ if(!err && res.statusCode==200){ var jsn = JSON.parse(bdy); if(cbk) cbk(jsn); @@ -51,7 +51,7 @@ SimpleNote.prototype.search = function(q, cbk){ var self = this; var results = 10; self.auth.emit('connected', function(){ request({uri:this.baseURL+'/search?'+this.toQuery({email:this.email, auth:this.token, query:q, results:results}), method:'GET'}, function(err,res,bdy){ if(!err && res.statusCode==200){ var jsn = JSON.parse(bdy); if(cbk) cbk(jsn); @@ -63,7 +63,7 @@ SimpleNote.prototype.search = function(q, cbk){ SimpleNote.prototype.get = function(key,cbk){ var self = this; self.auth.emit('connected', function(){ request({uri:this.baseURL+'/note?'+this.toQuery({email:this.email, auth:this.token, key:key}), method:'GET'}, function(err,res,bdy){ if(!err && res.statusCode==200){ if(cbk) cbk(bdy); }else{ throw err } @@ -74,7 +74,7 @@ SimpleNote.prototype.get = function(key,cbk){ SimpleNote.prototype.create = function(content,cbk){ var self = this; self.auth.emit('connected', function(){ request({uri:this.baseURL+'/note?'+this.toQuery({email:this.email, auth:this.token}), method:'POST', body:this.toBase64(content)}, function(err,res,bdy){ if(!err && res.statusCode==200){ if(cbk) cbk(bdy); }else{ throw err } @@ -85,7 +85,7 @@ SimpleNote.prototype.create = function(content,cbk){ SimpleNote.prototype.update = function(key, content, cbk){ var self = this; self.auth.emit('connected', function(){ request({uri:this.baseURL+'/note?'+this.toQuery({email:this.email, auth:this.token, key:key}), method:'POST', body:this.toBase64(content)}, function(err,res,bdy){ if(!err && res.statusCode==200){ if(cbk) cbk(bdy); }else{ throw err } @@ -96,10 +96,18 @@ SimpleNote.prototype.update = function(key, content, cbk){ SimpleNote.prototype.delete = function(key,cbk){ var self = this; self.auth.emit('connected', function(){ request({uri:this.baseURL+'/delete?'+this.toQuery({email:this.email, auth:this.token, key:key}), method:'GET'}, function(err,res,bdy){ if(!err && res.statusCode==200){ if(cbk) cbk(bdy); }else{ throw err } }); }.bind(self)); } SimpleNote.prototype.toQuery = function(obj){ return querystring.stringify(obj) } SimpleNote.prototype.toBase64 = function(str){ return (new Buffer(str)).toString('base64') } -
nbqx created this gist
Dec 28, 2010 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,105 @@ var request = require('request'), querystring = require('querystring'); var SimpleNote = function(email, passwd){ this.email = email; this.passwd = passwd; this.encoded_body = (new Buffer(querystring.stringify({email:this.email,password:this.passwd}))).toString("base64"); this.token = undefined; this.baseURL = "https://simple-note.appspot.com/api"; var Auth = function(){}; Auth.prototype = new process.EventEmitter(); this.auth = new Auth(); this.auth.on('login', function(){ request({uri:this.baseURL+'/login', method:'POST', body:this.encoded_body}, function(err,res,bdy){ if(!err && res.statusCode==200){ this.token = bdy; } }.bind(this)); }.bind(this)); this.auth.on('connected', function(fn){ var timer = setInterval(function(){ if(this.token!=undefined){ fn(); clearInterval(timer); } }.bind(this), 1000); }.bind(this)); this.auth.emit('login'); this.auth.emit('connected', function(){return true}.bind(this)); return this } SimpleNote.prototype.list = function(cbk){ var self = this; self.auth.emit('connected', function(){ request({uri:this.baseURL+'/index?'+querystring.stringify({email:this.email, auth:this.token}), method:'GET'}, function(err,res,bdy){ if(!err && res.statusCode==200){ var jsn = JSON.parse(bdy); if(cbk) cbk(jsn); }else{ throw err } }); }.bind(self)); } SimpleNote.prototype.search = function(q, cbk){ var self = this; var results = 10; self.auth.emit('connected', function(){ request({uri:this.baseURL+'/search?'+querystring.stringify({email:this.email, auth:this.token, query:q, results:results}), method:'GET'}, function(err,res,bdy){ if(!err && res.statusCode==200){ var jsn = JSON.parse(bdy); if(cbk) cbk(jsn); }else{ throw err } }); }.bind(self)); } SimpleNote.prototype.get = function(key,cbk){ var self = this; self.auth.emit('connected', function(){ request({uri:this.baseURL+'/note?'+querystring.stringify({email:this.email, auth:this.token, key:key}), method:'GET'}, function(err,res,bdy){ if(!err && res.statusCode==200){ if(cbk) cbk(bdy); }else{ throw err } }); }.bind(self)); }; SimpleNote.prototype.create = function(content,cbk){ var self = this; self.auth.emit('connected', function(){ request({uri:this.baseURL+'/note?'+querystring.stringify({email:this.email, auth:this.token}), method:'POST', body:(new Buffer(content)).toString('base64')}, function(err,res,bdy){ if(!err && res.statusCode==200){ if(cbk) cbk(bdy); }else{ throw err } }); }.bind(self)); }; SimpleNote.prototype.update = function(key, content, cbk){ var self = this; self.auth.emit('connected', function(){ request({uri:this.baseURL+'/note?'+querystring.stringify({email:this.email, auth:this.token, key:key}), method:'POST', body:(new Buffer(content)).toString('base64')}, function(err,res,bdy){ if(!err && res.statusCode==200){ if(cbk) cbk(bdy); }else{ throw err } }); }.bind(self)); } SimpleNote.prototype.delete = function(key,cbk){ var self = this; self.auth.emit('connected', function(){ request({uri:this.baseURL+'/delete?'+querystring.stringify({email:this.email, auth:this.token, key:key}), method:'GET'}, function(err,res,bdy){ if(!err && res.statusCode==200){ if(cbk) cbk(bdy); }else{ throw err } }); }.bind(self)); }