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

View File

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