2ce9c9022bac5ae3edfb72635cf9de58278b3c50
[motion2.git] / server / config / triggers / index.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xb733=['MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','then','Trigger,\x20%s','error','code','catch','get','motionChannel','event','direction','resolve','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','QueryTypes','SELECT','contact','UserId','format','SIP/%s','agent','channel','incomingmessage','AfterCreateMessage','offlineMessage','query','Sequelize','interface','AfterCreate','changed','closed','substatus','name','User','find','fullname','email','internal','default','length','model','hook','toLowerCase','../../mysqldb','jayson/promise','triggers','client','http','Chat','ChatInteraction','afterCreate','newinteraction','afterUpdate','closedinteraction','ChatMessage','newmessage','ChatOfflineMessage','Sms','SmsInteraction','SmsMessage','Whatsapp','WhatsappInteraction','Fax','FaxInteraction','Mail'];(function(_0x581960,_0x1232ff){var _0x4ee892=function(_0x2a920d){while(--_0x2a920d){_0x581960['push'](_0x581960['shift']());}};_0x4ee892(++_0x1232ff);}(_0xb733,0x152));var _0x3b73=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0xb733[_0x397e5f];return _0x5302b8;};'use strict';var util=require('util');var db=require(_0x3b73('0x0'))['db'];var jayson=require(_0x3b73('0x1'));var logger=require('../logger')(_0x3b73('0x2'));var client=jayson[_0x3b73('0x3')][_0x3b73('0x4')]({'port':0x232a});var triggers=[{'channel':_0x3b73('0x5'),'model':_0x3b73('0x6'),'event':_0x3b73('0x7'),'condition':_0x3b73('0x8'),'callback':afterCreate},{'channel':_0x3b73('0x5'),'model':'ChatInteraction','event':_0x3b73('0x9'),'condition':_0x3b73('0xa'),'callback':afterUpdate},{'channel':'Chat','model':_0x3b73('0xb'),'event':_0x3b73('0x7'),'condition':_0x3b73('0xc'),'callback':afterCreateMessage},{'channel':_0x3b73('0x5'),'model':_0x3b73('0xd'),'event':'afterCreate','condition':_0x3b73('0xc'),'callback':afterCreateOfflineMessage},{'channel':_0x3b73('0xe'),'model':_0x3b73('0xf'),'event':_0x3b73('0x7'),'condition':_0x3b73('0x8'),'callback':afterCreate},{'channel':_0x3b73('0xe'),'model':_0x3b73('0xf'),'event':_0x3b73('0x9'),'condition':_0x3b73('0xa'),'callback':afterUpdate},{'channel':'Sms','model':_0x3b73('0x10'),'event':_0x3b73('0x7'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x3b73('0x11'),'model':_0x3b73('0x12'),'event':_0x3b73('0x7'),'condition':_0x3b73('0x8'),'callback':afterCreate},{'channel':_0x3b73('0x11'),'model':_0x3b73('0x12'),'event':_0x3b73('0x9'),'condition':_0x3b73('0xa'),'callback':afterUpdate},{'channel':'Whatsapp','model':'WhatsappMessage','event':_0x3b73('0x7'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x3b73('0x13'),'model':_0x3b73('0x14'),'event':_0x3b73('0x7'),'condition':_0x3b73('0x8'),'callback':afterCreate},{'channel':'Fax','model':_0x3b73('0x14'),'event':_0x3b73('0x9'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x3b73('0x13'),'model':'FaxMessage','event':_0x3b73('0x7'),'condition':_0x3b73('0xc'),'callback':afterCreateMessage},{'channel':_0x3b73('0x15'),'model':_0x3b73('0x16'),'event':'afterCreate','condition':_0x3b73('0x8'),'callback':afterCreate},{'channel':_0x3b73('0x15'),'model':'MailInteraction','event':_0x3b73('0x9'),'condition':_0x3b73('0xa'),'callback':afterUpdate},{'channel':_0x3b73('0x15'),'model':_0x3b73('0x17'),'event':_0x3b73('0x7'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x3b73('0x18'),'model':_0x3b73('0x19'),'event':_0x3b73('0x7'),'condition':_0x3b73('0x8'),'callback':afterCreate},{'channel':_0x3b73('0x18'),'model':_0x3b73('0x19'),'event':_0x3b73('0x9'),'condition':_0x3b73('0xa'),'callback':afterUpdate},{'channel':_0x3b73('0x18'),'model':_0x3b73('0x1a'),'event':_0x3b73('0x7'),'condition':'newmessage','callback':afterCreateMessage}];function request(_0x595381){return client[_0x3b73('0x1b')](_0x3b73('0x1c'),_0x595381)[_0x3b73('0x1d')](function(_0x314ec3){logger['info'](_0x3b73('0x1e'),_0x3b73('0x1c'),_0x314ec3);if(_0x314ec3[_0x3b73('0x1f')]){if(_0x314ec3['error'][_0x3b73('0x20')]===0x1f4){logger[_0x3b73('0x1f')](_0x3b73('0x1e'),_0x3b73('0x1c'),_0x314ec3[_0x3b73('0x1f')]);}}})[_0x3b73('0x21')](function(_0x231c96){logger['error'](_0x3b73('0x1e'),_0x3b73('0x1c'),_0x231c96);});}function afterCreateMessage(_0xb1af3){return function(_0x21e06b){_0x21e06b=_0x21e06b[_0x3b73('0x22')]({'plain':!![]});_0x21e06b['channel']=_0xb1af3;_0x21e06b[_0x3b73('0x23')]=_0xb1af3;_0x21e06b[_0x3b73('0x24')]=_0x21e06b[_0x3b73('0x25')];Promise[_0x3b73('0x26')]()[_0x3b73('0x1d')](function(){if(typeof _0x21e06b[_0x3b73('0x27')]===_0x3b73('0x28'))return null;var _0x1d72b0=_0x3b73('0x29')+_0x21e06b[_0x3b73('0x27')];return db[_0x3b73('0x2a')]['query'](_0x1d72b0,{'type':db['Sequelize'][_0x3b73('0x2b')][_0x3b73('0x2c')],'raw':!![]});})[_0x3b73('0x1d')](function(_0x1058b1){if(_0x1058b1){_0x21e06b[_0x3b73('0x2d')]=_0x1058b1[0x0];}if(typeof _0x21e06b['UserId']===_0x3b73('0x28'))return;return getAgent(_0x21e06b[_0x3b73('0x2e')]);})[_0x3b73('0x1d')](function(_0x337a65){if(_0x337a65){_0x21e06b['interface']=util[_0x3b73('0x2f')](_0x3b73('0x30'),_0x337a65['name']);_0x21e06b[_0x3b73('0x31')]=_0x337a65;_0x21e06b[_0x3b73('0x32')]=_0xb1af3;return request({'event':_0x3b73('0x33'),'message':_0x21e06b});}else{return request({'event':'outgoingmessage','message':_0x21e06b});}})[_0x3b73('0x21')](function(_0x4c56d2){logger[_0x3b73('0x1f')](_0x3b73('0x1e'),_0x3b73('0x34'),_0x4c56d2);});};}function afterCreateOfflineMessage(_0x57858c){return function(_0x42dcfb){_0x42dcfb=_0x42dcfb[_0x3b73('0x22')]({'plain':!![]});_0x42dcfb[_0x3b73('0x32')]=_0x57858c;_0x42dcfb[_0x3b73('0x23')]=_0x57858c;_0x42dcfb[_0x3b73('0x24')]=_0x3b73('0x35');return request({'event':_0x42dcfb[_0x3b73('0x24')],'message':_0x42dcfb});};}function afterCreate(_0x100088,_0x13c925){return function(_0x421586){_0x421586=_0x421586[_0x3b73('0x22')]({'plain':!![]});_0x421586['channel']=_0x100088;_0x421586['motionChannel']=_0x100088;_0x421586[_0x3b73('0x24')]='opened';Promise[_0x3b73('0x26')]()[_0x3b73('0x1d')](function(){var _0x40b320=_0x3b73('0x29')+_0x421586[_0x3b73('0x27')];return db[_0x3b73('0x2a')][_0x3b73('0x36')](_0x40b320,{'type':db[_0x3b73('0x37')][_0x3b73('0x2b')]['SELECT'],'raw':!![]});})[_0x3b73('0x1d')](function(_0x918f54){if(_0x918f54){_0x421586[_0x3b73('0x2d')]=_0x918f54[0x0];}if(typeof _0x421586[_0x3b73('0x2e')]==='undefined')return;return getAgent(_0x421586[_0x3b73('0x2e')]);})[_0x3b73('0x1d')](function(_0x2e0a0e){if(_0x2e0a0e){_0x421586[_0x3b73('0x38')]=util[_0x3b73('0x2f')](_0x3b73('0x30'),_0x2e0a0e['name']);_0x421586['agent']=_0x2e0a0e;}return request({'event':_0x13c925,'message':_0x421586});})['catch'](function(_0x22e7fc){logger[_0x3b73('0x1f')](_0x3b73('0x1e'),_0x3b73('0x39'),_0x22e7fc);});};}function afterUpdate(_0x38f987){return function(_0x13aa14){var _0x29547c=_0x13aa14[_0x3b73('0x3a')](_0x3b73('0x3b'))&&_0x13aa14[_0x3b73('0x3b')];var _0x2ca062=_0x13aa14[_0x3b73('0x3a')]('substatus');if(_0x29547c||_0x2ca062){var _0x2f62df=_0x29547c?_0x3b73('0xa'):'substatus';var _0x2a7e09=_0x13aa14[_0x3b73('0x22')]({'plain':!![]});_0x2a7e09[_0x3b73('0x32')]=_0x38f987;_0x2a7e09[_0x3b73('0x23')]=_0x38f987;_0x2a7e09['event']=_0x29547c?_0x3b73('0x3b'):_0x3b73('0x3c');var _0x31e124=_0x3b73('0x29')+_0x2a7e09['ContactId'];return db[_0x3b73('0x2a')][_0x3b73('0x36')](_0x31e124,{'type':db[_0x3b73('0x37')][_0x3b73('0x2b')][_0x3b73('0x2c')],'raw':!![]})[_0x3b73('0x1d')](function(_0x3f96fd){if(_0x3f96fd){_0x2a7e09[_0x3b73('0x2d')]=_0x3f96fd[0x0];}if(typeof _0x2a7e09[_0x3b73('0x2e')]===_0x3b73('0x28'))return;return getAgent(_0x2a7e09[_0x3b73('0x2e')]);})[_0x3b73('0x1d')](function(_0xe525a2){if(_0xe525a2){_0x2a7e09[_0x3b73('0x38')]=util[_0x3b73('0x2f')](_0x3b73('0x30'),_0xe525a2[_0x3b73('0x3d')]);_0x2a7e09[_0x3b73('0x31')]=_0xe525a2;}return request({'event':_0x2f62df,'message':_0x2a7e09});})[_0x3b73('0x21')](function(_0x4fd2e4){logger[_0x3b73('0x1f')](_0x3b73('0x1e'),'AfterUpdate',_0x4fd2e4);});}};}function getAgent(_0x37ca1b){return db[_0x3b73('0x3e')][_0x3b73('0x3f')]({'where':{'id':_0x37ca1b},'attributes':['id',_0x3b73('0x3d'),_0x3b73('0x40'),_0x3b73('0x41'),_0x3b73('0x42')],'raw':!![]})['then'](function(_0x58a117){return _0x58a117;});}exports[_0x3b73('0x43')]=function(){for(var _0x1230f4=0x0;_0x1230f4<triggers[_0x3b73('0x44')];_0x1230f4+=0x1){if(db['hasOwnProperty'](triggers[_0x1230f4][_0x3b73('0x45')])){db[triggers[_0x1230f4][_0x3b73('0x45')]][_0x3b73('0x46')](triggers[_0x1230f4][_0x3b73('0x24')],triggers[_0x1230f4]['callback'](triggers[_0x1230f4][_0x3b73('0x32')][_0x3b73('0x47')](),triggers[_0x1230f4]['condition']));}}};