Send message to comercial by RocketChat #1897
|
@ -329,5 +329,6 @@
|
||||||
"The amount cannot be less than the minimum": "La cantidad no puede ser menor que la cantidad mínima",
|
"The amount cannot be less than the minimum": "La cantidad no puede ser menor que la cantidad mínima",
|
||||||
"quantityLessThanMin": "La cantidad no puede ser menor que la cantidad mínima",
|
"quantityLessThanMin": "La cantidad no puede ser menor que la cantidad mínima",
|
||||||
"Cannot past travels with entries": "No se pueden pasar envíos con entradas",
|
"Cannot past travels with entries": "No se pueden pasar envíos con entradas",
|
||||||
"It was not able to remove the next expeditions:": "No se pudo eliminar las siguientes expediciones: {{expeditions}}"
|
"It was not able to remove the next expeditions:": "No se pudo eliminar las siguientes expediciones: {{expeditions}}",
|
||||||
}
|
"This claim has been updated": "La reclamación con Id: {{claimId}}, ha sido actualizada"
|
||||||
|
}
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
|
const LoopBackContext = require('loopback-context');
|
||||||
module.exports = Self => {
|
module.exports = Self => {
|
||||||
|
let cache = {};
|
||||||
require('../methods/claim/filter')(Self);
|
require('../methods/claim/filter')(Self);
|
||||||
require('../methods/claim/getSummary')(Self);
|
require('../methods/claim/getSummary')(Self);
|
||||||
require('../methods/claim/createFromSales')(Self);
|
require('../methods/claim/createFromSales')(Self);
|
||||||
|
@ -13,12 +15,35 @@ module.exports = Self => {
|
||||||
require('../methods/claim/claimPickupEmail')(Self);
|
require('../methods/claim/claimPickupEmail')(Self);
|
||||||
require('../methods/claim/logs')(Self);
|
require('../methods/claim/logs')(Self);
|
||||||
|
|
||||||
Self.observe('after save', ctx => {
|
Self.observe('before save', async ctx => {
|
||||||
if (ctx.isNewInstance) return;
|
if (ctx.isNewInstance) return;
|
||||||
const changes = ctx.data || ctx.instance;
|
const {data, currentInstance} = ctx;
|
||||||
const orgData = ctx.currentInstance;
|
let changes = {};
|
||||||
const loopBackContext = LoopBackContext.getCurrentContext();
|
for (const [key, value] of Object.entries(data)) {
|
||||||
const accessToken = {req: loopBackContext.active};
|
const change = currentInstance[key];
|
||||||
throw new Error('');
|
if (change !== value)
|
||||||
|
changes[key] = value;
|
||||||
|
}
|
||||||
|
cache[currentInstance.id] = changes;
|
||||||
});
|
});
|
||||||
|
Self.observe('after save', async ctx => {
|
||||||
|
const changes = cache[ctx.instance.id];
|
||||||
|
if (ctx.isNewInstance) return;
|
||||||
|
if (Object.keys(changes).length > 0) await sendMessage(ctx, changes);
|
||||||
|
|
||||||
|
delete cache[ctx.instance.id];
|
||||||
|
});
|
||||||
|
async function sendMessage(ctx, changes) {
|
||||||
|
const loopBackContext = LoopBackContext.getCurrentContext();
|
||||||
|
const {http} = loopBackContext.active;
|
||||||
|
|
||||||
|
const message = buildMessage(http.req.__, ctx.instance, changes);
|
||||||
|
const instance = ctx.instance.client();
|
||||||
|
await Self.app.models.Chat.send({...http}, instance.salesPersonUser().username, message);
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildMessage($t, instance, changes) {
|
||||||
|
let message = $t('This claim has been updated', {claimId: instance.id});
|
||||||
|
return message;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue