db01e3cf5bb8124e6e7df22418e69876246e2f31
[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 _0xf3a3=['AfterCreate','closed','changed','substatus','User','find','email','internal','default','hasOwnProperty','model','hook','callback','condition','util','jayson/promise','../logger','triggers','client','newinteraction','ChatInteraction','afterUpdate','closedinteraction','Chat','afterCreate','newmessage','Sms','SmsInteraction','Whatsapp','WhatsappInteraction','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','info','Trigger,\x20%s','error','code','catch','get','motionChannel','event','direction','resolve','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','query','Sequelize','QueryTypes','SELECT','then','contact','UserId','interface','format','SIP/%s','name','agent','channel','incomingmessage','outgoingmessage','AfterCreateMessage','opened','ContactId'];(function(_0x26dfb3,_0x3eb66f){var _0x18bc77=function(_0x56ee81){while(--_0x56ee81){_0x26dfb3['push'](_0x26dfb3['shift']());}};_0x18bc77(++_0x3eb66f);}(_0xf3a3,0x176));var _0x3f3a=function(_0x3211db,_0x13503d){_0x3211db=_0x3211db-0x0;var _0xb565fb=_0xf3a3[_0x3211db];return _0xb565fb;};'use strict';var util=require(_0x3f3a('0x0'));var db=require('../../mysqldb')['db'];var jayson=require(_0x3f3a('0x1'));var logger=require(_0x3f3a('0x2'))(_0x3f3a('0x3'));var client=jayson[_0x3f3a('0x4')]['http']({'port':0x232a});var triggers=[{'channel':'Chat','model':'ChatInteraction','event':'afterCreate','condition':_0x3f3a('0x5'),'callback':afterCreate},{'channel':'Chat','model':_0x3f3a('0x6'),'event':_0x3f3a('0x7'),'condition':_0x3f3a('0x8'),'callback':afterUpdate},{'channel':_0x3f3a('0x9'),'model':'ChatMessage','event':_0x3f3a('0xa'),'condition':_0x3f3a('0xb'),'callback':afterCreateMessage},{'channel':_0x3f3a('0xc'),'model':_0x3f3a('0xd'),'event':'afterCreate','condition':'newinteraction','callback':afterCreate},{'channel':_0x3f3a('0xc'),'model':_0x3f3a('0xd'),'event':_0x3f3a('0x7'),'condition':_0x3f3a('0x8'),'callback':afterUpdate},{'channel':_0x3f3a('0xc'),'model':'SmsMessage','event':_0x3f3a('0xa'),'condition':_0x3f3a('0xb'),'callback':afterCreateMessage},{'channel':_0x3f3a('0xe'),'model':_0x3f3a('0xf'),'event':_0x3f3a('0xa'),'condition':'newinteraction','callback':afterCreate},{'channel':'Whatsapp','model':_0x3f3a('0xf'),'event':_0x3f3a('0x7'),'condition':_0x3f3a('0x8'),'callback':afterUpdate},{'channel':_0x3f3a('0xe'),'model':'WhatsappMessage','event':_0x3f3a('0xa'),'condition':_0x3f3a('0xb'),'callback':afterCreateMessage},{'channel':_0x3f3a('0x10'),'model':_0x3f3a('0x11'),'event':_0x3f3a('0xa'),'condition':_0x3f3a('0x5'),'callback':afterCreate},{'channel':_0x3f3a('0x10'),'model':'FaxInteraction','event':_0x3f3a('0x7'),'condition':_0x3f3a('0x8'),'callback':afterUpdate},{'channel':'Fax','model':_0x3f3a('0x12'),'event':_0x3f3a('0xa'),'condition':_0x3f3a('0xb'),'callback':afterCreateMessage},{'channel':_0x3f3a('0x13'),'model':_0x3f3a('0x14'),'event':'afterCreate','condition':_0x3f3a('0x5'),'callback':afterCreate},{'channel':_0x3f3a('0x13'),'model':_0x3f3a('0x14'),'event':_0x3f3a('0x7'),'condition':_0x3f3a('0x8'),'callback':afterUpdate},{'channel':_0x3f3a('0x13'),'model':_0x3f3a('0x15'),'event':'afterCreate','condition':'newmessage','callback':afterCreateMessage},{'channel':_0x3f3a('0x16'),'model':'OpenchannelInteraction','event':_0x3f3a('0xa'),'condition':_0x3f3a('0x5'),'callback':afterCreate},{'channel':_0x3f3a('0x16'),'model':_0x3f3a('0x17'),'event':_0x3f3a('0x7'),'condition':_0x3f3a('0x8'),'callback':afterUpdate},{'channel':'Openchannel','model':_0x3f3a('0x18'),'event':_0x3f3a('0xa'),'condition':_0x3f3a('0xb'),'callback':afterCreateMessage}];function request(_0x1dc810){return client[_0x3f3a('0x19')](_0x3f3a('0x1a'),_0x1dc810)['then'](function(_0x56c44c){logger[_0x3f3a('0x1b')](_0x3f3a('0x1c'),_0x3f3a('0x1a'),_0x56c44c);if(_0x56c44c[_0x3f3a('0x1d')]){if(_0x56c44c[_0x3f3a('0x1d')][_0x3f3a('0x1e')]===0x1f4){logger[_0x3f3a('0x1d')](_0x3f3a('0x1c'),'EventManager',_0x56c44c[_0x3f3a('0x1d')]);}}})[_0x3f3a('0x1f')](function(_0x3be8d3){logger[_0x3f3a('0x1d')]('Trigger,\x20%s',_0x3f3a('0x1a'),_0x3be8d3);});}function afterCreateMessage(_0x2ed86a){return function(_0x559a93){_0x559a93=_0x559a93[_0x3f3a('0x20')]({'plain':!![]});_0x559a93['channel']=_0x2ed86a;_0x559a93[_0x3f3a('0x21')]=_0x2ed86a;_0x559a93[_0x3f3a('0x22')]=_0x559a93[_0x3f3a('0x23')];Promise[_0x3f3a('0x24')]()['then'](function(){if(typeof _0x559a93['ContactId']===_0x3f3a('0x25'))return null;var _0x212ebf=_0x3f3a('0x26')+_0x559a93['ContactId'];return db[_0x3f3a('0x27')][_0x3f3a('0x28')](_0x212ebf,{'type':db[_0x3f3a('0x29')][_0x3f3a('0x2a')][_0x3f3a('0x2b')],'raw':!![]});})[_0x3f3a('0x2c')](function(_0x241dd2){if(_0x241dd2){_0x559a93[_0x3f3a('0x2d')]=_0x241dd2[0x0];}if(typeof _0x559a93[_0x3f3a('0x2e')]===_0x3f3a('0x25'))return;return getAgent(_0x559a93['UserId']);})[_0x3f3a('0x2c')](function(_0x318275){if(_0x318275){_0x559a93[_0x3f3a('0x2f')]=util[_0x3f3a('0x30')](_0x3f3a('0x31'),_0x318275[_0x3f3a('0x32')]);_0x559a93[_0x3f3a('0x33')]=_0x318275;_0x559a93[_0x3f3a('0x34')]=_0x2ed86a;return request({'event':_0x3f3a('0x35'),'message':_0x559a93});}else{return request({'event':_0x3f3a('0x36'),'message':_0x559a93});}})[_0x3f3a('0x1f')](function(_0x4ed8a7){logger['error'](_0x3f3a('0x1c'),_0x3f3a('0x37'),_0x4ed8a7);});};}function afterCreate(_0x5407ba,_0xada1e4){return function(_0x95531a){_0x95531a=_0x95531a[_0x3f3a('0x20')]({'plain':!![]});_0x95531a[_0x3f3a('0x34')]=_0x5407ba;_0x95531a[_0x3f3a('0x21')]=_0x5407ba;_0x95531a[_0x3f3a('0x22')]=_0x3f3a('0x38');Promise[_0x3f3a('0x24')]()[_0x3f3a('0x2c')](function(){var _0x3f1322=_0x3f3a('0x26')+_0x95531a[_0x3f3a('0x39')];return db[_0x3f3a('0x27')][_0x3f3a('0x28')](_0x3f1322,{'type':db['Sequelize'][_0x3f3a('0x2a')][_0x3f3a('0x2b')],'raw':!![]});})['then'](function(_0x5ca0a9){if(_0x5ca0a9){_0x95531a[_0x3f3a('0x2d')]=_0x5ca0a9[0x0];}if(typeof _0x95531a[_0x3f3a('0x2e')]===_0x3f3a('0x25'))return;return getAgent(_0x95531a[_0x3f3a('0x2e')]);})['then'](function(_0x1984ea){if(_0x1984ea){_0x95531a[_0x3f3a('0x2f')]=util[_0x3f3a('0x30')](_0x3f3a('0x31'),_0x1984ea['name']);_0x95531a['agent']=_0x1984ea;}return request({'event':_0xada1e4,'message':_0x95531a});})[_0x3f3a('0x1f')](function(_0x372659){logger[_0x3f3a('0x1d')](_0x3f3a('0x1c'),_0x3f3a('0x3a'),_0x372659);});};}function afterUpdate(_0x2357fb){return function(_0x3028f9){var _0x3f74b8=_0x3028f9['changed'](_0x3f3a('0x3b'))&&_0x3028f9[_0x3f3a('0x3b')];var _0x5e85cc=_0x3028f9[_0x3f3a('0x3c')]('substatus');if(_0x3f74b8||_0x5e85cc){var _0x17fe1b=_0x3f74b8?_0x3f3a('0x8'):_0x3f3a('0x3d');var _0x4675b2=_0x3028f9[_0x3f3a('0x20')]({'plain':!![]});_0x4675b2['channel']=_0x2357fb;_0x4675b2[_0x3f3a('0x21')]=_0x2357fb;_0x4675b2[_0x3f3a('0x22')]=_0x3f74b8?'closed':_0x3f3a('0x3d');var _0x5518cb=_0x3f3a('0x26')+_0x4675b2['ContactId'];return db[_0x3f3a('0x27')][_0x3f3a('0x28')](_0x5518cb,{'type':db['Sequelize'][_0x3f3a('0x2a')][_0x3f3a('0x2b')],'raw':!![]})[_0x3f3a('0x2c')](function(_0x2fab25){if(_0x2fab25){_0x4675b2['contact']=_0x2fab25[0x0];}if(typeof _0x4675b2[_0x3f3a('0x2e')]===_0x3f3a('0x25'))return;return getAgent(_0x4675b2[_0x3f3a('0x2e')]);})[_0x3f3a('0x2c')](function(_0x2eb421){if(_0x2eb421){_0x4675b2[_0x3f3a('0x2f')]=util[_0x3f3a('0x30')](_0x3f3a('0x31'),_0x2eb421[_0x3f3a('0x32')]);_0x4675b2[_0x3f3a('0x33')]=_0x2eb421;}return request({'event':_0x17fe1b,'message':_0x4675b2});})[_0x3f3a('0x1f')](function(_0xa9975e){logger[_0x3f3a('0x1d')](_0x3f3a('0x1c'),'AfterUpdate',_0xa9975e);});}};}function getAgent(_0x45b6fc){return db[_0x3f3a('0x3e')][_0x3f3a('0x3f')]({'where':{'id':_0x45b6fc},'attributes':['id',_0x3f3a('0x32'),'fullname',_0x3f3a('0x40'),_0x3f3a('0x41')],'raw':!![]})[_0x3f3a('0x2c')](function(_0x2b8902){return _0x2b8902;});}exports[_0x3f3a('0x42')]=function(){for(var _0xece7ab=0x0;_0xece7ab<triggers['length'];_0xece7ab+=0x1){if(db[_0x3f3a('0x43')](triggers[_0xece7ab]['model'])){db[triggers[_0xece7ab][_0x3f3a('0x44')]][_0x3f3a('0x45')](triggers[_0xece7ab][_0x3f3a('0x22')],triggers[_0xece7ab][_0x3f3a('0x46')](triggers[_0xece7ab][_0x3f3a('0x34')]['toLowerCase'](),triggers[_0xece7ab][_0x3f3a('0x47')]));}}};