48b4a374b47c3c95b395b0d447050be60529154e
[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 _0x29ae=['name','agent','incomingmessage','outgoingmessage','offlineMessage','opened','resolve','QueryTypes','contact','format','SIP/%s','AfterCreate','changed','closed','User','find','email','internal','length','hasOwnProperty','model','hook','callback','toLowerCase','condition','util','jayson/promise','client','http','Chat','ChatInteraction','afterCreate','newinteraction','afterUpdate','closedinteraction','ChatMessage','ChatOfflineMessage','newmessage','Sms','SmsInteraction','SmsMessage','WhatsappInteraction','Whatsapp','Fax','FaxMessage','MailInteraction','Mail','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','then','info','error','code','catch','Trigger,\x20%s','get','channel','motionChannel','event','direction','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','query','Sequelize','SELECT','UserId','interface'];(function(_0xcff28,_0x3f48e2){var _0x312ddc=function(_0x1ca0b8){while(--_0x1ca0b8){_0xcff28['push'](_0xcff28['shift']());}};_0x312ddc(++_0x3f48e2);}(_0x29ae,0x1cf));var _0xe29a=function(_0x4dc2df,_0x21b4e7){_0x4dc2df=_0x4dc2df-0x0;var _0x427035=_0x29ae[_0x4dc2df];return _0x427035;};'use strict';var util=require(_0xe29a('0x0'));var db=require('../../mysqldb')['db'];var jayson=require(_0xe29a('0x1'));var logger=require('../logger')('triggers');var client=jayson[_0xe29a('0x2')][_0xe29a('0x3')]({'port':0x232a});var triggers=[{'channel':_0xe29a('0x4'),'model':_0xe29a('0x5'),'event':_0xe29a('0x6'),'condition':_0xe29a('0x7'),'callback':afterCreate},{'channel':_0xe29a('0x4'),'model':_0xe29a('0x5'),'event':_0xe29a('0x8'),'condition':_0xe29a('0x9'),'callback':afterUpdate},{'channel':_0xe29a('0x4'),'model':_0xe29a('0xa'),'event':_0xe29a('0x6'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xe29a('0x4'),'model':_0xe29a('0xb'),'event':_0xe29a('0x6'),'condition':_0xe29a('0xc'),'callback':afterCreateOfflineMessage},{'channel':_0xe29a('0xd'),'model':'SmsInteraction','event':_0xe29a('0x6'),'condition':_0xe29a('0x7'),'callback':afterCreate},{'channel':_0xe29a('0xd'),'model':_0xe29a('0xe'),'event':_0xe29a('0x8'),'condition':_0xe29a('0x9'),'callback':afterUpdate},{'channel':'Sms','model':_0xe29a('0xf'),'event':_0xe29a('0x6'),'condition':_0xe29a('0xc'),'callback':afterCreateMessage},{'channel':'Whatsapp','model':'WhatsappInteraction','event':_0xe29a('0x6'),'condition':_0xe29a('0x7'),'callback':afterCreate},{'channel':'Whatsapp','model':_0xe29a('0x10'),'event':_0xe29a('0x8'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0xe29a('0x11'),'model':'WhatsappMessage','event':_0xe29a('0x6'),'condition':_0xe29a('0xc'),'callback':afterCreateMessage},{'channel':_0xe29a('0x12'),'model':'FaxInteraction','event':_0xe29a('0x6'),'condition':_0xe29a('0x7'),'callback':afterCreate},{'channel':'Fax','model':'FaxInteraction','event':_0xe29a('0x8'),'condition':_0xe29a('0x9'),'callback':afterUpdate},{'channel':_0xe29a('0x12'),'model':_0xe29a('0x13'),'event':_0xe29a('0x6'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Mail','model':_0xe29a('0x14'),'event':_0xe29a('0x6'),'condition':_0xe29a('0x7'),'callback':afterCreate},{'channel':_0xe29a('0x15'),'model':_0xe29a('0x14'),'event':'afterUpdate','condition':_0xe29a('0x9'),'callback':afterUpdate},{'channel':_0xe29a('0x15'),'model':_0xe29a('0x16'),'event':_0xe29a('0x6'),'condition':_0xe29a('0xc'),'callback':afterCreateMessage},{'channel':_0xe29a('0x17'),'model':_0xe29a('0x18'),'event':'afterCreate','condition':'newinteraction','callback':afterCreate},{'channel':_0xe29a('0x17'),'model':'OpenchannelInteraction','event':_0xe29a('0x8'),'condition':_0xe29a('0x9'),'callback':afterUpdate},{'channel':_0xe29a('0x17'),'model':_0xe29a('0x19'),'event':_0xe29a('0x6'),'condition':_0xe29a('0xc'),'callback':afterCreateMessage}];function request(_0x167828){return client[_0xe29a('0x1a')](_0xe29a('0x1b'),_0x167828)[_0xe29a('0x1c')](function(_0x44b49b){logger[_0xe29a('0x1d')]('Trigger,\x20%s',_0xe29a('0x1b'),_0x44b49b);if(_0x44b49b[_0xe29a('0x1e')]){if(_0x44b49b[_0xe29a('0x1e')][_0xe29a('0x1f')]===0x1f4){logger[_0xe29a('0x1e')]('Trigger,\x20%s',_0xe29a('0x1b'),_0x44b49b[_0xe29a('0x1e')]);}}})[_0xe29a('0x20')](function(_0x319582){logger[_0xe29a('0x1e')](_0xe29a('0x21'),'EventManager',_0x319582);});}function afterCreateMessage(_0x4b3ed9){return function(_0x4b93c3){_0x4b93c3=_0x4b93c3[_0xe29a('0x22')]({'plain':!![]});_0x4b93c3[_0xe29a('0x23')]=_0x4b3ed9;_0x4b93c3[_0xe29a('0x24')]=_0x4b3ed9;_0x4b93c3[_0xe29a('0x25')]=_0x4b93c3[_0xe29a('0x26')];Promise['resolve']()[_0xe29a('0x1c')](function(){if(typeof _0x4b93c3[_0xe29a('0x27')]===_0xe29a('0x28'))return null;var _0x6d4d34=_0xe29a('0x29')+_0x4b93c3[_0xe29a('0x27')];return db[_0xe29a('0x2a')][_0xe29a('0x2b')](_0x6d4d34,{'type':db[_0xe29a('0x2c')]['QueryTypes'][_0xe29a('0x2d')],'raw':!![]});})[_0xe29a('0x1c')](function(_0x162f64){if(_0x162f64){_0x4b93c3['contact']=_0x162f64[0x0];}if(typeof _0x4b93c3[_0xe29a('0x2e')]===_0xe29a('0x28'))return;return getAgent(_0x4b93c3[_0xe29a('0x2e')]);})['then'](function(_0x268bd4){if(_0x268bd4){_0x4b93c3[_0xe29a('0x2f')]=util['format']('SIP/%s',_0x268bd4[_0xe29a('0x30')]);_0x4b93c3[_0xe29a('0x31')]=_0x268bd4;_0x4b93c3['channel']=_0x4b3ed9;return request({'event':_0xe29a('0x32'),'message':_0x4b93c3});}else{return request({'event':_0xe29a('0x33'),'message':_0x4b93c3});}})[_0xe29a('0x20')](function(_0x3f4b5a){logger['error'](_0xe29a('0x21'),'AfterCreateMessage',_0x3f4b5a);});};}function afterCreateOfflineMessage(_0x352a06){return function(_0x4210f1){_0x4210f1=_0x4210f1['get']({'plain':!![]});_0x4210f1['channel']=_0x352a06;_0x4210f1['motionChannel']=_0x352a06;_0x4210f1[_0xe29a('0x25')]=_0xe29a('0x34');return request({'event':_0x4210f1[_0xe29a('0x25')],'message':_0x4210f1});};}function afterCreate(_0x50289e,_0x6507b){return function(_0x3d5fd6){_0x3d5fd6=_0x3d5fd6['get']({'plain':!![]});_0x3d5fd6[_0xe29a('0x23')]=_0x50289e;_0x3d5fd6['motionChannel']=_0x50289e;_0x3d5fd6['event']=_0xe29a('0x35');Promise[_0xe29a('0x36')]()['then'](function(){var _0x1921bb='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x3d5fd6['ContactId'];return db[_0xe29a('0x2a')][_0xe29a('0x2b')](_0x1921bb,{'type':db['Sequelize'][_0xe29a('0x37')]['SELECT'],'raw':!![]});})[_0xe29a('0x1c')](function(_0x3fa9a2){if(_0x3fa9a2){_0x3d5fd6[_0xe29a('0x38')]=_0x3fa9a2[0x0];}if(typeof _0x3d5fd6[_0xe29a('0x2e')]===_0xe29a('0x28'))return;return getAgent(_0x3d5fd6[_0xe29a('0x2e')]);})['then'](function(_0x145a2c){if(_0x145a2c){_0x3d5fd6[_0xe29a('0x2f')]=util[_0xe29a('0x39')](_0xe29a('0x3a'),_0x145a2c[_0xe29a('0x30')]);_0x3d5fd6['agent']=_0x145a2c;}return request({'event':_0x6507b,'message':_0x3d5fd6});})['catch'](function(_0x1e1d19){logger[_0xe29a('0x1e')](_0xe29a('0x21'),_0xe29a('0x3b'),_0x1e1d19);});};}function afterUpdate(_0x5313a2){return function(_0x14edcf){var _0x473fb7=_0x14edcf[_0xe29a('0x3c')](_0xe29a('0x3d'))&&_0x14edcf['closed'];var _0x4f0d6a=_0x14edcf['changed']('substatus');if(_0x473fb7||_0x4f0d6a){var _0x56d3c2=_0x473fb7?_0xe29a('0x9'):'substatus';var _0x1591eb=_0x14edcf[_0xe29a('0x22')]({'plain':!![]});_0x1591eb[_0xe29a('0x23')]=_0x5313a2;_0x1591eb[_0xe29a('0x24')]=_0x5313a2;_0x1591eb[_0xe29a('0x25')]=_0x473fb7?_0xe29a('0x3d'):'substatus';var _0x2df38c=_0xe29a('0x29')+_0x1591eb[_0xe29a('0x27')];return db[_0xe29a('0x2a')][_0xe29a('0x2b')](_0x2df38c,{'type':db[_0xe29a('0x2c')][_0xe29a('0x37')]['SELECT'],'raw':!![]})[_0xe29a('0x1c')](function(_0x54f4ad){if(_0x54f4ad){_0x1591eb[_0xe29a('0x38')]=_0x54f4ad[0x0];}if(typeof _0x1591eb[_0xe29a('0x2e')]===_0xe29a('0x28'))return;return getAgent(_0x1591eb[_0xe29a('0x2e')]);})[_0xe29a('0x1c')](function(_0x5ab62e){if(_0x5ab62e){_0x1591eb[_0xe29a('0x2f')]=util[_0xe29a('0x39')](_0xe29a('0x3a'),_0x5ab62e[_0xe29a('0x30')]);_0x1591eb[_0xe29a('0x31')]=_0x5ab62e;}return request({'event':_0x56d3c2,'message':_0x1591eb});})[_0xe29a('0x20')](function(_0x518dc1){logger['error']('Trigger,\x20%s','AfterUpdate',_0x518dc1);});}};}function getAgent(_0x7e2e26){return db[_0xe29a('0x3e')][_0xe29a('0x3f')]({'where':{'id':_0x7e2e26},'attributes':['id',_0xe29a('0x30'),'fullname',_0xe29a('0x40'),_0xe29a('0x41')],'raw':!![]})[_0xe29a('0x1c')](function(_0x1f6fe7){return _0x1f6fe7;});}exports['default']=function(){for(var _0x43dfd9=0x0;_0x43dfd9<triggers[_0xe29a('0x42')];_0x43dfd9+=0x1){if(db[_0xe29a('0x43')](triggers[_0x43dfd9]['model'])){db[triggers[_0x43dfd9][_0xe29a('0x44')]][_0xe29a('0x45')](triggers[_0x43dfd9][_0xe29a('0x25')],triggers[_0x43dfd9][_0xe29a('0x46')](triggers[_0x43dfd9][_0xe29a('0x23')][_0xe29a('0x47')](),triggers[_0x43dfd9][_0xe29a('0x48')]));}}};