caminte
Advanced tools
Comparing version 0.3.3 to 0.3.4
@@ -270,6 +270,7 @@ /** | ||
if (!valid) { | ||
p.reject(new Error('Validation error')); | ||
return callback && callback(new Error('Validation error'), obj); | ||
var err = new Error(modelName + ' validation error'); | ||
p.reject(err); | ||
return callback && callback(err, obj); | ||
} else { | ||
create(); | ||
return create(); | ||
} | ||
@@ -427,22 +428,20 @@ }); | ||
} | ||
var self = this; | ||
var p = deferPromise(); | ||
this.findOne({where: query}, function (err, record) { | ||
var self = this, p = deferPromise(); | ||
self.findOne({where: query}, function (err, record) { | ||
if (err) { | ||
p.reject(err); | ||
return callback && callback(err); | ||
} | ||
if (record) { | ||
} else if (record) { | ||
p.resolve(record); | ||
return callback && callback(null, record); | ||
} else { | ||
data = helpers.merge(query, data); | ||
self.create(data).then(function (record) { | ||
p.resolve(record); | ||
return callback && callback(null, record); | ||
}).catch(function (err) { | ||
p.reject(err); | ||
return callback && callback(err, null); | ||
}); | ||
} | ||
data = helpers.merge(query, data); | ||
self.create(data, function (err, record) { | ||
if (err) { | ||
p.reject(err); | ||
} else { | ||
p.resolve(record); | ||
} | ||
return callback && callback(err, record); | ||
}); | ||
}); | ||
@@ -582,6 +581,6 @@ return p.promise; | ||
} | ||
var self = this; | ||
if (typeof params === 'undefined') { | ||
this.q.params.limit = 1; | ||
return this; | ||
self.q.params.limit = 1; | ||
return self; | ||
} else { | ||
@@ -593,12 +592,14 @@ var p = deferPromise(); | ||
} | ||
params = buildQuery(params, this); | ||
params = buildQuery(params, self); | ||
params.limit = 1; | ||
this.all(params, function (err, collection) { | ||
if (err || !collection || !collection.length > 0) { | ||
self | ||
.all(params) | ||
.then(function (collection) { | ||
p.resolve(collection[0]); | ||
return callback && callback(null, collection[0] || null); | ||
}) | ||
.catch(function (err) { | ||
p.reject(err); | ||
return callback && callback(err, null); | ||
} | ||
p.resolve(collection[0]); | ||
return callback && callback(err, collection[0]); | ||
}); | ||
}); | ||
return p.promise; | ||
@@ -605,0 +606,0 @@ } |
@@ -283,3 +283,2 @@ exports.Validatable = Validatable; | ||
if (nullCheck.call(this, attr, conf, err)) return; | ||
if (typeof this[attr] === 'string') { | ||
@@ -326,10 +325,10 @@ if (!this[attr].match(conf['with'])) { | ||
var validators = { | ||
presence: validatePresence, | ||
length: validateLength, | ||
presence: validatePresence, | ||
length: validateLength, | ||
numericality: validateNumericality, | ||
inclusion: validateInclusion, | ||
exclusion: validateExclusion, | ||
format: validateFormat, | ||
custom: validateCustom, | ||
uniqueness: validateUniqueness | ||
inclusion: validateInclusion, | ||
exclusion: validateExclusion, | ||
format: validateFormat, | ||
custom: validateCustom, | ||
uniqueness: validateUniqueness | ||
}; | ||
@@ -393,3 +392,2 @@ | ||
} | ||
}); | ||
@@ -402,2 +400,3 @@ | ||
var asyncFail = false; | ||
function done(fail) { | ||
@@ -407,3 +406,3 @@ asyncFail = asyncFail || fail; | ||
validationsDone.call(inst, function () { | ||
if( valid && !asyncFail ) cleanErrors(inst); | ||
if (valid && !asyncFail) cleanErrors(inst); | ||
callback(valid && !asyncFail); | ||
@@ -435,3 +434,4 @@ }); | ||
} | ||
// 43903 | ||
// 44471 | ||
function validationFailed(inst, v, cb) { | ||
@@ -475,6 +475,9 @@ var attr = v[0]; | ||
fail = true; | ||
if (cb) { | ||
return cb && cb(fail); | ||
} | ||
}); | ||
if (cb) { | ||
validatorArguments.push(function () { | ||
cb(fail); | ||
validatorArguments.push(function onsuccess() { | ||
return cb && cb(fail); | ||
}); | ||
@@ -593,2 +596,1 @@ } | ||
}; | ||
{ | ||
"name": "caminte", | ||
"description": "ORM for every database: redis, mysql, neo4j, mongodb, rethinkdb, postgres, sqlite, tingodb", | ||
"version": "0.3.3", | ||
"version": "0.3.4", | ||
"author": { | ||
@@ -6,0 +6,0 @@ "name": "Aleksej Gordejev", |
710574
14334