Built motion from commit 4d4d9a88.|2.6.26
[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 _0x9867=['Trigger,\x20%s','catch','get','motionChannel','event','direction','resolve','undefined','ContactId','sequelize','query','Sequelize','QueryTypes','UserId','format','SIP/%s','name','agent','channel','incomingmessage','outgoingmessage','AfterCreateMessage','offlineMessage','opened','contact','interface','AfterCreate','changed','closed','substatus','SELECT','AfterUpdate','User','find','fullname','internal','length','hasOwnProperty','model','hook','toLowerCase','condition','util','../../mysqldb','../logger','triggers','client','http','Chat','afterCreate','newinteraction','ChatInteraction','afterUpdate','closedinteraction','ChatMessage','newmessage','ChatOfflineMessage','Sms','SmsInteraction','SmsMessage','Whatsapp','WhatsappInteraction','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','then','info','error'];(function(_0xb5a340,_0xcd07ce){var _0x2fb878=function(_0x472fb2){while(--_0x472fb2){_0xb5a340['push'](_0xb5a340['shift']());}};_0x2fb878(++_0xcd07ce);}(_0x9867,0x1a6));var _0x7986=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x9867[_0x14add3];return _0x4a174f;};'use strict';var util=require(_0x7986('0x0'));var db=require(_0x7986('0x1'))['db'];var jayson=require('jayson/promise');var logger=require(_0x7986('0x2'))(_0x7986('0x3'));var client=jayson[_0x7986('0x4')][_0x7986('0x5')]({'port':0x232a});var triggers=[{'channel':_0x7986('0x6'),'model':'ChatInteraction','event':_0x7986('0x7'),'condition':_0x7986('0x8'),'callback':afterCreate},{'channel':_0x7986('0x6'),'model':_0x7986('0x9'),'event':_0x7986('0xa'),'condition':_0x7986('0xb'),'callback':afterUpdate},{'channel':_0x7986('0x6'),'model':_0x7986('0xc'),'event':_0x7986('0x7'),'condition':_0x7986('0xd'),'callback':afterCreateMessage},{'channel':_0x7986('0x6'),'model':_0x7986('0xe'),'event':_0x7986('0x7'),'condition':_0x7986('0xd'),'callback':afterCreateOfflineMessage},{'channel':_0x7986('0xf'),'model':_0x7986('0x10'),'event':'afterCreate','condition':_0x7986('0x8'),'callback':afterCreate},{'channel':_0x7986('0xf'),'model':_0x7986('0x10'),'event':'afterUpdate','condition':_0x7986('0xb'),'callback':afterUpdate},{'channel':_0x7986('0xf'),'model':_0x7986('0x11'),'event':_0x7986('0x7'),'condition':_0x7986('0xd'),'callback':afterCreateMessage},{'channel':_0x7986('0x12'),'model':_0x7986('0x13'),'event':_0x7986('0x7'),'condition':_0x7986('0x8'),'callback':afterCreate},{'channel':_0x7986('0x12'),'model':_0x7986('0x13'),'event':_0x7986('0xa'),'condition':_0x7986('0xb'),'callback':afterUpdate},{'channel':_0x7986('0x12'),'model':'WhatsappMessage','event':_0x7986('0x7'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x7986('0x14'),'model':'FaxInteraction','event':_0x7986('0x7'),'condition':_0x7986('0x8'),'callback':afterCreate},{'channel':_0x7986('0x14'),'model':_0x7986('0x15'),'event':_0x7986('0xa'),'condition':_0x7986('0xb'),'callback':afterUpdate},{'channel':_0x7986('0x14'),'model':_0x7986('0x16'),'event':_0x7986('0x7'),'condition':_0x7986('0xd'),'callback':afterCreateMessage},{'channel':_0x7986('0x17'),'model':_0x7986('0x18'),'event':'afterCreate','condition':_0x7986('0x8'),'callback':afterCreate},{'channel':_0x7986('0x17'),'model':_0x7986('0x18'),'event':_0x7986('0xa'),'condition':_0x7986('0xb'),'callback':afterUpdate},{'channel':_0x7986('0x17'),'model':_0x7986('0x19'),'event':'afterCreate','condition':_0x7986('0xd'),'callback':afterCreateMessage},{'channel':_0x7986('0x1a'),'model':'OpenchannelInteraction','event':'afterCreate','condition':_0x7986('0x8'),'callback':afterCreate},{'channel':_0x7986('0x1a'),'model':_0x7986('0x1b'),'event':_0x7986('0xa'),'condition':_0x7986('0xb'),'callback':afterUpdate},{'channel':_0x7986('0x1a'),'model':_0x7986('0x1c'),'event':'afterCreate','condition':'newmessage','callback':afterCreateMessage}];function request(_0x1871a7){return client[_0x7986('0x1d')](_0x7986('0x1e'),_0x1871a7)[_0x7986('0x1f')](function(_0x3c4565){logger[_0x7986('0x20')]('Trigger,\x20%s','EventManager',_0x3c4565);if(_0x3c4565[_0x7986('0x21')]){if(_0x3c4565[_0x7986('0x21')]['code']===0x1f4){logger[_0x7986('0x21')](_0x7986('0x22'),'EventManager',_0x3c4565[_0x7986('0x21')]);}}})[_0x7986('0x23')](function(_0x5b322d){logger[_0x7986('0x21')]('Trigger,\x20%s',_0x7986('0x1e'),_0x5b322d);});}function afterCreateMessage(_0x45b375){return function(_0x1e8578){_0x1e8578=_0x1e8578[_0x7986('0x24')]({'plain':!![]});_0x1e8578['channel']=_0x45b375;_0x1e8578[_0x7986('0x25')]=_0x45b375;_0x1e8578[_0x7986('0x26')]=_0x1e8578[_0x7986('0x27')];Promise[_0x7986('0x28')]()[_0x7986('0x1f')](function(){if(typeof _0x1e8578['ContactId']===_0x7986('0x29'))return null;var _0x34cd95='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x1e8578[_0x7986('0x2a')];return db[_0x7986('0x2b')][_0x7986('0x2c')](_0x34cd95,{'type':db[_0x7986('0x2d')][_0x7986('0x2e')]['SELECT'],'raw':!![]});})[_0x7986('0x1f')](function(_0xdf9e97){if(_0xdf9e97){_0x1e8578['contact']=_0xdf9e97[0x0];}if(typeof _0x1e8578['UserId']===_0x7986('0x29'))return;return getAgent(_0x1e8578[_0x7986('0x2f')]);})[_0x7986('0x1f')](function(_0x599f58){if(_0x599f58){_0x1e8578['interface']=util[_0x7986('0x30')](_0x7986('0x31'),_0x599f58[_0x7986('0x32')]);_0x1e8578[_0x7986('0x33')]=_0x599f58;_0x1e8578[_0x7986('0x34')]=_0x45b375;return request({'event':_0x7986('0x35'),'message':_0x1e8578});}else{return request({'event':_0x7986('0x36'),'message':_0x1e8578});}})['catch'](function(_0x1ab91a){logger['error'](_0x7986('0x22'),_0x7986('0x37'),_0x1ab91a);});};}function afterCreateOfflineMessage(_0x51128a){return function(_0x29bd54){_0x29bd54=_0x29bd54[_0x7986('0x24')]({'plain':!![]});_0x29bd54[_0x7986('0x34')]=_0x51128a;_0x29bd54[_0x7986('0x25')]=_0x51128a;_0x29bd54[_0x7986('0x26')]=_0x7986('0x38');return request({'event':_0x29bd54[_0x7986('0x26')],'message':_0x29bd54});};}function afterCreate(_0x1cb194,_0x737e2){return function(_0x50e336){_0x50e336=_0x50e336[_0x7986('0x24')]({'plain':!![]});_0x50e336['channel']=_0x1cb194;_0x50e336[_0x7986('0x25')]=_0x1cb194;_0x50e336[_0x7986('0x26')]=_0x7986('0x39');Promise[_0x7986('0x28')]()[_0x7986('0x1f')](function(){var _0x5a110c='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x50e336['ContactId'];return db['sequelize'][_0x7986('0x2c')](_0x5a110c,{'type':db[_0x7986('0x2d')][_0x7986('0x2e')]['SELECT'],'raw':!![]});})[_0x7986('0x1f')](function(_0xa2aba7){if(_0xa2aba7){_0x50e336[_0x7986('0x3a')]=_0xa2aba7[0x0];}if(typeof _0x50e336[_0x7986('0x2f')]===_0x7986('0x29'))return;return getAgent(_0x50e336['UserId']);})[_0x7986('0x1f')](function(_0x508d07){if(_0x508d07){_0x50e336[_0x7986('0x3b')]=util[_0x7986('0x30')](_0x7986('0x31'),_0x508d07[_0x7986('0x32')]);_0x50e336[_0x7986('0x33')]=_0x508d07;}return request({'event':_0x737e2,'message':_0x50e336});})[_0x7986('0x23')](function(_0x289b00){logger['error'](_0x7986('0x22'),_0x7986('0x3c'),_0x289b00);});};}function afterUpdate(_0x1f89d5){return function(_0x2c6860){var _0xadcbd6=_0x2c6860[_0x7986('0x3d')](_0x7986('0x3e'))&&_0x2c6860['closed'];var _0x55e0e0=_0x2c6860[_0x7986('0x3d')]('substatus');if(_0xadcbd6||_0x55e0e0){var _0xbe73bd=_0xadcbd6?_0x7986('0xb'):_0x7986('0x3f');var _0x2e8633=_0x2c6860[_0x7986('0x24')]({'plain':!![]});_0x2e8633['channel']=_0x1f89d5;_0x2e8633[_0x7986('0x25')]=_0x1f89d5;_0x2e8633[_0x7986('0x26')]=_0xadcbd6?_0x7986('0x3e'):_0x7986('0x3f');var _0x384795='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x2e8633['ContactId'];return db['sequelize'][_0x7986('0x2c')](_0x384795,{'type':db['Sequelize'][_0x7986('0x2e')][_0x7986('0x40')],'raw':!![]})['then'](function(_0x222bce){if(_0x222bce){_0x2e8633[_0x7986('0x3a')]=_0x222bce[0x0];}if(typeof _0x2e8633[_0x7986('0x2f')]===_0x7986('0x29'))return;return getAgent(_0x2e8633['UserId']);})[_0x7986('0x1f')](function(_0x59efca){if(_0x59efca){_0x2e8633['interface']=util[_0x7986('0x30')](_0x7986('0x31'),_0x59efca['name']);_0x2e8633[_0x7986('0x33')]=_0x59efca;}return request({'event':_0xbe73bd,'message':_0x2e8633});})[_0x7986('0x23')](function(_0x13cc37){logger['error']('Trigger,\x20%s',_0x7986('0x41'),_0x13cc37);});}};}function getAgent(_0x40b2b9){return db[_0x7986('0x42')][_0x7986('0x43')]({'where':{'id':_0x40b2b9},'attributes':['id','name',_0x7986('0x44'),'email',_0x7986('0x45')],'raw':!![]})[_0x7986('0x1f')](function(_0x51520b){return _0x51520b;});}exports['default']=function(){for(var _0x2317ea=0x0;_0x2317ea<triggers[_0x7986('0x46')];_0x2317ea+=0x1){if(db[_0x7986('0x47')](triggers[_0x2317ea][_0x7986('0x48')])){db[triggers[_0x2317ea]['model']][_0x7986('0x49')](triggers[_0x2317ea][_0x7986('0x26')],triggers[_0x2317ea]['callback'](triggers[_0x2317ea][_0x7986('0x34')][_0x7986('0x4a')](),triggers[_0x2317ea][_0x7986('0x4b')]));}}};