diff --git a/helpers/service.helper.js b/helpers/service.helper.js index 861cbd1..a832518 100644 --- a/helpers/service.helper.js +++ b/helpers/service.helper.js @@ -203,18 +203,24 @@ const generateService = (model, extraMethods = {}, options = defaultOptions) => } var result = await model.scope(context.scopes).create(values); if (extraMethods.afterCreate) { - result = extraMethods.beforeCreate(result, context); + result = extraMethods.beforeCreate(result, values, context); } return result; }, update: async (params, values, context) => { + const findOptions = parseParamsToFindOptions(params); if (extraMethods.beforeUpdate) { values = extraMethods.beforeUpdate(values, findOptions, context); } - console.log(values, findOptions); - return await model.scope(context.scopes).update(values, findOptions) + await model.scope(context.scopes).update(values, findOptions) + var result = await defaultService.fetchOne(params, context); + + if (extraMethods.afterUpdate) { + result = extraMethods.afterUpdate(result, values, context); + } + return result; }, delete: async (params, context) => { diff --git a/modules/blog/blog.service.js b/modules/blog/blog.service.js index 4f92228..9071024 100644 --- a/modules/blog/blog.service.js +++ b/modules/blog/blog.service.js @@ -6,24 +6,12 @@ const { generateService, parseParamsToFindOptions, _debugModelInfo } = require(' const models = require('../../core/models'); const extraMethods = { - /*fetchOne: async (params, context) => { - const findOptions = parseParamsToFindOptions(params); - const result = await models.Post.findByPk(findOptions.query.id, { - include: [{ all: true }] - }); - return result; - },*/ + afterCreate: async (post, values, context) => { + return await post.setCategories(values.categories.map(category => category.id)); + }, - create: async (values, context) => { - const { Categories, ...data } = values; - return models.sequelize.transaction(async transaction => { - const result = await models.Post.create(data, { transaction }); - - if (Categories) { - await result.setCategories(Categories, { transaction }); - } - return result; - }); + afterUpdate: async (post, values, context) => { + return await post.setCategories(values.categories.map(category => category.id)); }, }