Update Mongoose template & support one-way in generated API

This commit is contained in:
Aurelsicoko 2018-04-23 16:57:59 +02:00
parent caaa5a6831
commit 892f9d1291
3 changed files with 14 additions and 4 deletions

View File

@ -709,6 +709,10 @@ module.exports = function(strapi) {
acc[current] = params.values[current];
} else {
switch (association.nature) {
case 'oneWay':
acc[current] = _.get(params.values[current], this.primaryKey, params.values[current]) || null;
break;
case 'oneToOne':
if (response[current] !== params.values[current]) {
const value = _.isNull(params.values[current]) ? response[current] : params.values;

View File

@ -48,9 +48,12 @@ module.exports = {
*/
add: async (values) => {
const data = await <%= globalID %>.create(_.omit(values, _.keys(_.groupBy(strapi.models.<%= id %>.associations, 'alias'))));
await strapi.hook.mongoose.manageRelations('<%= id %>', _.merge(_.clone(data), { values }));
return data;
const query = await <%= globalID %>.create(_.omit(values, _.keys(_.groupBy(strapi.models.<%= id %>.associations, 'alias'))));
const data = query.toJSON ? query.toJSON() : query;
await strapi.hook.mongoose.manageRelations('<%= id %>', _.merge(data, { values }));
return query;
},
/**

View File

@ -505,10 +505,13 @@ module.exports = function (strapi) {
acc[current] = params.values[current];
} else {
switch (association.nature) {
case 'oneWay':
acc[current] = _.get(params.values[current], this.primaryKey, params.values[current]) || null;
break;
case 'oneToOne':
if (response[current] !== params.values[current]) {
const value = _.isNull(params.values[current]) ? response[current] : params.values;
const recordId = _.isNull(params.values[current]) ? value[Model.primaryKey] || value.id || value._id : value[current];
if (response[current] && _.isObject(response[current]) && response[current][Model.primaryKey] !== value[current]) {