Skip to content

Commit

Permalink
last of the response rewrite
Browse files Browse the repository at this point in the history
  • Loading branch information
rook2pawn committed May 13, 2014
1 parent f4a51d9 commit 3a2ff86
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 111 deletions.
78 changes: 14 additions & 64 deletions api/user.js
Expand Up @@ -6,9 +6,7 @@ var email = require('../lib/email');
exports.store;
var getUserInfo = function(username, res) {
if ("string" !== typeof username) {
process.nextTick(function() {
throw { res : res, error: new Error("Username is required") }
});
response.json({result:'error',message:'Username is required'}).status(400).pipe(res)
return;
}

Expand Down Expand Up @@ -38,11 +36,7 @@ var getUserInfo = function(username, res) {
exports.store.read_where({key:"address",value:username,res:res},
function(resp) {
if (resp.error) {
res.writeHead(400, {
'Content-Type' : 'application/json',
'Access-Control-Allow-Origin': '*'
});
res.end(JSON.stringify({result:'error',message:resp.error.message}));
response.json({result:'error',message:resp.error.message}).status(400).pipe(res)
return;
}
var obj = {}
Expand All @@ -55,19 +49,11 @@ var getUserInfo = function(username, res) {
obj.username = row.username,
obj.address = row.address,
obj.emailVerified = row.email_verified,
res.writeHead(200, {
'Content-Type' : 'application/json',
'Access-Control-Allow-Origin': '*'
});
res.end(JSON.stringify(obj));
response.json(obj).pipe(res)
} else {
obj.exists = false;
obj.reserved = false;
res.writeHead(200, {
'Content-Type' : 'application/json',
'Access-Control-Allow-Origin': '*'
});
res.end(JSON.stringify(obj));
response.json(obj).pipe(res)
}
}
)
Expand All @@ -83,24 +69,16 @@ var verify = function(req,res) {
var username = req.params.username;
var token = req.params.token;
if ("string" !== typeof username) {
process.nextTick(function() {
throw { res : res, error: new Error("Username is required") }
});
response.json({result:'error',message:'Username is required'}).status(400).pipe(res)
return;
}
if ("string" !== typeof token) {
process.nextTick(function() {
throw { res : res, error: new Error("Token is required") }
});
response.json({result:'error', message:'Token is required'}).status(400).pipe(res)
return;
}
exports.store.read({username:username,res:res},function(resp) {
if (resp.exists === false) {
res.writeHead(404, {
'Content-Type' : 'application/json',
'Access-Control-Allow-Origin': '*'
});
res.end(JSON.stringify({result:'error',message:'No such user'}));
response.json({result:'error',message:'No such user'}).status(404).pipe(res)
return;
} else {
var obj = {}
Expand All @@ -117,11 +95,7 @@ var verify = function(req,res) {
response.json(obj).pipe(res);
});
} else {
res.writeHead(400, {
'Content-Type' : 'application/json',
'Access-Control-Allow-Origin': '*'
});
res.end(JSON.stringify({result:'error',message:'Invalid token'}));
response.json({result:'error',message:'Invalid token'}).status(400).pipe(res)
return;
}
}
Expand All @@ -131,57 +105,33 @@ var email_change = function(req,res) {
console.log("email_change");
var keyresp = libutils.hasKeys(req.body,['email','blob_id','username','hostlink']);
if (!keyresp.hasAllKeys) {
res.writeHead(400, {
'Content-Type' : 'application/json',
'Access-Control-Allow-Origin': '*'
})
res.end(JSON.stringify({result:'error', message:'Missing keys',missing:keyresp.missing}));
response.json({result:'error', message:'Missing keys',missing:keyresp.missing}).status(400).pipe(res)
return
}
if (!libutils.isValidEmail(req.body.email)) {
res.writeHead(400, {
'Content-Type' : 'application/json',
'Access-Control-Allow-Origin': '*'
})
res.end(JSON.stringify({result:'error', message:'invalid email address'}));
response.json({result:'error', message:'invalid email address'}).status(400).pipe(res)
return
}
var token = libutils.generateToken();
exports.store.update_where({set:{email:req.body.email,email_token:token},where:{key:'id',value:req.body.blob_id}},function(resp) {
if ((resp.result) && (resp.result == 'success')) {
email.send({email:req.body.email,hostlink:req.body.hostlink,token:token,name:req.body.username});
res.writeHead(200, {
'Content-Type' : 'application/json',
'Access-Control-Allow-Origin': '*'
})
res.end(JSON.stringify({result:'success'}));
response.json({result:'success'}).pipe(res)
} else {
res.writeHead(400, {
'Content-Type' : 'application/json',
'Access-Control-Allow-Origin': '*'
})
res.end(JSON.stringify({result:'error',message:'unspecified error'}));
response.json({result:'error',message:'unspecified error'}).status(400).pipe(res)
}
});
}
var resend = function(req,res) {
var keyresp = libutils.hasKeys(req.body,['email','username','hostlink']);
if (!keyresp.hasAllKeys) {
res.writeHead(400, {
'Content-Type' : 'application/json',
'Access-Control-Allow-Origin': '*'
})
res.end(JSON.stringify({result:'error', message:'Missing keys',missing:keyresp.missing}));
response.json({result:'error', message:'Missing keys',missing:keyresp.missing}).status(400).pipe(res)
return
}
var token = libutils.generateToken();
exports.store.update_where({set:{email:req.body.email,email_token:token},where:{key:'username',value:req.body.username}},function(resp) {
email.send({email:req.body.email,hostlink:req.body.hostlink,token:token,name:req.body.username});
res.writeHead(200, {
'Content-Type' : 'application/json',
'Access-Control-Allow-Origin': '*'
})
res.end(JSON.stringify({result:'success'}));
response.json({result:'success'}).pipe(res)
});
}
exports.emailResend = resend;
Expand Down
12 changes: 2 additions & 10 deletions error/index.js
Expand Up @@ -8,16 +8,8 @@ var bindObject = function(obj1,binder) {
});
}
d.on('error',function (obj) {
if (obj.res) {
if (obj.error !== undefined) {
console.log("API Error",obj.error + " " + new Date());
obj.res.writeHead(obj.statusCode || 400, {
'Content-Type' : 'application/json',
'Access-Control-Allow-Origin': '*'
})
obj.res.end(JSON.stringify({result:'error',message:obj.error.message}));
}
}
if ((obj.res) && (obj.error !== undefined))
response.json({result:'error',message:obj.error.message}).status(obj.statusCode || 400).pipe(obj.res)
});
exports.setDomain = function(obj) {
bindObject(obj);
Expand Down
5 changes: 3 additions & 2 deletions lib/dbcommon.js
Expand Up @@ -314,7 +314,7 @@ var dbcommon = function(db) {
})
};

self.hmac_getSecret = function(params, callback) {
self.hmac_getSecret = function(params, cb) {
var blobId = params.blobId;
var res = params.res;
db('blob')
Expand All @@ -325,10 +325,11 @@ var dbcommon = function(db) {
throw new Error("Invalid blobId");
return;
}
callback(null, rows[0].auth_secret);
cb(null, rows[0].auth_secret);
})
.catch(function(obj) {
// obj is the real error, but we mask it
console.log(obj);
cb({error:new Error("Database hmac get secret error")});
})
};
Expand Down
19 changes: 4 additions & 15 deletions lib/ecdsa.js
Expand Up @@ -3,22 +3,15 @@ var libutils = require('../lib/utils');
var _ = require('lodash');
var RL = require('ripple-lib');
var config = require('../config');
var response = require('response')
var remote = new RL.Remote(config.ripplelib);
remote.connect();


var Message = RL.Message;
var handleError = function(obj) {
console.log("API Error");
if (obj.res) {
if (obj.error !== undefined) {
obj.res.writeHead(obj.statusCode || 400, {
'Content-Type' : 'application/json',
'Access-Control-Allow-Origin': '*'
})
obj.res.end(JSON.stringify({result:'error',message:obj.error.message}));
}
}
if ((obj.res) && (obj.error !== undefined))
response.json({result:'error',message:obj.error.message}).status(obj.statusCode || 400).pipe(obj.res)
}
exports.middleware = function (req, res, next) {
if (config.testmode) {
Expand All @@ -27,11 +20,7 @@ exports.middleware = function (req, res, next) {
}
var keyresp = libutils.hasKeys(req.query,['signature_account','signature_type','signature','signature_date','signature_blob_id']);
if (!keyresp.hasAllKeys) {
res.writeHead(400, {
'Content-Type' : 'application/json',
'Access-Control-Allow-Origin': '*'
})
res.end(JSON.stringify({result:'error', message:'Missing keys',missing:keyresp.missing}));
response.json({result:'error', message:'Missing keys',missing:keyresp.missing}).status(400).pipe(res)
return
}

Expand Down
13 changes: 3 additions & 10 deletions lib/hmac.js
@@ -1,20 +1,13 @@
var crypto = require('crypto');
var libutils = require('../lib/utils');
var _ = require('lodash');
var response = require('response')

var config = require('../config');

var handleError = function(obj) {
console.log("API Error");
if (obj.res) {
if (obj.error !== undefined) {
obj.res.writeHead(obj.statusCode || 400, {
'Content-Type' : 'application/json',
'Access-Control-Allow-Origin': '*'
})
obj.res.end(JSON.stringify({result:'error',message:obj.error.message}));
}
}
if ((obj.res) && (obj.error !== undefined))
response.json({result:'error',message:obj.error.message}).status(obj.statusCode || 400).pipe(obj.res)
}

exports.store;
Expand Down
13 changes: 3 additions & 10 deletions lib/index.js
@@ -1,3 +1,4 @@
var response = require('response')
exports.inspect = function(req,res,next) {
console.log(req.method + " " + req.url);
console.log(req.headers);
Expand All @@ -19,19 +20,11 @@ exports.limiter = {
}
hash[req.body.email].count++;
if (hash[req.body.email].count > 5) {
res.writeHead(403, {
'Content-Type' : 'application/json',
'Access-Control-Allow-Origin': '*'
})
res.end(JSON.stringify({result:'error', message:'resend limit reached'}));
response.json({result:'error', message:'resend limit reached'}).status(403).pipe(res)
} else
next()
} else {
res.writeHead(400, {
'Content-Type' : 'application/json',
'Access-Control-Allow-Origin': '*'
})
res.end(JSON.stringify({result:'error', message:'missing email in body'}));
response.json({result:'error', message:'missing email in body'}).status(400).pipe(res)
}
}
return {check : check}
Expand Down

0 comments on commit 3a2ff86

Please sign in to comment.