Skip to content

Commit 52611e5

Browse files
committed
Passes Model to Instance directly, changes Instance to use Model.properties instead of opts.properties
1 parent 14747a5 commit 52611e5

File tree

2 files changed

+21
-23
lines changed

2 files changed

+21
-23
lines changed

lib/Instance.js

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ var Hook = require("./Hook");
33

44
exports.Instance = Instance;
55

6-
function Instance(opts) {
6+
function Instance(Model, opts) {
77
opts = opts || {};
88
opts.data = opts.data || {};
99
opts.extra = opts.extra || {};
@@ -27,8 +27,8 @@ function Instance(opts) {
2727
var pending = [], errors = [], required;
2828

2929
for (var k in opts.validations) {
30-
if (opts.properties[k]) {
31-
required = opts.properties[k].required;
30+
if (Model.properties[k]) {
31+
required = Model.properties[k].required;
3232
} else {
3333
for (var i = 0; i < opts.one_associations.length; i++) {
3434
if (opts.one_associations[i].field == k) {
@@ -60,15 +60,15 @@ function Instance(opts) {
6060
err.msg = msg;
6161
err.type = "validation";
6262

63-
if (!opts.model.settings.get("instance.returnAllErrors")) {
63+
if (!Model.settings.get("instance.returnAllErrors")) {
6464
return cb(err);
6565
}
6666

6767
errors.push(err);
6868
}
6969

7070
return checkNextValidation();
71-
}, instance, opts.model, validation[0]);
71+
}, instance, Model, validation[0]);
7272
};
7373
return checkNextValidation();
7474
};
@@ -89,10 +89,10 @@ function Instance(opts) {
8989
return saveError(cb, err);
9090
}
9191

92-
for (var k in opts.properties) {
93-
if (!opts.properties.hasOwnProperty(k)) continue;
94-
if (opts.data[k] == null && opts.properties[k].hasOwnProperty("defaultValue")) {
95-
opts.data[k] = opts.properties[k].defaultValue;
92+
for (var k in Model.properties) {
93+
if (!Model.properties.hasOwnProperty(k)) continue;
94+
if (opts.data[k] == null && Model.properties[k].hasOwnProperty("defaultValue")) {
95+
opts.data[k] = Model.properties[k].defaultValue;
9696
}
9797
}
9898

@@ -140,10 +140,10 @@ function Instance(opts) {
140140
for (var k in opts.data) {
141141
if (!opts.data.hasOwnProperty(k)) continue;
142142

143-
if (opts.properties[k]) {
144-
data[k] = Property.validate(opts.data[k], opts.properties[k]);
143+
if (Model.properties[k]) {
144+
data[k] = Property.validate(opts.data[k], Model.properties[k]);
145145
if (opts.driver.propertyToValue) {
146-
data[k] = opts.driver.propertyToValue(data[k], opts.properties[k]);
146+
data[k] = opts.driver.propertyToValue(data[k], Model.properties[k]);
147147
}
148148
} else {
149149
data[k] = opts.data[k];
@@ -311,10 +311,10 @@ function Instance(opts) {
311311
var changes = {}, conditions = {};
312312
changes[key] = value;
313313

314-
if (opts.properties[key]) {
315-
changes[key] = Property.validate(changes[key], opts.properties[key]);
314+
if (Model.properties[key]) {
315+
changes[key] = Property.validate(changes[key], Model.properties[key]);
316316
if (opts.driver.propertyToValue) {
317-
changes[key] = opts.driver.propertyToValue(changes[key], opts.properties[key]);
317+
changes[key] = opts.driver.propertyToValue(changes[key], Model.properties[key]);
318318
}
319319
}
320320

@@ -389,15 +389,15 @@ function Instance(opts) {
389389
}
390390
}
391391

392-
for (var k in opts.properties) {
393-
if (opts.properties.hasOwnProperty(k) && !opts.data.hasOwnProperty(k) && opts.keys.indexOf(k) == -1) {
392+
for (var k in Model.properties) {
393+
if (Model.properties.hasOwnProperty(k) && !opts.data.hasOwnProperty(k) && opts.keys.indexOf(k) == -1) {
394394
opts.data[k] = null;
395395
}
396396
}
397397

398398
for (k in opts.data) {
399399
if (!opts.data.hasOwnProperty(k)) continue;
400-
if (!opts.properties.hasOwnProperty(k) && opts.keys.indexOf(k) == -1 && opts.association_properties.indexOf(k) == -1) {
400+
if (!Model.properties.hasOwnProperty(k) && opts.keys.indexOf(k) == -1 && opts.association_properties.indexOf(k) == -1) {
401401
if (!opts.extra.hasOwnProperty(k)) continue;
402402

403403
if (opts.driver.valueToProperty) {
@@ -407,8 +407,8 @@ function Instance(opts) {
407407
continue;
408408
}
409409

410-
if (opts.properties[k] && opts.driver.valueToProperty) {
411-
opts.data[k] = opts.driver.valueToProperty(opts.data[k], opts.properties[k]);
410+
if (Model.properties[k] && opts.driver.valueToProperty) {
411+
opts.data[k] = opts.driver.valueToProperty(opts.data[k], Model.properties[k]);
412412
}
413413

414414
addInstanceProperty(k);

lib/Model.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ function Model(opts) {
6565
}
6666
}
6767

68-
var instance = new Instance({
68+
var instance = new Instance(model, {
6969
uid : inst_opts.uid, // singleton unique id
7070
id : opts.id,
7171
keys : opts.keys,
@@ -75,10 +75,8 @@ function Model(opts) {
7575
autoSave : inst_opts.autoSave || false,
7676
extra : inst_opts.extra,
7777
extra_info : inst_opts.extra_info,
78-
model : model,
7978
driver : opts.driver,
8079
table : opts.table,
81-
properties : opts.properties,
8280
hooks : opts.hooks,
8381
methods : opts.methods,
8482
validations : opts.validations,

0 commit comments

Comments
 (0)