2ebda582756daa24938502543451785a8713ec5e
[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 _0x8d98=['condition','util','../../mysqldb','jayson/promise','../logger','triggers','client','http','Chat','ChatInteraction','afterCreate','afterUpdate','closedinteraction','ChatMessage','newmessage','Sms','SmsInteraction','newinteraction','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','OpenchannelInteraction','Openchannel','OpenchannelMessage','request','EventManager','then','info','Trigger,\x20%s','error','code','catch','get','motionChannel','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','query','Sequelize','SELECT','contact','UserId','format','SIP/%s','name','agent','channel','incomingmessage','outgoingmessage','AfterCreateMessage','event','opened','resolve','QueryTypes','interface','AfterCreate','changed','closed','substatus','sequelize','AfterUpdate','find','fullname','internal','length','hasOwnProperty','model','hook','callback','toLowerCase'];(function(_0x47f4c2,_0x134e7b){var _0x22c63e=function(_0x5b8572){while(--_0x5b8572){_0x47f4c2['push'](_0x47f4c2['shift']());}};_0x22c63e(++_0x134e7b);}(_0x8d98,0x135));var _0x88d9=function(_0x181e15,_0x1d97ab){_0x181e15=_0x181e15-0x0;var _0x13a771=_0x8d98[_0x181e15];return _0x13a771;};'use strict';var util=require(_0x88d9('0x0'));var db=require(_0x88d9('0x1'))['db'];var jayson=require(_0x88d9('0x2'));var logger=require(_0x88d9('0x3'))(_0x88d9('0x4'));var client=jayson[_0x88d9('0x5')][_0x88d9('0x6')]({'port':0x232a});var triggers=[{'channel':_0x88d9('0x7'),'model':_0x88d9('0x8'),'event':_0x88d9('0x9'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x88d9('0x7'),'model':_0x88d9('0x8'),'event':_0x88d9('0xa'),'condition':_0x88d9('0xb'),'callback':afterUpdate},{'channel':_0x88d9('0x7'),'model':_0x88d9('0xc'),'event':_0x88d9('0x9'),'condition':_0x88d9('0xd'),'callback':afterCreateMessage},{'channel':_0x88d9('0xe'),'model':_0x88d9('0xf'),'event':_0x88d9('0x9'),'condition':_0x88d9('0x10'),'callback':afterCreate},{'channel':'Sms','model':'SmsInteraction','event':_0x88d9('0xa'),'condition':_0x88d9('0xb'),'callback':afterUpdate},{'channel':_0x88d9('0xe'),'model':_0x88d9('0x11'),'event':_0x88d9('0x9'),'condition':_0x88d9('0xd'),'callback':afterCreateMessage},{'channel':_0x88d9('0x12'),'model':_0x88d9('0x13'),'event':_0x88d9('0x9'),'condition':_0x88d9('0x10'),'callback':afterCreate},{'channel':'Whatsapp','model':_0x88d9('0x13'),'event':_0x88d9('0xa'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x88d9('0x12'),'model':_0x88d9('0x14'),'event':_0x88d9('0x9'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x88d9('0x15'),'model':_0x88d9('0x16'),'event':'afterCreate','condition':_0x88d9('0x10'),'callback':afterCreate},{'channel':'Fax','model':'FaxInteraction','event':_0x88d9('0xa'),'condition':_0x88d9('0xb'),'callback':afterUpdate},{'channel':_0x88d9('0x15'),'model':_0x88d9('0x17'),'event':'afterCreate','condition':_0x88d9('0xd'),'callback':afterCreateMessage},{'channel':_0x88d9('0x18'),'model':_0x88d9('0x19'),'event':_0x88d9('0x9'),'condition':_0x88d9('0x10'),'callback':afterCreate},{'channel':_0x88d9('0x18'),'model':_0x88d9('0x19'),'event':_0x88d9('0xa'),'condition':_0x88d9('0xb'),'callback':afterUpdate},{'channel':_0x88d9('0x18'),'model':_0x88d9('0x1a'),'event':_0x88d9('0x9'),'condition':_0x88d9('0xd'),'callback':afterCreateMessage},{'channel':'Openchannel','model':_0x88d9('0x1b'),'event':'afterCreate','condition':'newinteraction','callback':afterCreate},{'channel':_0x88d9('0x1c'),'model':_0x88d9('0x1b'),'event':_0x88d9('0xa'),'condition':_0x88d9('0xb'),'callback':afterUpdate},{'channel':_0x88d9('0x1c'),'model':_0x88d9('0x1d'),'event':_0x88d9('0x9'),'condition':_0x88d9('0xd'),'callback':afterCreateMessage}];function request(_0x4ef9d7){return client[_0x88d9('0x1e')](_0x88d9('0x1f'),_0x4ef9d7)[_0x88d9('0x20')](function(_0x4f93d2){logger[_0x88d9('0x21')](_0x88d9('0x22'),'EventManager',_0x4f93d2);if(_0x4f93d2[_0x88d9('0x23')]){if(_0x4f93d2[_0x88d9('0x23')][_0x88d9('0x24')]===0x1f4){logger[_0x88d9('0x23')](_0x88d9('0x22'),_0x88d9('0x1f'),_0x4f93d2[_0x88d9('0x23')]);}}})[_0x88d9('0x25')](function(_0x3d010d){logger['error'](_0x88d9('0x22'),'EventManager',_0x3d010d);});}function afterCreateMessage(_0x53aa4c){return function(_0x26cb25){_0x26cb25=_0x26cb25[_0x88d9('0x26')]({'plain':!![]});_0x26cb25['channel']=_0x53aa4c;_0x26cb25[_0x88d9('0x27')]=_0x53aa4c;_0x26cb25['event']=_0x26cb25['direction'];Promise['resolve']()[_0x88d9('0x20')](function(){if(typeof _0x26cb25['ContactId']===_0x88d9('0x28'))return null;var _0x51f1b3=_0x88d9('0x29')+_0x26cb25[_0x88d9('0x2a')];return db['sequelize'][_0x88d9('0x2b')](_0x51f1b3,{'type':db[_0x88d9('0x2c')]['QueryTypes'][_0x88d9('0x2d')],'raw':!![]});})[_0x88d9('0x20')](function(_0x574362){if(_0x574362){_0x26cb25[_0x88d9('0x2e')]=_0x574362[0x0];}if(typeof _0x26cb25['UserId']==='undefined')return;return getAgent(_0x26cb25[_0x88d9('0x2f')]);})[_0x88d9('0x20')](function(_0x3d541b){if(_0x3d541b){_0x26cb25['interface']=util[_0x88d9('0x30')](_0x88d9('0x31'),_0x3d541b[_0x88d9('0x32')]);_0x26cb25[_0x88d9('0x33')]=_0x3d541b;_0x26cb25[_0x88d9('0x34')]=_0x53aa4c;return request({'event':_0x88d9('0x35'),'message':_0x26cb25});}else{return request({'event':_0x88d9('0x36'),'message':_0x26cb25});}})[_0x88d9('0x25')](function(_0x44d5aa){logger[_0x88d9('0x23')]('Trigger,\x20%s',_0x88d9('0x37'),_0x44d5aa);});};}function afterCreate(_0x3b72e9,_0x54b4f6){return function(_0xebfbdd){_0xebfbdd=_0xebfbdd[_0x88d9('0x26')]({'plain':!![]});_0xebfbdd[_0x88d9('0x34')]=_0x3b72e9;_0xebfbdd[_0x88d9('0x27')]=_0x3b72e9;_0xebfbdd[_0x88d9('0x38')]=_0x88d9('0x39');Promise[_0x88d9('0x3a')]()[_0x88d9('0x20')](function(){var _0x9370c6=_0x88d9('0x29')+_0xebfbdd[_0x88d9('0x2a')];return db['sequelize']['query'](_0x9370c6,{'type':db[_0x88d9('0x2c')][_0x88d9('0x3b')][_0x88d9('0x2d')],'raw':!![]});})[_0x88d9('0x20')](function(_0x5d91a0){if(_0x5d91a0){_0xebfbdd['contact']=_0x5d91a0[0x0];}if(typeof _0xebfbdd[_0x88d9('0x2f')]===_0x88d9('0x28'))return;return getAgent(_0xebfbdd['UserId']);})[_0x88d9('0x20')](function(_0xc78e8b){if(_0xc78e8b){_0xebfbdd[_0x88d9('0x3c')]=util[_0x88d9('0x30')](_0x88d9('0x31'),_0xc78e8b[_0x88d9('0x32')]);_0xebfbdd['agent']=_0xc78e8b;}return request({'event':_0x54b4f6,'message':_0xebfbdd});})[_0x88d9('0x25')](function(_0x35e174){logger[_0x88d9('0x23')](_0x88d9('0x22'),_0x88d9('0x3d'),_0x35e174);});};}function afterUpdate(_0x5bc160){return function(_0x5f009c){var _0x2b44fa=_0x5f009c[_0x88d9('0x3e')]('closed')&&_0x5f009c[_0x88d9('0x3f')];var _0x3660db=_0x5f009c[_0x88d9('0x3e')](_0x88d9('0x40'));if(_0x2b44fa||_0x3660db){var _0x3c21c6=_0x2b44fa?_0x88d9('0xb'):'substatus';var _0x195dc5=_0x5f009c[_0x88d9('0x26')]({'plain':!![]});_0x195dc5['channel']=_0x5bc160;_0x195dc5['motionChannel']=_0x5bc160;_0x195dc5['event']=_0x2b44fa?_0x88d9('0x3f'):'substatus';var _0x3bc9f3='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x195dc5[_0x88d9('0x2a')];return db[_0x88d9('0x41')][_0x88d9('0x2b')](_0x3bc9f3,{'type':db[_0x88d9('0x2c')][_0x88d9('0x3b')][_0x88d9('0x2d')],'raw':!![]})[_0x88d9('0x20')](function(_0x1f93b6){if(_0x1f93b6){_0x195dc5[_0x88d9('0x2e')]=_0x1f93b6[0x0];}if(typeof _0x195dc5[_0x88d9('0x2f')]==='undefined')return;return getAgent(_0x195dc5[_0x88d9('0x2f')]);})['then'](function(_0x49c1cd){if(_0x49c1cd){_0x195dc5[_0x88d9('0x3c')]=util['format'](_0x88d9('0x31'),_0x49c1cd[_0x88d9('0x32')]);_0x195dc5[_0x88d9('0x33')]=_0x49c1cd;}return request({'event':_0x3c21c6,'message':_0x195dc5});})[_0x88d9('0x25')](function(_0x5cf316){logger[_0x88d9('0x23')]('Trigger,\x20%s',_0x88d9('0x42'),_0x5cf316);});}};}function getAgent(_0xf0cca3){return db['User'][_0x88d9('0x43')]({'where':{'id':_0xf0cca3},'attributes':['id',_0x88d9('0x32'),_0x88d9('0x44'),'email',_0x88d9('0x45')],'raw':!![]})[_0x88d9('0x20')](function(_0x4979bd){return _0x4979bd;});}exports['default']=function(){for(var _0x57c985=0x0;_0x57c985<triggers[_0x88d9('0x46')];_0x57c985+=0x1){if(db[_0x88d9('0x47')](triggers[_0x57c985][_0x88d9('0x48')])){db[triggers[_0x57c985][_0x88d9('0x48')]][_0x88d9('0x49')](triggers[_0x57c985][_0x88d9('0x38')],triggers[_0x57c985][_0x88d9('0x4a')](triggers[_0x57c985][_0x88d9('0x34')][_0x88d9('0x4b')](),triggers[_0x57c985][_0x88d9('0x4c')]));}}};