Skip to content

Commit 8ec2b90

Browse files
authored
Merge pull request #76 from Human-Connection/66-improve-validation
Return erroneous field and message to Frontned on error
2 parents 9aa5bba + 4ab48e2 commit 8ec2b90

File tree

2 files changed

+10
-14
lines changed

2 files changed

+10
-14
lines changed

core/db.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ exports.saveEntry = function(fields, callback){
151151
connection.query(sqlEmailExists, [data.email], function(err, results) {
152152
if(!err) {
153153
if(results[0]['cnt'] > 0){
154-
callback(true);
154+
callback({email: "Email address already exists"});
155155
return;
156156
}else{
157157
let sql = "INSERT INTO entries (firstname, lastname, email, country, message, anon, ipv4, image, "
@@ -180,7 +180,7 @@ exports.saveEntry = function(fields, callback){
180180
function(err, results) {
181181
connection.release();
182182
console.log('this.sql', this.sql); //command/query
183-
if(err) { callback(true); return; }
183+
if(err) { callback({error: "Internal server error"}); return; }
184184
callback(false, results);
185185
}
186186
);

core/entryController.js

+8-12
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ exports.createEntry = function(req, res) {
124124
fields = {},
125125
files = [],
126126
errorFields = [],
127+
out = {},
127128
requiredFields = ['email', 'firstname', 'anon', 'message'],
128129
allowedFields = ['email', 'firstname', 'lastname', 'anon', 'message', 'country', 'beta', 'newsletter', 'pax'];
129130

@@ -148,6 +149,7 @@ exports.createEntry = function(req, res) {
148149

149150
if(value === undefined || value === ''){
150151
errorFields.push(field);
152+
out[field] = "Missing required field";
151153
}
152154
}
153155

@@ -171,25 +173,18 @@ exports.createEntry = function(req, res) {
171173

172174
// TODO: ensure valid email format
173175
if(requiredFields.length > 0 || typeError || sizeError || errorFields.length > 0){
174-
let out = {success : false};
176+
out ["success"] = false;
177+
out['test'] = true;
175178
if(hasFile){
176179
fs.unlinkSync(files[0].path);
177180
}
178181

179182
if(typeError){
180-
out["mimeError"] = "wrong filetype "+files[0].type
183+
out["file"] = "Wrong filetype "+files[0].type
181184
}
182185

183186
if(sizeError){
184-
out["sizeError"] = "file size exceeded max size "+form.maxFieldsSize;
185-
}
186-
187-
if(requiredFields.length > 0){
188-
out["missingFields"] = requiredFields;
189-
}
190-
191-
if(errorFields.length > 0){
192-
out["fieldErrors"] = errorFields;
187+
out["file"] = "File size exceeded max size of "+form.maxFieldsSize;
193188
}
194189

195190
res.status(400).json(out);
@@ -219,7 +214,8 @@ exports.createEntry = function(req, res) {
219214

220215
res.status(200).json({success : true});
221216
}else{
222-
res.status(400).json({success : false, message : "error"});
217+
console.log(err);
218+
res.status(400).json(Object.assign({success : false}, err));
223219
}
224220
});
225221
}

0 commit comments

Comments
 (0)