Handle basic types for mongoose

This commit is contained in:
Aurélien Georget 2016-07-14 12:15:42 +02:00
parent 3cd111bdb2
commit c87ff0edbf
2 changed files with 32 additions and 31 deletions

View File

@ -99,31 +99,31 @@ module.exports = function (strapi) {
const done = _.after(_.size(definition.attributes), function () {
try {
// Initialize lifecycle callbacks.
loadedModel.initialize = function () {
const self = this;
const lifecycle = {
creating: 'beforeCreate',
created: 'afterCreate',
destroying: 'beforeDestroy',
destroyed: 'afterDestroy',
updating: 'beforeUpdate',
updated: 'afterUpdate',
fetching: 'beforeFetch',
fetched: 'afterFetch',
saving: 'beforeSave',
saved: 'afterSave'
};
// loadedModel.initialize = function () {
// const self = this;
// const lifecycle = {
// creating: 'beforeCreate',
// created: 'afterCreate',
// destroying: 'beforeDestroy',
// destroyed: 'afterDestroy',
// updating: 'beforeUpdate',
// updated: 'afterUpdate',
// fetching: 'beforeFetch',
// fetched: 'afterFetch',
// saving: 'beforeSave',
// saved: 'afterSave'
// };
//
// _.forEach(lifecycle, function (fn, key) {
// if (_.isFunction(strapi.models[model.toLowerCase()][fn])) {
// self.on(key, strapi.models[model.toLowerCase()][fn]);
// }
// });
// };
_.forEach(lifecycle, function (fn, key) {
if (_.isFunction(strapi.models[model.toLowerCase()][fn])) {
self.on(key, strapi.models[model.toLowerCase()][fn]);
}
});
};
console.log(loadedModel);
const schema = mongoose.Schema(loadedModel.attributes);
console.log(schema);
const schema = mongoose.Schema(loadedModel);
global[globalName] = mongoose.model(globalName, schema);;
@ -154,8 +154,7 @@ module.exports = function (strapi) {
if (!_.isEmpty(verbose)) {
utilsModels.defineAssociations(globalName, definition, details, name);
} else {
console.log(name, details);
loadedModel[name].type = utils.convertType(details.type);
loadedModel[name].type = utils(mongoose).convertType(details.type);
}
switch (verbose) {

View File

@ -7,12 +7,14 @@
// Public node modules.
const _ = require('lodash');
module.exports = (mongoose) => {
const Decimal = require('mongoose-double').loadType(mongoose);
const Float = require('mongoose-float').loadType(mongoose);
module.exports = mongoose => {
require('mongoose-double')(mongoose);
require('mongoose-float').loadType(mongoose);
const SchemaTypes = mongoose.Schema.Types;
return {
convertType: (mongooseType) => {
convertType: mongooseType => {
switch (mongooseType.toLowerCase()) {
case 'string':
case 'text':
@ -21,9 +23,9 @@ module.exports = (mongoose) => {
case 'biginteger':
return 'Number'
case 'float':
return Float;
return SchemaTypes.Float;
case 'decimal':
return Decimal;
return SchemaTypes.Double;
case 'date':
case 'time':
case 'datetime':