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]; acc[current] = params.values[current];
} else { } else {
switch (association.nature) { switch (association.nature) {
case 'oneWay':
acc[current] = _.get(params.values[current], this.primaryKey, params.values[current]) || null;
break;
case 'oneToOne': case 'oneToOne':
if (response[current] !== params.values[current]) { if (response[current] !== params.values[current]) {
const value = _.isNull(params.values[current]) ? response[current] : params.values; const value = _.isNull(params.values[current]) ? response[current] : params.values;

View File

@ -48,9 +48,12 @@ module.exports = {
*/ */
add: async (values) => { add: async (values) => {
const data = await <%= globalID %>.create(_.omit(values, _.keys(_.groupBy(strapi.models.<%= id %>.associations, 'alias')))); const query = await <%= globalID %>.create(_.omit(values, _.keys(_.groupBy(strapi.models.<%= id %>.associations, 'alias'))));
await strapi.hook.mongoose.manageRelations('<%= id %>', _.merge(_.clone(data), { values })); const data = query.toJSON ? query.toJSON() : query;
return data;
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]; acc[current] = params.values[current];
} else { } else {
switch (association.nature) { switch (association.nature) {
case 'oneWay':
acc[current] = _.get(params.values[current], this.primaryKey, params.values[current]) || null;
break;
case 'oneToOne': case 'oneToOne':
if (response[current] !== params.values[current]) { if (response[current] !== params.values[current]) {
const value = _.isNull(params.values[current]) ? response[current] : params.values; 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]; 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]) { if (response[current] && _.isObject(response[current]) && response[current][Model.primaryKey] !== value[current]) {