d9f18bdea7e7a4f7a06326a5116ec63602337296
[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 _0xb1a8=['ChatInteraction','newinteraction','Chat','afterUpdate','closedinteraction','ChatMessage','newmessage','ChatOfflineMessage','afterCreate','Sms','SmsInteraction','SmsMessage','WhatsappInteraction','Whatsapp','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','then','info','EventManager','error','Trigger,\x20%s','catch','get','motionChannel','event','direction','resolve','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','query','Sequelize','QueryTypes','SELECT','contact','UserId','interface','channel','incomingmessage','AfterCreateMessage','offlineMessage','opened','SIP/%s','changed','substatus','closed','format','name','agent','AfterUpdate','User','find','email','internal','default','length','hasOwnProperty','model','hook','callback','toLowerCase','condition','jayson/promise','../logger','client'];(function(_0x370930,_0xeb8c7c){var _0x1f96c2=function(_0xd1bf29){while(--_0xd1bf29){_0x370930['push'](_0x370930['shift']());}};_0x1f96c2(++_0xeb8c7c);}(_0xb1a8,0x125));var _0x8b1a=function(_0x3510a9,_0x2afe7b){_0x3510a9=_0x3510a9-0x0;var _0x5c9567=_0xb1a8[_0x3510a9];return _0x5c9567;};'use strict';var util=require('util');var db=require('../../mysqldb')['db'];var jayson=require(_0x8b1a('0x0'));var logger=require(_0x8b1a('0x1'))('triggers');var client=jayson[_0x8b1a('0x2')]['http']({'port':0x232a});var triggers=[{'channel':'Chat','model':_0x8b1a('0x3'),'event':'afterCreate','condition':_0x8b1a('0x4'),'callback':afterCreate},{'channel':_0x8b1a('0x5'),'model':_0x8b1a('0x3'),'event':_0x8b1a('0x6'),'condition':_0x8b1a('0x7'),'callback':afterUpdate},{'channel':_0x8b1a('0x5'),'model':_0x8b1a('0x8'),'event':'afterCreate','condition':_0x8b1a('0x9'),'callback':afterCreateMessage},{'channel':_0x8b1a('0x5'),'model':_0x8b1a('0xa'),'event':_0x8b1a('0xb'),'condition':_0x8b1a('0x9'),'callback':afterCreateOfflineMessage},{'channel':_0x8b1a('0xc'),'model':_0x8b1a('0xd'),'event':_0x8b1a('0xb'),'condition':_0x8b1a('0x4'),'callback':afterCreate},{'channel':_0x8b1a('0xc'),'model':_0x8b1a('0xd'),'event':_0x8b1a('0x6'),'condition':_0x8b1a('0x7'),'callback':afterUpdate},{'channel':'Sms','model':_0x8b1a('0xe'),'event':'afterCreate','condition':_0x8b1a('0x9'),'callback':afterCreateMessage},{'channel':'Whatsapp','model':_0x8b1a('0xf'),'event':'afterCreate','condition':_0x8b1a('0x4'),'callback':afterCreate},{'channel':_0x8b1a('0x10'),'model':_0x8b1a('0xf'),'event':_0x8b1a('0x6'),'condition':_0x8b1a('0x7'),'callback':afterUpdate},{'channel':'Whatsapp','model':'WhatsappMessage','event':_0x8b1a('0xb'),'condition':_0x8b1a('0x9'),'callback':afterCreateMessage},{'channel':_0x8b1a('0x11'),'model':_0x8b1a('0x12'),'event':_0x8b1a('0xb'),'condition':_0x8b1a('0x4'),'callback':afterCreate},{'channel':_0x8b1a('0x11'),'model':'FaxInteraction','event':_0x8b1a('0x6'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Fax','model':_0x8b1a('0x13'),'event':'afterCreate','condition':_0x8b1a('0x9'),'callback':afterCreateMessage},{'channel':_0x8b1a('0x14'),'model':_0x8b1a('0x15'),'event':'afterCreate','condition':_0x8b1a('0x4'),'callback':afterCreate},{'channel':_0x8b1a('0x14'),'model':_0x8b1a('0x15'),'event':_0x8b1a('0x6'),'condition':_0x8b1a('0x7'),'callback':afterUpdate},{'channel':'Mail','model':_0x8b1a('0x16'),'event':_0x8b1a('0xb'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x8b1a('0x17'),'model':_0x8b1a('0x18'),'event':'afterCreate','condition':_0x8b1a('0x4'),'callback':afterCreate},{'channel':_0x8b1a('0x17'),'model':_0x8b1a('0x18'),'event':_0x8b1a('0x6'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x8b1a('0x17'),'model':_0x8b1a('0x19'),'event':_0x8b1a('0xb'),'condition':_0x8b1a('0x9'),'callback':afterCreateMessage}];function request(_0x198631){return client[_0x8b1a('0x1a')]('EventManager',_0x198631)[_0x8b1a('0x1b')](function(_0x1b70d3){logger[_0x8b1a('0x1c')]('Trigger,\x20%s',_0x8b1a('0x1d'),_0x1b70d3);if(_0x1b70d3['error']){if(_0x1b70d3[_0x8b1a('0x1e')]['code']===0x1f4){logger[_0x8b1a('0x1e')](_0x8b1a('0x1f'),_0x8b1a('0x1d'),_0x1b70d3['error']);}}})[_0x8b1a('0x20')](function(_0x44343a){logger[_0x8b1a('0x1e')]('Trigger,\x20%s',_0x8b1a('0x1d'),_0x44343a);});}function afterCreateMessage(_0x4004e2){return function(_0x1a545c){_0x1a545c=_0x1a545c[_0x8b1a('0x21')]({'plain':!![]});_0x1a545c['channel']=_0x4004e2;_0x1a545c[_0x8b1a('0x22')]=_0x4004e2;_0x1a545c[_0x8b1a('0x23')]=_0x1a545c[_0x8b1a('0x24')];Promise[_0x8b1a('0x25')]()[_0x8b1a('0x1b')](function(){if(typeof _0x1a545c[_0x8b1a('0x26')]===_0x8b1a('0x27'))return null;var _0x51abf5=_0x8b1a('0x28')+_0x1a545c[_0x8b1a('0x26')];return db[_0x8b1a('0x29')][_0x8b1a('0x2a')](_0x51abf5,{'type':db[_0x8b1a('0x2b')][_0x8b1a('0x2c')][_0x8b1a('0x2d')],'raw':!![]});})[_0x8b1a('0x1b')](function(_0x2c8024){if(_0x2c8024){_0x1a545c[_0x8b1a('0x2e')]=_0x2c8024[0x0];}if(typeof _0x1a545c[_0x8b1a('0x2f')]===_0x8b1a('0x27'))return;return getAgent(_0x1a545c[_0x8b1a('0x2f')]);})['then'](function(_0xa8db70){if(_0xa8db70){_0x1a545c[_0x8b1a('0x30')]=util['format']('SIP/%s',_0xa8db70['name']);_0x1a545c['agent']=_0xa8db70;_0x1a545c[_0x8b1a('0x31')]=_0x4004e2;return request({'event':_0x8b1a('0x32'),'message':_0x1a545c});}else{return request({'event':'outgoingmessage','message':_0x1a545c});}})[_0x8b1a('0x20')](function(_0x30c899){logger[_0x8b1a('0x1e')](_0x8b1a('0x1f'),_0x8b1a('0x33'),_0x30c899);});};}function afterCreateOfflineMessage(_0x2b1932){return function(_0x511f09){_0x511f09=_0x511f09[_0x8b1a('0x21')]({'plain':!![]});_0x511f09[_0x8b1a('0x31')]=_0x2b1932;_0x511f09[_0x8b1a('0x22')]=_0x2b1932;_0x511f09[_0x8b1a('0x23')]=_0x8b1a('0x34');return request({'event':_0x511f09[_0x8b1a('0x23')],'message':_0x511f09});};}function afterCreate(_0x21cb59,_0x566d1d){return function(_0x34ab24){_0x34ab24=_0x34ab24['get']({'plain':!![]});_0x34ab24['channel']=_0x21cb59;_0x34ab24['motionChannel']=_0x21cb59;_0x34ab24[_0x8b1a('0x23')]=_0x8b1a('0x35');Promise[_0x8b1a('0x25')]()[_0x8b1a('0x1b')](function(){var _0x348f3=_0x8b1a('0x28')+_0x34ab24[_0x8b1a('0x26')];return db['sequelize'][_0x8b1a('0x2a')](_0x348f3,{'type':db[_0x8b1a('0x2b')]['QueryTypes'][_0x8b1a('0x2d')],'raw':!![]});})[_0x8b1a('0x1b')](function(_0x600329){if(_0x600329){_0x34ab24[_0x8b1a('0x2e')]=_0x600329[0x0];}if(typeof _0x34ab24[_0x8b1a('0x2f')]===_0x8b1a('0x27'))return;return getAgent(_0x34ab24[_0x8b1a('0x2f')]);})[_0x8b1a('0x1b')](function(_0x5a8766){if(_0x5a8766){_0x34ab24['interface']=util['format'](_0x8b1a('0x36'),_0x5a8766['name']);_0x34ab24['agent']=_0x5a8766;}return request({'event':_0x566d1d,'message':_0x34ab24});})[_0x8b1a('0x20')](function(_0x2ba646){logger['error'](_0x8b1a('0x1f'),'AfterCreate',_0x2ba646);});};}function afterUpdate(_0x4d06fc){return function(_0x3f469b){var _0x37eb62=_0x3f469b['changed']('closed')&&_0x3f469b['closed'];var _0x483197=_0x3f469b[_0x8b1a('0x37')](_0x8b1a('0x38'));if(_0x37eb62||_0x483197){var _0x14e0b8=_0x37eb62?_0x8b1a('0x7'):'substatus';var _0x4a5680=_0x3f469b[_0x8b1a('0x21')]({'plain':!![]});_0x4a5680[_0x8b1a('0x31')]=_0x4d06fc;_0x4a5680[_0x8b1a('0x22')]=_0x4d06fc;_0x4a5680[_0x8b1a('0x23')]=_0x37eb62?_0x8b1a('0x39'):'substatus';var _0x4026bf='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x4a5680[_0x8b1a('0x26')];return db[_0x8b1a('0x29')]['query'](_0x4026bf,{'type':db['Sequelize']['QueryTypes'][_0x8b1a('0x2d')],'raw':!![]})[_0x8b1a('0x1b')](function(_0x3c1f02){if(_0x3c1f02){_0x4a5680['contact']=_0x3c1f02[0x0];}if(typeof _0x4a5680[_0x8b1a('0x2f')]===_0x8b1a('0x27'))return;return getAgent(_0x4a5680[_0x8b1a('0x2f')]);})[_0x8b1a('0x1b')](function(_0x32b86c){if(_0x32b86c){_0x4a5680['interface']=util[_0x8b1a('0x3a')](_0x8b1a('0x36'),_0x32b86c[_0x8b1a('0x3b')]);_0x4a5680[_0x8b1a('0x3c')]=_0x32b86c;}return request({'event':_0x14e0b8,'message':_0x4a5680});})[_0x8b1a('0x20')](function(_0x101f2e){logger[_0x8b1a('0x1e')](_0x8b1a('0x1f'),_0x8b1a('0x3d'),_0x101f2e);});}};}function getAgent(_0x311305){return db[_0x8b1a('0x3e')][_0x8b1a('0x3f')]({'where':{'id':_0x311305},'attributes':['id',_0x8b1a('0x3b'),'fullname',_0x8b1a('0x40'),_0x8b1a('0x41')],'raw':!![]})['then'](function(_0x4965e0){return _0x4965e0;});}exports[_0x8b1a('0x42')]=function(){for(var _0x56c2c7=0x0;_0x56c2c7<triggers[_0x8b1a('0x43')];_0x56c2c7+=0x1){if(db[_0x8b1a('0x44')](triggers[_0x56c2c7][_0x8b1a('0x45')])){db[triggers[_0x56c2c7][_0x8b1a('0x45')]][_0x8b1a('0x46')](triggers[_0x56c2c7][_0x8b1a('0x23')],triggers[_0x56c2c7][_0x8b1a('0x47')](triggers[_0x56c2c7][_0x8b1a('0x31')][_0x8b1a('0x48')](),triggers[_0x56c2c7][_0x8b1a('0x49')]));}}};