2cb925036d3d128e0c716e215c3e4d39c54675ff
[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 _0xe428=['length','hasOwnProperty','model','hook','callback','toLowerCase','util','jayson/promise','../logger','client','http','Chat','ChatInteraction','afterCreate','newinteraction','newmessage','Sms','SmsInteraction','afterUpdate','closedinteraction','SmsMessage','Whatsapp','WhatsappInteraction','Fax','FaxInteraction','FaxMessage','MailInteraction','Mail','MailMessage','OpenchannelInteraction','OpenchannelMessage','request','EventManager','Trigger,\x20%s','error','catch','get','channel','motionChannel','direction','resolve','then','ContactId','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','query','QueryTypes','SELECT','contact','UserId','undefined','format','SIP/%s','name','agent','outgoingmessage','AfterCreateMessage','event','offlineMessage','opened','Sequelize','interface','AfterCreate','closed','substatus','AfterUpdate','User','find','fullname','email'];(function(_0x5c71ce,_0x39c997){var _0x44dc37=function(_0x56c374){while(--_0x56c374){_0x5c71ce['push'](_0x5c71ce['shift']());}};_0x44dc37(++_0x39c997);}(_0xe428,0x1f0));var _0x8e42=function(_0x128af2,_0x11dffb){_0x128af2=_0x128af2-0x0;var _0x49208f=_0xe428[_0x128af2];return _0x49208f;};'use strict';var util=require(_0x8e42('0x0'));var db=require('../../mysqldb')['db'];var jayson=require(_0x8e42('0x1'));var logger=require(_0x8e42('0x2'))('triggers');var client=jayson[_0x8e42('0x3')][_0x8e42('0x4')]({'port':0x232a});var triggers=[{'channel':_0x8e42('0x5'),'model':_0x8e42('0x6'),'event':_0x8e42('0x7'),'condition':_0x8e42('0x8'),'callback':afterCreate},{'channel':_0x8e42('0x5'),'model':'ChatInteraction','event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':'Chat','model':'ChatMessage','event':_0x8e42('0x7'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Chat','model':'ChatOfflineMessage','event':_0x8e42('0x7'),'condition':_0x8e42('0x9'),'callback':afterCreateOfflineMessage},{'channel':_0x8e42('0xa'),'model':'SmsInteraction','event':_0x8e42('0x7'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x8e42('0xa'),'model':_0x8e42('0xb'),'event':_0x8e42('0xc'),'condition':_0x8e42('0xd'),'callback':afterUpdate},{'channel':_0x8e42('0xa'),'model':_0x8e42('0xe'),'event':_0x8e42('0x7'),'condition':_0x8e42('0x9'),'callback':afterCreateMessage},{'channel':_0x8e42('0xf'),'model':_0x8e42('0x10'),'event':_0x8e42('0x7'),'condition':_0x8e42('0x8'),'callback':afterCreate},{'channel':_0x8e42('0xf'),'model':'WhatsappInteraction','event':_0x8e42('0xc'),'condition':_0x8e42('0xd'),'callback':afterUpdate},{'channel':_0x8e42('0xf'),'model':'WhatsappMessage','event':'afterCreate','condition':'newmessage','callback':afterCreateMessage},{'channel':_0x8e42('0x11'),'model':_0x8e42('0x12'),'event':'afterCreate','condition':_0x8e42('0x8'),'callback':afterCreate},{'channel':'Fax','model':_0x8e42('0x12'),'event':_0x8e42('0xc'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x8e42('0x11'),'model':_0x8e42('0x13'),'event':_0x8e42('0x7'),'condition':_0x8e42('0x9'),'callback':afterCreateMessage},{'channel':'Mail','model':_0x8e42('0x14'),'event':_0x8e42('0x7'),'condition':'newinteraction','callback':afterCreate},{'channel':'Mail','model':_0x8e42('0x14'),'event':_0x8e42('0xc'),'condition':_0x8e42('0xd'),'callback':afterUpdate},{'channel':_0x8e42('0x15'),'model':_0x8e42('0x16'),'event':_0x8e42('0x7'),'condition':_0x8e42('0x9'),'callback':afterCreateMessage},{'channel':'Openchannel','model':_0x8e42('0x17'),'event':_0x8e42('0x7'),'condition':_0x8e42('0x8'),'callback':afterCreate},{'channel':'Openchannel','model':_0x8e42('0x17'),'event':_0x8e42('0xc'),'condition':_0x8e42('0xd'),'callback':afterUpdate},{'channel':'Openchannel','model':_0x8e42('0x18'),'event':_0x8e42('0x7'),'condition':_0x8e42('0x9'),'callback':afterCreateMessage}];function request(_0x463973){return client[_0x8e42('0x19')](_0x8e42('0x1a'),_0x463973)['then'](function(_0x2f3980){logger['info'](_0x8e42('0x1b'),_0x8e42('0x1a'),_0x2f3980);if(_0x2f3980[_0x8e42('0x1c')]){if(_0x2f3980[_0x8e42('0x1c')]['code']===0x1f4){logger[_0x8e42('0x1c')](_0x8e42('0x1b'),_0x8e42('0x1a'),_0x2f3980[_0x8e42('0x1c')]);}}})[_0x8e42('0x1d')](function(_0x3441ca){logger[_0x8e42('0x1c')](_0x8e42('0x1b'),'EventManager',_0x3441ca);});}function afterCreateMessage(_0x8660bd){return function(_0x4d7561){_0x4d7561=_0x4d7561[_0x8e42('0x1e')]({'plain':!![]});_0x4d7561[_0x8e42('0x1f')]=_0x8660bd;_0x4d7561[_0x8e42('0x20')]=_0x8660bd;_0x4d7561['event']=_0x4d7561[_0x8e42('0x21')];Promise[_0x8e42('0x22')]()[_0x8e42('0x23')](function(){if(typeof _0x4d7561[_0x8e42('0x24')]==='undefined')return null;var _0x31ae30=_0x8e42('0x25')+_0x4d7561['ContactId'];return db[_0x8e42('0x26')][_0x8e42('0x27')](_0x31ae30,{'type':db['Sequelize'][_0x8e42('0x28')][_0x8e42('0x29')],'raw':!![]});})[_0x8e42('0x23')](function(_0x421f43){if(_0x421f43){_0x4d7561[_0x8e42('0x2a')]=_0x421f43[0x0];}if(typeof _0x4d7561[_0x8e42('0x2b')]===_0x8e42('0x2c'))return;return getAgent(_0x4d7561['UserId']);})[_0x8e42('0x23')](function(_0x12934d){if(_0x12934d){_0x4d7561['interface']=util[_0x8e42('0x2d')](_0x8e42('0x2e'),_0x12934d[_0x8e42('0x2f')]);_0x4d7561[_0x8e42('0x30')]=_0x12934d;_0x4d7561[_0x8e42('0x1f')]=_0x8660bd;return request({'event':'incomingmessage','message':_0x4d7561});}else{return request({'event':_0x8e42('0x31'),'message':_0x4d7561});}})[_0x8e42('0x1d')](function(_0x2aec21){logger[_0x8e42('0x1c')](_0x8e42('0x1b'),_0x8e42('0x32'),_0x2aec21);});};}function afterCreateOfflineMessage(_0x204197){return function(_0x300b51){_0x300b51=_0x300b51[_0x8e42('0x1e')]({'plain':!![]});_0x300b51['channel']=_0x204197;_0x300b51['motionChannel']=_0x204197;_0x300b51[_0x8e42('0x33')]=_0x8e42('0x34');return request({'event':_0x300b51[_0x8e42('0x33')],'message':_0x300b51});};}function afterCreate(_0x37adc2,_0x3ae849){return function(_0x371291){_0x371291=_0x371291['get']({'plain':!![]});_0x371291[_0x8e42('0x1f')]=_0x37adc2;_0x371291[_0x8e42('0x20')]=_0x37adc2;_0x371291[_0x8e42('0x33')]=_0x8e42('0x35');Promise['resolve']()[_0x8e42('0x23')](function(){var _0x17987c=_0x8e42('0x25')+_0x371291[_0x8e42('0x24')];return db['sequelize']['query'](_0x17987c,{'type':db[_0x8e42('0x36')][_0x8e42('0x28')][_0x8e42('0x29')],'raw':!![]});})['then'](function(_0x186c0e){if(_0x186c0e){_0x371291[_0x8e42('0x2a')]=_0x186c0e[0x0];}if(typeof _0x371291[_0x8e42('0x2b')]===_0x8e42('0x2c'))return;return getAgent(_0x371291[_0x8e42('0x2b')]);})[_0x8e42('0x23')](function(_0xbd5ac1){if(_0xbd5ac1){_0x371291[_0x8e42('0x37')]=util[_0x8e42('0x2d')](_0x8e42('0x2e'),_0xbd5ac1['name']);_0x371291[_0x8e42('0x30')]=_0xbd5ac1;}return request({'event':_0x3ae849,'message':_0x371291});})[_0x8e42('0x1d')](function(_0x530a2d){logger[_0x8e42('0x1c')]('Trigger,\x20%s',_0x8e42('0x38'),_0x530a2d);});};}function afterUpdate(_0x560d22){return function(_0x16bce8){var _0x287a83=_0x16bce8['changed'](_0x8e42('0x39'))&&_0x16bce8[_0x8e42('0x39')];var _0x4fa5f6=_0x16bce8['changed'](_0x8e42('0x3a'));if(_0x287a83||_0x4fa5f6){var _0x237a62=_0x287a83?'closedinteraction':_0x8e42('0x3a');var _0x12d7d1=_0x16bce8[_0x8e42('0x1e')]({'plain':!![]});_0x12d7d1[_0x8e42('0x1f')]=_0x560d22;_0x12d7d1['motionChannel']=_0x560d22;_0x12d7d1['event']=_0x287a83?_0x8e42('0x39'):_0x8e42('0x3a');var _0x56da9f=_0x8e42('0x25')+_0x12d7d1['ContactId'];return db['sequelize']['query'](_0x56da9f,{'type':db[_0x8e42('0x36')][_0x8e42('0x28')][_0x8e42('0x29')],'raw':!![]})['then'](function(_0x109233){if(_0x109233){_0x12d7d1[_0x8e42('0x2a')]=_0x109233[0x0];}if(typeof _0x12d7d1[_0x8e42('0x2b')]===_0x8e42('0x2c'))return;return getAgent(_0x12d7d1[_0x8e42('0x2b')]);})[_0x8e42('0x23')](function(_0x40ea12){if(_0x40ea12){_0x12d7d1[_0x8e42('0x37')]=util['format']('SIP/%s',_0x40ea12[_0x8e42('0x2f')]);_0x12d7d1[_0x8e42('0x30')]=_0x40ea12;}return request({'event':_0x237a62,'message':_0x12d7d1});})[_0x8e42('0x1d')](function(_0x585da0){logger[_0x8e42('0x1c')](_0x8e42('0x1b'),_0x8e42('0x3b'),_0x585da0);});}};}function getAgent(_0x2f6941){return db[_0x8e42('0x3c')][_0x8e42('0x3d')]({'where':{'id':_0x2f6941},'attributes':['id',_0x8e42('0x2f'),_0x8e42('0x3e'),_0x8e42('0x3f'),'internal'],'raw':!![]})[_0x8e42('0x23')](function(_0x59f227){return _0x59f227;});}exports['default']=function(){for(var _0x39668e=0x0;_0x39668e<triggers[_0x8e42('0x40')];_0x39668e+=0x1){if(db[_0x8e42('0x41')](triggers[_0x39668e][_0x8e42('0x42')])){db[triggers[_0x39668e][_0x8e42('0x42')]][_0x8e42('0x43')](triggers[_0x39668e]['event'],triggers[_0x39668e][_0x8e42('0x44')](triggers[_0x39668e][_0x8e42('0x1f')][_0x8e42('0x45')](),triggers[_0x39668e]['condition']));}}};