fixed type check strictly
This commit is contained in:
parent
e10c42ed1b
commit
885e9188f8
|
@ -172,37 +172,98 @@ BridgeToRedis.prototype.defineForeignKey = function (model, key, cb) {
|
|||
cb(null, Number);
|
||||
};
|
||||
|
||||
// BridgeToRedis.prototype.forDb = function (model, data) {
|
||||
// var p = this._models[model].properties;
|
||||
// for (var i in data) {
|
||||
// if (p[i] && p[i].type.name === 'Date') {
|
||||
// data[i] = data[i] && data[i].getTime ? data[i].getTime() : 0;
|
||||
// } else if (p[i] && [
|
||||
// 'String', 'Text', 'Number', 'Boolean', 'Date'
|
||||
// ].indexOf(p[i].type.name) === -1) {
|
||||
// data[i] = JSON.stringify(data[i]);
|
||||
// }
|
||||
// }
|
||||
// return data;
|
||||
// };
|
||||
|
||||
BridgeToRedis.prototype.forDb = function (model, data) {
|
||||
var p = this._models[model].properties;
|
||||
for (var i in data) {
|
||||
if (p[i] && p[i].type.name === 'Date') {
|
||||
data[i] = data[i] && data[i].getTime ? data[i].getTime() : 0;
|
||||
} else if (p[i] && [
|
||||
'String', 'Text', 'Number', 'Boolean', 'Date'
|
||||
].indexOf(p[i].type.name) === -1) {
|
||||
data[i] = JSON.stringify(data[i]);
|
||||
if (!p[i]) continue;
|
||||
if (!data[i]) {
|
||||
data[i] = "";
|
||||
continue;
|
||||
}
|
||||
switch (p[i].type.name) {
|
||||
case "Date":
|
||||
data[i] = data[i].getTime ? data[i].getTime().toString() : "0";
|
||||
break;
|
||||
case "Number":
|
||||
data[i] = data[i].toString();
|
||||
break;
|
||||
case "Boolean":
|
||||
data[i] = !!data[i] ? "1" : "0";
|
||||
break;
|
||||
case "String":
|
||||
case "Text":
|
||||
break;
|
||||
default:
|
||||
data[i] = JSON.stringify(data[i]);
|
||||
}
|
||||
}
|
||||
return data;
|
||||
};
|
||||
|
||||
// BridgeToRedis.prototype.fromDb = function (model, data) {
|
||||
// var p = this._models[model].properties;
|
||||
// for (var i in data) {
|
||||
// if (p[i] && p[i].type.name === 'Date') {
|
||||
// if (isNaN(parseInt(data[i]))) {
|
||||
// data[i] = new Date(data[i]);
|
||||
// } else {
|
||||
// var ms = data[i];
|
||||
// data[i] = new Date();
|
||||
// data[i].setTime(ms);
|
||||
// }
|
||||
// } else if (p[i] && [
|
||||
// 'String', 'Text', 'Number', 'Boolean', 'Date'
|
||||
// ].indexOf(p[i].type.name) === -1) {
|
||||
// try {
|
||||
// data[i] = JSON.parse(data[i]);
|
||||
// } catch (e) {}
|
||||
// }
|
||||
// }
|
||||
// return data;
|
||||
// };
|
||||
|
||||
BridgeToRedis.prototype.fromDb = function (model, data) {
|
||||
var p = this._models[model].properties;
|
||||
var p = this._models[model].properties, d;
|
||||
for (var i in data) {
|
||||
if (p[i] && p[i].type.name === 'Date') {
|
||||
if (isNaN(parseInt(data[i]))) {
|
||||
data[i] = new Date(data[i]);
|
||||
} else {
|
||||
var ms = data[i];
|
||||
data[i] = new Date();
|
||||
data[i].setTime(ms);
|
||||
}
|
||||
} else if (p[i] && [
|
||||
'String', 'Text', 'Number', 'Boolean', 'Date'
|
||||
].indexOf(p[i].type.name) === -1) {
|
||||
try {
|
||||
data[i] = JSON.parse(data[i]);
|
||||
} catch (e) {}
|
||||
if (!p[i]) continue;
|
||||
if (!data[i]) {
|
||||
data[i] = "";
|
||||
continue;
|
||||
}
|
||||
switch (p[i].type.name) {
|
||||
case "Date":
|
||||
d = new Date(data[i]);
|
||||
d.setTime(data[i]);
|
||||
data[i] = d;
|
||||
break;
|
||||
case "Number":
|
||||
data[i] = Number(data[i]);
|
||||
break;
|
||||
case "Boolean":
|
||||
data[i] = data[i] === "1";
|
||||
break;
|
||||
default:
|
||||
d = data[i];
|
||||
try {
|
||||
data[i] = JSON.parse(data[i]);
|
||||
}
|
||||
catch(e) {
|
||||
data[i] = d;
|
||||
}
|
||||
}
|
||||
}
|
||||
return data;
|
||||
|
|
Loading…
Reference in New Issue