82fdbf78e04feeb97abff72d7da9e424cd5cc17e
[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 _0xf7c4=['Sms','SmsInteraction','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','Openchannel','OpenchannelInteraction','OpenchannelMessage','EventManager','then','Trigger,\x20%s','error','code','catch','channel','motionChannel','direction','ContactId','undefined','query','Sequelize','QueryTypes','SELECT','UserId','interface','name','agent','incomingmessage','outgoingmessage','AfterCreateMessage','get','event','offlineMessage','opened','resolve','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','contact','format','changed','closed','substatus','SIP/%s','AfterUpdate','User','find','fullname','email','internal','default','length','model','hook','callback','condition','util','../../mysqldb','jayson/promise','../logger','triggers','ChatInteraction','afterCreate','newinteraction','Chat','afterUpdate','closedinteraction','ChatMessage','newmessage'];(function(_0x2d994d,_0x168a27){var _0xd54be4=function(_0x1db925){while(--_0x1db925){_0x2d994d['push'](_0x2d994d['shift']());}};_0xd54be4(++_0x168a27);}(_0xf7c4,0x160));var _0x4f7c=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0xf7c4[_0xbca1b1];return _0x4e1686;};'use strict';var util=require(_0x4f7c('0x0'));var db=require(_0x4f7c('0x1'))['db'];var jayson=require(_0x4f7c('0x2'));var logger=require(_0x4f7c('0x3'))(_0x4f7c('0x4'));var client=jayson['client']['http']({'port':0x232a});var triggers=[{'channel':'Chat','model':_0x4f7c('0x5'),'event':_0x4f7c('0x6'),'condition':_0x4f7c('0x7'),'callback':afterCreate},{'channel':_0x4f7c('0x8'),'model':_0x4f7c('0x5'),'event':_0x4f7c('0x9'),'condition':_0x4f7c('0xa'),'callback':afterUpdate},{'channel':'Chat','model':_0x4f7c('0xb'),'event':'afterCreate','condition':'newmessage','callback':afterCreateMessage},{'channel':_0x4f7c('0x8'),'model':'ChatOfflineMessage','event':_0x4f7c('0x6'),'condition':_0x4f7c('0xc'),'callback':afterCreateOfflineMessage},{'channel':_0x4f7c('0xd'),'model':'SmsInteraction','event':_0x4f7c('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x4f7c('0xd'),'model':_0x4f7c('0xe'),'event':_0x4f7c('0x9'),'condition':_0x4f7c('0xa'),'callback':afterUpdate},{'channel':_0x4f7c('0xd'),'model':'SmsMessage','event':_0x4f7c('0x6'),'condition':_0x4f7c('0xc'),'callback':afterCreateMessage},{'channel':'Whatsapp','model':'WhatsappInteraction','event':_0x4f7c('0x6'),'condition':_0x4f7c('0x7'),'callback':afterCreate},{'channel':_0x4f7c('0xf'),'model':_0x4f7c('0x10'),'event':_0x4f7c('0x9'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x4f7c('0xf'),'model':_0x4f7c('0x11'),'event':'afterCreate','condition':_0x4f7c('0xc'),'callback':afterCreateMessage},{'channel':_0x4f7c('0x12'),'model':_0x4f7c('0x13'),'event':_0x4f7c('0x6'),'condition':_0x4f7c('0x7'),'callback':afterCreate},{'channel':_0x4f7c('0x12'),'model':_0x4f7c('0x13'),'event':_0x4f7c('0x9'),'condition':_0x4f7c('0xa'),'callback':afterUpdate},{'channel':_0x4f7c('0x12'),'model':_0x4f7c('0x14'),'event':_0x4f7c('0x6'),'condition':_0x4f7c('0xc'),'callback':afterCreateMessage},{'channel':_0x4f7c('0x15'),'model':_0x4f7c('0x16'),'event':_0x4f7c('0x6'),'condition':_0x4f7c('0x7'),'callback':afterCreate},{'channel':'Mail','model':_0x4f7c('0x16'),'event':_0x4f7c('0x9'),'condition':_0x4f7c('0xa'),'callback':afterUpdate},{'channel':_0x4f7c('0x15'),'model':'MailMessage','event':_0x4f7c('0x6'),'condition':_0x4f7c('0xc'),'callback':afterCreateMessage},{'channel':_0x4f7c('0x17'),'model':'OpenchannelInteraction','event':_0x4f7c('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x4f7c('0x17'),'model':_0x4f7c('0x18'),'event':_0x4f7c('0x9'),'condition':_0x4f7c('0xa'),'callback':afterUpdate},{'channel':_0x4f7c('0x17'),'model':_0x4f7c('0x19'),'event':_0x4f7c('0x6'),'condition':_0x4f7c('0xc'),'callback':afterCreateMessage}];function request(_0xd6c846){return client['request'](_0x4f7c('0x1a'),_0xd6c846)[_0x4f7c('0x1b')](function(_0x1cd296){logger['info'](_0x4f7c('0x1c'),_0x4f7c('0x1a'),_0x1cd296);if(_0x1cd296[_0x4f7c('0x1d')]){if(_0x1cd296[_0x4f7c('0x1d')][_0x4f7c('0x1e')]===0x1f4){logger['error']('Trigger,\x20%s',_0x4f7c('0x1a'),_0x1cd296[_0x4f7c('0x1d')]);}}})[_0x4f7c('0x1f')](function(_0x37ece8){logger[_0x4f7c('0x1d')]('Trigger,\x20%s',_0x4f7c('0x1a'),_0x37ece8);});}function afterCreateMessage(_0x22db6e){return function(_0xa4846b){_0xa4846b=_0xa4846b['get']({'plain':!![]});_0xa4846b[_0x4f7c('0x20')]=_0x22db6e;_0xa4846b[_0x4f7c('0x21')]=_0x22db6e;_0xa4846b['event']=_0xa4846b[_0x4f7c('0x22')];Promise['resolve']()[_0x4f7c('0x1b')](function(){if(typeof _0xa4846b[_0x4f7c('0x23')]===_0x4f7c('0x24'))return null;var _0x511638='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0xa4846b[_0x4f7c('0x23')];return db['sequelize'][_0x4f7c('0x25')](_0x511638,{'type':db[_0x4f7c('0x26')][_0x4f7c('0x27')][_0x4f7c('0x28')],'raw':!![]});})['then'](function(_0x5cf69c){if(_0x5cf69c){_0xa4846b['contact']=_0x5cf69c[0x0];}if(typeof _0xa4846b[_0x4f7c('0x29')]===_0x4f7c('0x24'))return;return getAgent(_0xa4846b['UserId']);})[_0x4f7c('0x1b')](function(_0x2f3282){if(_0x2f3282){_0xa4846b[_0x4f7c('0x2a')]=util['format']('SIP/%s',_0x2f3282[_0x4f7c('0x2b')]);_0xa4846b[_0x4f7c('0x2c')]=_0x2f3282;_0xa4846b[_0x4f7c('0x20')]=_0x22db6e;return request({'event':_0x4f7c('0x2d'),'message':_0xa4846b});}else{return request({'event':_0x4f7c('0x2e'),'message':_0xa4846b});}})[_0x4f7c('0x1f')](function(_0x7615cc){logger['error'](_0x4f7c('0x1c'),_0x4f7c('0x2f'),_0x7615cc);});};}function afterCreateOfflineMessage(_0x4f8e74){return function(_0xc90fcf){_0xc90fcf=_0xc90fcf[_0x4f7c('0x30')]({'plain':!![]});_0xc90fcf[_0x4f7c('0x20')]=_0x4f8e74;_0xc90fcf[_0x4f7c('0x21')]=_0x4f8e74;_0xc90fcf[_0x4f7c('0x31')]=_0x4f7c('0x32');return request({'event':_0xc90fcf[_0x4f7c('0x31')],'message':_0xc90fcf});};}function afterCreate(_0x335b12,_0x1fe377){return function(_0x403695){_0x403695=_0x403695[_0x4f7c('0x30')]({'plain':!![]});_0x403695['channel']=_0x335b12;_0x403695[_0x4f7c('0x21')]=_0x335b12;_0x403695[_0x4f7c('0x31')]=_0x4f7c('0x33');Promise[_0x4f7c('0x34')]()['then'](function(){var _0x149d32=_0x4f7c('0x35')+_0x403695['ContactId'];return db[_0x4f7c('0x36')][_0x4f7c('0x25')](_0x149d32,{'type':db[_0x4f7c('0x26')][_0x4f7c('0x27')][_0x4f7c('0x28')],'raw':!![]});})[_0x4f7c('0x1b')](function(_0x5772ec){if(_0x5772ec){_0x403695[_0x4f7c('0x37')]=_0x5772ec[0x0];}if(typeof _0x403695[_0x4f7c('0x29')]==='undefined')return;return getAgent(_0x403695[_0x4f7c('0x29')]);})[_0x4f7c('0x1b')](function(_0x158114){if(_0x158114){_0x403695[_0x4f7c('0x2a')]=util[_0x4f7c('0x38')]('SIP/%s',_0x158114[_0x4f7c('0x2b')]);_0x403695[_0x4f7c('0x2c')]=_0x158114;}return request({'event':_0x1fe377,'message':_0x403695});})['catch'](function(_0xa2db38){logger[_0x4f7c('0x1d')](_0x4f7c('0x1c'),'AfterCreate',_0xa2db38);});};}function afterUpdate(_0x28520f){return function(_0x1d8d0c){var _0x36b815=_0x1d8d0c[_0x4f7c('0x39')](_0x4f7c('0x3a'))&&_0x1d8d0c[_0x4f7c('0x3a')];var _0x2445a7=_0x1d8d0c[_0x4f7c('0x39')](_0x4f7c('0x3b'));if(_0x36b815||_0x2445a7){var _0x260bd9=_0x36b815?_0x4f7c('0xa'):_0x4f7c('0x3b');var _0x42693d=_0x1d8d0c['get']({'plain':!![]});_0x42693d[_0x4f7c('0x20')]=_0x28520f;_0x42693d[_0x4f7c('0x21')]=_0x28520f;_0x42693d[_0x4f7c('0x31')]=_0x36b815?_0x4f7c('0x3a'):_0x4f7c('0x3b');var _0x12ff0c=_0x4f7c('0x35')+_0x42693d['ContactId'];return db[_0x4f7c('0x36')]['query'](_0x12ff0c,{'type':db[_0x4f7c('0x26')]['QueryTypes'][_0x4f7c('0x28')],'raw':!![]})['then'](function(_0x24bc1a){if(_0x24bc1a){_0x42693d[_0x4f7c('0x37')]=_0x24bc1a[0x0];}if(typeof _0x42693d[_0x4f7c('0x29')]==='undefined')return;return getAgent(_0x42693d[_0x4f7c('0x29')]);})['then'](function(_0x1ab8ad){if(_0x1ab8ad){_0x42693d['interface']=util[_0x4f7c('0x38')](_0x4f7c('0x3c'),_0x1ab8ad['name']);_0x42693d[_0x4f7c('0x2c')]=_0x1ab8ad;}return request({'event':_0x260bd9,'message':_0x42693d});})['catch'](function(_0x416d4a){logger[_0x4f7c('0x1d')](_0x4f7c('0x1c'),_0x4f7c('0x3d'),_0x416d4a);});}};}function getAgent(_0x4b5b31){return db[_0x4f7c('0x3e')][_0x4f7c('0x3f')]({'where':{'id':_0x4b5b31},'attributes':['id','name',_0x4f7c('0x40'),_0x4f7c('0x41'),_0x4f7c('0x42')],'raw':!![]})['then'](function(_0x3d9ac1){return _0x3d9ac1;});}exports[_0x4f7c('0x43')]=function(){for(var _0xe3db9b=0x0;_0xe3db9b<triggers[_0x4f7c('0x44')];_0xe3db9b+=0x1){if(db['hasOwnProperty'](triggers[_0xe3db9b][_0x4f7c('0x45')])){db[triggers[_0xe3db9b][_0x4f7c('0x45')]][_0x4f7c('0x46')](triggers[_0xe3db9b][_0x4f7c('0x31')],triggers[_0xe3db9b][_0x4f7c('0x47')](triggers[_0xe3db9b][_0x4f7c('0x20')]['toLowerCase'](),triggers[_0xe3db9b][_0x4f7c('0x48')]));}}};