module.exports = Self => { Self.remoteMethodCtx('setRating', { description: 'Change rating and recommendedCredit of a client', accessType: 'WRITE', accepts: [ { arg: 'id', type: 'number', required: true, description: 'The user id', http: {source: 'path'} }, { arg: 'rating', type: 'number' }, { arg: 'recommendedCredit', type: 'number' } ], http: { path: `/:id/setRating`, verb: 'POST' } }); Self.setRating = async function(ctx, id, rating, recommendedCredit, options) { let tx; const myOptions = {}; if (typeof options == 'object') Object.assign(myOptions, options); if (!myOptions.transaction) { tx = await Self.beginTransaction({}); myOptions.transaction = tx; } try { const client = await Self.findById(id, null, myOptions); const clientUpdated = await client.updateAttributes({ rating: rating, recommendedCredit: recommendedCredit }, myOptions); if (tx) await tx.commit(); return clientUpdated; } catch (e) { if (tx) await tx.rollback(); throw e; } }; };