ec224a1d9ca90963c602c61d466086f4ebb1e298
[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 _0x0845=['closedinteraction','ChatMessage','afterCreate','newmessage','ChatOfflineMessage','Sms','SmsInteraction','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','request','EventManager','then','info','Trigger,\x20%s','error','code','catch','get','channel','motionChannel','event','direction','resolve','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','Sequelize','QueryTypes','SELECT','contact','interface','format','SIP/%s','name','agent','incomingmessage','AfterCreateMessage','opened','UserId','AfterCreate','changed','closed','substatus','query','AfterUpdate','User','find','default','length','hasOwnProperty','model','hook','condition','../logger','triggers','Chat','newinteraction','ChatInteraction','afterUpdate'];(function(_0x29ad8e,_0x371cca){var _0x3aaa3c=function(_0x7ae80){while(--_0x7ae80){_0x29ad8e['push'](_0x29ad8e['shift']());}};_0x3aaa3c(++_0x371cca);}(_0x0845,0x10e));var _0x5084=function(_0x4223dc,_0x54716d){_0x4223dc=_0x4223dc-0x0;var _0x29361e=_0x0845[_0x4223dc];return _0x29361e;};'use strict';var util=require('util');var db=require('../../mysqldb')['db'];var jayson=require('jayson/promise');var logger=require(_0x5084('0x0'))(_0x5084('0x1'));var client=jayson['client']['http']({'port':0x232a});var triggers=[{'channel':_0x5084('0x2'),'model':'ChatInteraction','event':'afterCreate','condition':_0x5084('0x3'),'callback':afterCreate},{'channel':_0x5084('0x2'),'model':_0x5084('0x4'),'event':_0x5084('0x5'),'condition':_0x5084('0x6'),'callback':afterUpdate},{'channel':_0x5084('0x2'),'model':_0x5084('0x7'),'event':_0x5084('0x8'),'condition':_0x5084('0x9'),'callback':afterCreateMessage},{'channel':'Chat','model':_0x5084('0xa'),'event':_0x5084('0x8'),'condition':_0x5084('0x9'),'callback':afterCreateOfflineMessage},{'channel':_0x5084('0xb'),'model':_0x5084('0xc'),'event':_0x5084('0x8'),'condition':_0x5084('0x3'),'callback':afterCreate},{'channel':_0x5084('0xb'),'model':_0x5084('0xc'),'event':_0x5084('0x5'),'condition':_0x5084('0x6'),'callback':afterUpdate},{'channel':_0x5084('0xb'),'model':'SmsMessage','event':_0x5084('0x8'),'condition':_0x5084('0x9'),'callback':afterCreateMessage},{'channel':_0x5084('0xd'),'model':'WhatsappInteraction','event':_0x5084('0x8'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x5084('0xd'),'model':_0x5084('0xe'),'event':'afterUpdate','condition':_0x5084('0x6'),'callback':afterUpdate},{'channel':_0x5084('0xd'),'model':_0x5084('0xf'),'event':_0x5084('0x8'),'condition':_0x5084('0x9'),'callback':afterCreateMessage},{'channel':_0x5084('0x10'),'model':_0x5084('0x11'),'event':'afterCreate','condition':_0x5084('0x3'),'callback':afterCreate},{'channel':_0x5084('0x10'),'model':_0x5084('0x11'),'event':_0x5084('0x5'),'condition':_0x5084('0x6'),'callback':afterUpdate},{'channel':'Fax','model':_0x5084('0x12'),'event':_0x5084('0x8'),'condition':_0x5084('0x9'),'callback':afterCreateMessage},{'channel':_0x5084('0x13'),'model':'MailInteraction','event':_0x5084('0x8'),'condition':_0x5084('0x3'),'callback':afterCreate},{'channel':_0x5084('0x13'),'model':_0x5084('0x14'),'event':_0x5084('0x5'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x5084('0x13'),'model':_0x5084('0x15'),'event':_0x5084('0x8'),'condition':_0x5084('0x9'),'callback':afterCreateMessage},{'channel':_0x5084('0x16'),'model':_0x5084('0x17'),'event':'afterCreate','condition':_0x5084('0x3'),'callback':afterCreate},{'channel':_0x5084('0x16'),'model':'OpenchannelInteraction','event':_0x5084('0x5'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x5084('0x16'),'model':'OpenchannelMessage','event':'afterCreate','condition':'newmessage','callback':afterCreateMessage}];function request(_0x4ac68d){return client[_0x5084('0x18')](_0x5084('0x19'),_0x4ac68d)[_0x5084('0x1a')](function(_0x20fd0f){logger[_0x5084('0x1b')](_0x5084('0x1c'),_0x5084('0x19'),_0x20fd0f);if(_0x20fd0f[_0x5084('0x1d')]){if(_0x20fd0f['error'][_0x5084('0x1e')]===0x1f4){logger['error'](_0x5084('0x1c'),_0x5084('0x19'),_0x20fd0f[_0x5084('0x1d')]);}}})[_0x5084('0x1f')](function(_0x157393){logger['error'](_0x5084('0x1c'),_0x5084('0x19'),_0x157393);});}function afterCreateMessage(_0x3dbbb2){return function(_0x3a1d2d){_0x3a1d2d=_0x3a1d2d[_0x5084('0x20')]({'plain':!![]});_0x3a1d2d[_0x5084('0x21')]=_0x3dbbb2;_0x3a1d2d[_0x5084('0x22')]=_0x3dbbb2;_0x3a1d2d[_0x5084('0x23')]=_0x3a1d2d[_0x5084('0x24')];Promise[_0x5084('0x25')]()[_0x5084('0x1a')](function(){if(typeof _0x3a1d2d[_0x5084('0x26')]===_0x5084('0x27'))return null;var _0x2e471e=_0x5084('0x28')+_0x3a1d2d[_0x5084('0x26')];return db[_0x5084('0x29')]['query'](_0x2e471e,{'type':db[_0x5084('0x2a')][_0x5084('0x2b')][_0x5084('0x2c')],'raw':!![]});})[_0x5084('0x1a')](function(_0x1ef61e){if(_0x1ef61e){_0x3a1d2d[_0x5084('0x2d')]=_0x1ef61e[0x0];}if(typeof _0x3a1d2d['UserId']==='undefined')return;return getAgent(_0x3a1d2d['UserId']);})['then'](function(_0x2c9c8e){if(_0x2c9c8e){_0x3a1d2d[_0x5084('0x2e')]=util[_0x5084('0x2f')](_0x5084('0x30'),_0x2c9c8e[_0x5084('0x31')]);_0x3a1d2d[_0x5084('0x32')]=_0x2c9c8e;_0x3a1d2d['channel']=_0x3dbbb2;return request({'event':_0x5084('0x33'),'message':_0x3a1d2d});}else{return request({'event':'outgoingmessage','message':_0x3a1d2d});}})[_0x5084('0x1f')](function(_0x18578a){logger[_0x5084('0x1d')](_0x5084('0x1c'),_0x5084('0x34'),_0x18578a);});};}function afterCreateOfflineMessage(_0x174cfc){return function(_0x21e3e8){_0x21e3e8=_0x21e3e8[_0x5084('0x20')]({'plain':!![]});_0x21e3e8[_0x5084('0x21')]=_0x174cfc;_0x21e3e8['motionChannel']=_0x174cfc;_0x21e3e8['event']='offlineMessage';return request({'event':_0x21e3e8['event'],'message':_0x21e3e8});};}function afterCreate(_0x3fbbb5,_0x23edf2){return function(_0x26282f){_0x26282f=_0x26282f[_0x5084('0x20')]({'plain':!![]});_0x26282f[_0x5084('0x21')]=_0x3fbbb5;_0x26282f['motionChannel']=_0x3fbbb5;_0x26282f['event']=_0x5084('0x35');Promise[_0x5084('0x25')]()[_0x5084('0x1a')](function(){var _0xf2a984='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x26282f[_0x5084('0x26')];return db['sequelize']['query'](_0xf2a984,{'type':db[_0x5084('0x2a')][_0x5084('0x2b')][_0x5084('0x2c')],'raw':!![]});})[_0x5084('0x1a')](function(_0x4c5e7e){if(_0x4c5e7e){_0x26282f[_0x5084('0x2d')]=_0x4c5e7e[0x0];}if(typeof _0x26282f['UserId']==='undefined')return;return getAgent(_0x26282f[_0x5084('0x36')]);})[_0x5084('0x1a')](function(_0x26133b){if(_0x26133b){_0x26282f[_0x5084('0x2e')]=util[_0x5084('0x2f')](_0x5084('0x30'),_0x26133b[_0x5084('0x31')]);_0x26282f[_0x5084('0x32')]=_0x26133b;}return request({'event':_0x23edf2,'message':_0x26282f});})[_0x5084('0x1f')](function(_0x3ae47c){logger[_0x5084('0x1d')](_0x5084('0x1c'),_0x5084('0x37'),_0x3ae47c);});};}function afterUpdate(_0xb53726){return function(_0x431f78){var _0x23e5d2=_0x431f78[_0x5084('0x38')](_0x5084('0x39'))&&_0x431f78['closed'];var _0x14fe80=_0x431f78[_0x5084('0x38')]('substatus');if(_0x23e5d2||_0x14fe80){var _0x1bc652=_0x23e5d2?_0x5084('0x6'):_0x5084('0x3a');var _0x4b7931=_0x431f78[_0x5084('0x20')]({'plain':!![]});_0x4b7931['channel']=_0xb53726;_0x4b7931[_0x5084('0x22')]=_0xb53726;_0x4b7931['event']=_0x23e5d2?_0x5084('0x39'):_0x5084('0x3a');var _0x236c5c='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x4b7931[_0x5084('0x26')];return db[_0x5084('0x29')][_0x5084('0x3b')](_0x236c5c,{'type':db[_0x5084('0x2a')]['QueryTypes']['SELECT'],'raw':!![]})[_0x5084('0x1a')](function(_0x1698aa){if(_0x1698aa){_0x4b7931[_0x5084('0x2d')]=_0x1698aa[0x0];}if(typeof _0x4b7931[_0x5084('0x36')]===_0x5084('0x27'))return;return getAgent(_0x4b7931[_0x5084('0x36')]);})[_0x5084('0x1a')](function(_0x4783dc){if(_0x4783dc){_0x4b7931[_0x5084('0x2e')]=util[_0x5084('0x2f')](_0x5084('0x30'),_0x4783dc[_0x5084('0x31')]);_0x4b7931[_0x5084('0x32')]=_0x4783dc;}return request({'event':_0x1bc652,'message':_0x4b7931});})[_0x5084('0x1f')](function(_0x49d8c0){logger[_0x5084('0x1d')](_0x5084('0x1c'),_0x5084('0x3c'),_0x49d8c0);});}};}function getAgent(_0x100e95){return db[_0x5084('0x3d')][_0x5084('0x3e')]({'where':{'id':_0x100e95},'attributes':['id',_0x5084('0x31'),'fullname','email','internal'],'raw':!![]})['then'](function(_0x164517){return _0x164517;});}exports[_0x5084('0x3f')]=function(){for(var _0x34e20b=0x0;_0x34e20b<triggers[_0x5084('0x40')];_0x34e20b+=0x1){if(db[_0x5084('0x41')](triggers[_0x34e20b][_0x5084('0x42')])){db[triggers[_0x34e20b]['model']][_0x5084('0x43')](triggers[_0x34e20b][_0x5084('0x23')],triggers[_0x34e20b]['callback'](triggers[_0x34e20b][_0x5084('0x21')]['toLowerCase'](),triggers[_0x34e20b][_0x5084('0x44')]));}}};