Built motion from commit a134ab58.|2.6.29
[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 _0x592f=['http','Chat','afterCreate','newinteraction','ChatInteraction','afterUpdate','ChatOfflineMessage','Sms','SmsInteraction','newmessage','WhatsappInteraction','Whatsapp','closedinteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','OpenchannelInteraction','Openchannel','OpenchannelMessage','EventManager','then','info','Trigger,\x20%s','error','catch','channel','motionChannel','event','direction','resolve','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','query','Sequelize','QueryTypes','SELECT','contact','UserId','interface','format','name','agent','incomingmessage','outgoingmessage','get','opened','SIP/%s','closed','changed','substatus','AfterUpdate','User','find','email','default','length','hasOwnProperty','hook','callback','util','../../mysqldb','jayson/promise','../logger','triggers','client'];(function(_0x3e8fda,_0x41f10b){var _0x32e551=function(_0x3f2d67){while(--_0x3f2d67){_0x3e8fda['push'](_0x3e8fda['shift']());}};_0x32e551(++_0x41f10b);}(_0x592f,0x15d));var _0xf592=function(_0x332f02,_0x4ec7db){_0x332f02=_0x332f02-0x0;var _0x46f93f=_0x592f[_0x332f02];return _0x46f93f;};'use strict';var util=require(_0xf592('0x0'));var db=require(_0xf592('0x1'))['db'];var jayson=require(_0xf592('0x2'));var logger=require(_0xf592('0x3'))(_0xf592('0x4'));var client=jayson[_0xf592('0x5')][_0xf592('0x6')]({'port':0x232a});var triggers=[{'channel':_0xf592('0x7'),'model':'ChatInteraction','event':_0xf592('0x8'),'condition':_0xf592('0x9'),'callback':afterCreate},{'channel':_0xf592('0x7'),'model':_0xf592('0xa'),'event':_0xf592('0xb'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0xf592('0x7'),'model':'ChatMessage','event':_0xf592('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xf592('0x7'),'model':_0xf592('0xc'),'event':_0xf592('0x8'),'condition':'newmessage','callback':afterCreateOfflineMessage},{'channel':_0xf592('0xd'),'model':_0xf592('0xe'),'event':'afterCreate','condition':'newinteraction','callback':afterCreate},{'channel':'Sms','model':_0xf592('0xe'),'event':_0xf592('0xb'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Sms','model':'SmsMessage','event':_0xf592('0x8'),'condition':_0xf592('0xf'),'callback':afterCreateMessage},{'channel':'Whatsapp','model':_0xf592('0x10'),'event':_0xf592('0x8'),'condition':_0xf592('0x9'),'callback':afterCreate},{'channel':_0xf592('0x11'),'model':_0xf592('0x10'),'event':_0xf592('0xb'),'condition':_0xf592('0x12'),'callback':afterUpdate},{'channel':_0xf592('0x11'),'model':_0xf592('0x13'),'event':_0xf592('0x8'),'condition':_0xf592('0xf'),'callback':afterCreateMessage},{'channel':_0xf592('0x14'),'model':_0xf592('0x15'),'event':_0xf592('0x8'),'condition':_0xf592('0x9'),'callback':afterCreate},{'channel':_0xf592('0x14'),'model':'FaxInteraction','event':_0xf592('0xb'),'condition':_0xf592('0x12'),'callback':afterUpdate},{'channel':_0xf592('0x14'),'model':_0xf592('0x16'),'event':_0xf592('0x8'),'condition':_0xf592('0xf'),'callback':afterCreateMessage},{'channel':_0xf592('0x17'),'model':_0xf592('0x18'),'event':_0xf592('0x8'),'condition':_0xf592('0x9'),'callback':afterCreate},{'channel':'Mail','model':'MailInteraction','event':_0xf592('0xb'),'condition':_0xf592('0x12'),'callback':afterUpdate},{'channel':_0xf592('0x17'),'model':_0xf592('0x19'),'event':'afterCreate','condition':_0xf592('0xf'),'callback':afterCreateMessage},{'channel':'Openchannel','model':_0xf592('0x1a'),'event':_0xf592('0x8'),'condition':_0xf592('0x9'),'callback':afterCreate},{'channel':_0xf592('0x1b'),'model':_0xf592('0x1a'),'event':_0xf592('0xb'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0xf592('0x1b'),'model':_0xf592('0x1c'),'event':_0xf592('0x8'),'condition':_0xf592('0xf'),'callback':afterCreateMessage}];function request(_0x2fabfc){return client['request'](_0xf592('0x1d'),_0x2fabfc)[_0xf592('0x1e')](function(_0x6035af){logger[_0xf592('0x1f')](_0xf592('0x20'),_0xf592('0x1d'),_0x6035af);if(_0x6035af[_0xf592('0x21')]){if(_0x6035af[_0xf592('0x21')]['code']===0x1f4){logger[_0xf592('0x21')](_0xf592('0x20'),_0xf592('0x1d'),_0x6035af[_0xf592('0x21')]);}}})[_0xf592('0x22')](function(_0x59ca2a){logger[_0xf592('0x21')]('Trigger,\x20%s',_0xf592('0x1d'),_0x59ca2a);});}function afterCreateMessage(_0x2f9529){return function(_0x53adcd){_0x53adcd=_0x53adcd['get']({'plain':!![]});_0x53adcd[_0xf592('0x23')]=_0x2f9529;_0x53adcd[_0xf592('0x24')]=_0x2f9529;_0x53adcd[_0xf592('0x25')]=_0x53adcd[_0xf592('0x26')];Promise[_0xf592('0x27')]()[_0xf592('0x1e')](function(){if(typeof _0x53adcd[_0xf592('0x28')]===_0xf592('0x29'))return null;var _0x3dc01a=_0xf592('0x2a')+_0x53adcd[_0xf592('0x28')];return db[_0xf592('0x2b')][_0xf592('0x2c')](_0x3dc01a,{'type':db[_0xf592('0x2d')][_0xf592('0x2e')][_0xf592('0x2f')],'raw':!![]});})[_0xf592('0x1e')](function(_0x1ebabe){if(_0x1ebabe){_0x53adcd[_0xf592('0x30')]=_0x1ebabe[0x0];}if(typeof _0x53adcd[_0xf592('0x31')]===_0xf592('0x29'))return;return getAgent(_0x53adcd[_0xf592('0x31')]);})[_0xf592('0x1e')](function(_0x5f4d6e){if(_0x5f4d6e){_0x53adcd[_0xf592('0x32')]=util[_0xf592('0x33')]('SIP/%s',_0x5f4d6e[_0xf592('0x34')]);_0x53adcd[_0xf592('0x35')]=_0x5f4d6e;_0x53adcd[_0xf592('0x23')]=_0x2f9529;return request({'event':_0xf592('0x36'),'message':_0x53adcd});}else{return request({'event':_0xf592('0x37'),'message':_0x53adcd});}})[_0xf592('0x22')](function(_0x3345de){logger[_0xf592('0x21')](_0xf592('0x20'),'AfterCreateMessage',_0x3345de);});};}function afterCreateOfflineMessage(_0x250616){return function(_0x4f35f8){_0x4f35f8=_0x4f35f8[_0xf592('0x38')]({'plain':!![]});_0x4f35f8[_0xf592('0x23')]=_0x250616;_0x4f35f8[_0xf592('0x24')]=_0x250616;_0x4f35f8[_0xf592('0x25')]='offlineMessage';return request({'event':_0x4f35f8[_0xf592('0x25')],'message':_0x4f35f8});};}function afterCreate(_0x513508,_0x4a3f93){return function(_0x1e5da6){_0x1e5da6=_0x1e5da6[_0xf592('0x38')]({'plain':!![]});_0x1e5da6[_0xf592('0x23')]=_0x513508;_0x1e5da6[_0xf592('0x24')]=_0x513508;_0x1e5da6[_0xf592('0x25')]=_0xf592('0x39');Promise['resolve']()['then'](function(){var _0x54a8d7=_0xf592('0x2a')+_0x1e5da6['ContactId'];return db['sequelize']['query'](_0x54a8d7,{'type':db[_0xf592('0x2d')][_0xf592('0x2e')][_0xf592('0x2f')],'raw':!![]});})['then'](function(_0x3ce307){if(_0x3ce307){_0x1e5da6[_0xf592('0x30')]=_0x3ce307[0x0];}if(typeof _0x1e5da6[_0xf592('0x31')]===_0xf592('0x29'))return;return getAgent(_0x1e5da6[_0xf592('0x31')]);})['then'](function(_0x13930d){if(_0x13930d){_0x1e5da6[_0xf592('0x32')]=util[_0xf592('0x33')](_0xf592('0x3a'),_0x13930d[_0xf592('0x34')]);_0x1e5da6[_0xf592('0x35')]=_0x13930d;}return request({'event':_0x4a3f93,'message':_0x1e5da6});})[_0xf592('0x22')](function(_0x2010db){logger['error'](_0xf592('0x20'),'AfterCreate',_0x2010db);});};}function afterUpdate(_0x307478){return function(_0x5b73ee){var _0x249ea5=_0x5b73ee['changed'](_0xf592('0x3b'))&&_0x5b73ee[_0xf592('0x3b')];var _0x1bccf7=_0x5b73ee[_0xf592('0x3c')]('substatus');if(_0x249ea5||_0x1bccf7){var _0x4d2062=_0x249ea5?_0xf592('0x12'):_0xf592('0x3d');var _0x84eeab=_0x5b73ee[_0xf592('0x38')]({'plain':!![]});_0x84eeab[_0xf592('0x23')]=_0x307478;_0x84eeab[_0xf592('0x24')]=_0x307478;_0x84eeab[_0xf592('0x25')]=_0x249ea5?'closed':_0xf592('0x3d');var _0x12b640='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x84eeab['ContactId'];return db[_0xf592('0x2b')]['query'](_0x12b640,{'type':db[_0xf592('0x2d')][_0xf592('0x2e')]['SELECT'],'raw':!![]})[_0xf592('0x1e')](function(_0x4ee112){if(_0x4ee112){_0x84eeab[_0xf592('0x30')]=_0x4ee112[0x0];}if(typeof _0x84eeab[_0xf592('0x31')]===_0xf592('0x29'))return;return getAgent(_0x84eeab[_0xf592('0x31')]);})[_0xf592('0x1e')](function(_0x45f2db){if(_0x45f2db){_0x84eeab[_0xf592('0x32')]=util[_0xf592('0x33')](_0xf592('0x3a'),_0x45f2db[_0xf592('0x34')]);_0x84eeab[_0xf592('0x35')]=_0x45f2db;}return request({'event':_0x4d2062,'message':_0x84eeab});})[_0xf592('0x22')](function(_0x29cc27){logger['error'](_0xf592('0x20'),_0xf592('0x3e'),_0x29cc27);});}};}function getAgent(_0x62e6bf){return db[_0xf592('0x3f')][_0xf592('0x40')]({'where':{'id':_0x62e6bf},'attributes':['id','name','fullname',_0xf592('0x41'),'internal'],'raw':!![]})['then'](function(_0x1d0231){return _0x1d0231;});}exports[_0xf592('0x42')]=function(){for(var _0xf7e0ea=0x0;_0xf7e0ea<triggers[_0xf592('0x43')];_0xf7e0ea+=0x1){if(db[_0xf592('0x44')](triggers[_0xf7e0ea]['model'])){db[triggers[_0xf7e0ea]['model']][_0xf592('0x45')](triggers[_0xf7e0ea][_0xf592('0x25')],triggers[_0xf7e0ea][_0xf592('0x46')](triggers[_0xf7e0ea][_0xf592('0x23')]['toLowerCase'](),triggers[_0xf7e0ea]['condition']));}}};