a5337f6d65f3c5dcc40554b96a9d3d1e919ebdcd
[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 _0x361d=['WhatsappInteraction','Whatsapp','WhatsappMessage','Fax','FaxInteraction','Mail','MailInteraction','MailMessage','OpenchannelInteraction','Openchannel','OpenchannelMessage','request','EventManager','info','Trigger,\x20%s','error','code','get','channel','motionChannel','direction','resolve','then','ContactId','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','query','Sequelize','QueryTypes','SELECT','contact','UserId','undefined','interface','format','SIP/%s','name','agent','incomingmessage','catch','AfterCreateMessage','event','offlineMessage','opened','sequelize','AfterCreate','changed','closed','substatus','find','fullname','internal','length','hasOwnProperty','model','callback','toLowerCase','condition','util','../../mysqldb','jayson/promise','triggers','http','Chat','ChatInteraction','afterCreate','newinteraction','afterUpdate','closedinteraction','newmessage','ChatOfflineMessage','SmsInteraction','Sms','SmsMessage'];(function(_0x45dc47,_0x49c3b4){var _0x4adc69=function(_0x361812){while(--_0x361812){_0x45dc47['push'](_0x45dc47['shift']());}};_0x4adc69(++_0x49c3b4);}(_0x361d,0x82));var _0xd361=function(_0x1d63da,_0x3ed35b){_0x1d63da=_0x1d63da-0x0;var _0x1d0e27=_0x361d[_0x1d63da];return _0x1d0e27;};'use strict';var util=require(_0xd361('0x0'));var db=require(_0xd361('0x1'))['db'];var jayson=require(_0xd361('0x2'));var logger=require('../logger')(_0xd361('0x3'));var client=jayson['client'][_0xd361('0x4')]({'port':0x232a});var triggers=[{'channel':_0xd361('0x5'),'model':_0xd361('0x6'),'event':_0xd361('0x7'),'condition':_0xd361('0x8'),'callback':afterCreate},{'channel':_0xd361('0x5'),'model':_0xd361('0x6'),'event':_0xd361('0x9'),'condition':_0xd361('0xa'),'callback':afterUpdate},{'channel':_0xd361('0x5'),'model':'ChatMessage','event':'afterCreate','condition':_0xd361('0xb'),'callback':afterCreateMessage},{'channel':_0xd361('0x5'),'model':_0xd361('0xc'),'event':_0xd361('0x7'),'condition':_0xd361('0xb'),'callback':afterCreateOfflineMessage},{'channel':'Sms','model':_0xd361('0xd'),'event':_0xd361('0x7'),'condition':_0xd361('0x8'),'callback':afterCreate},{'channel':_0xd361('0xe'),'model':_0xd361('0xd'),'event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0xd361('0xe'),'model':_0xd361('0xf'),'event':_0xd361('0x7'),'condition':_0xd361('0xb'),'callback':afterCreateMessage},{'channel':'Whatsapp','model':_0xd361('0x10'),'event':'afterCreate','condition':_0xd361('0x8'),'callback':afterCreate},{'channel':_0xd361('0x11'),'model':_0xd361('0x10'),'event':_0xd361('0x9'),'condition':_0xd361('0xa'),'callback':afterUpdate},{'channel':'Whatsapp','model':_0xd361('0x12'),'event':_0xd361('0x7'),'condition':_0xd361('0xb'),'callback':afterCreateMessage},{'channel':_0xd361('0x13'),'model':_0xd361('0x14'),'event':_0xd361('0x7'),'condition':_0xd361('0x8'),'callback':afterCreate},{'channel':_0xd361('0x13'),'model':_0xd361('0x14'),'event':_0xd361('0x9'),'condition':_0xd361('0xa'),'callback':afterUpdate},{'channel':_0xd361('0x13'),'model':'FaxMessage','event':_0xd361('0x7'),'condition':_0xd361('0xb'),'callback':afterCreateMessage},{'channel':_0xd361('0x15'),'model':_0xd361('0x16'),'event':'afterCreate','condition':'newinteraction','callback':afterCreate},{'channel':_0xd361('0x15'),'model':_0xd361('0x16'),'event':_0xd361('0x9'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0xd361('0x15'),'model':_0xd361('0x17'),'event':_0xd361('0x7'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Openchannel','model':_0xd361('0x18'),'event':_0xd361('0x7'),'condition':_0xd361('0x8'),'callback':afterCreate},{'channel':_0xd361('0x19'),'model':_0xd361('0x18'),'event':_0xd361('0x9'),'condition':_0xd361('0xa'),'callback':afterUpdate},{'channel':'Openchannel','model':_0xd361('0x1a'),'event':_0xd361('0x7'),'condition':_0xd361('0xb'),'callback':afterCreateMessage}];function request(_0x142392){return client[_0xd361('0x1b')](_0xd361('0x1c'),_0x142392)['then'](function(_0x59f4f3){logger[_0xd361('0x1d')](_0xd361('0x1e'),'EventManager',_0x59f4f3);if(_0x59f4f3[_0xd361('0x1f')]){if(_0x59f4f3[_0xd361('0x1f')][_0xd361('0x20')]===0x1f4){logger[_0xd361('0x1f')]('Trigger,\x20%s',_0xd361('0x1c'),_0x59f4f3[_0xd361('0x1f')]);}}})['catch'](function(_0x212280){logger['error'](_0xd361('0x1e'),'EventManager',_0x212280);});}function afterCreateMessage(_0x4c9aeb){return function(_0x31587b){_0x31587b=_0x31587b[_0xd361('0x21')]({'plain':!![]});_0x31587b[_0xd361('0x22')]=_0x4c9aeb;_0x31587b[_0xd361('0x23')]=_0x4c9aeb;_0x31587b['event']=_0x31587b[_0xd361('0x24')];Promise[_0xd361('0x25')]()[_0xd361('0x26')](function(){if(typeof _0x31587b[_0xd361('0x27')]==='undefined')return null;var _0x5ad593=_0xd361('0x28')+_0x31587b['ContactId'];return db['sequelize'][_0xd361('0x29')](_0x5ad593,{'type':db[_0xd361('0x2a')][_0xd361('0x2b')][_0xd361('0x2c')],'raw':!![]});})[_0xd361('0x26')](function(_0x4d87bb){if(_0x4d87bb){_0x31587b[_0xd361('0x2d')]=_0x4d87bb[0x0];}if(typeof _0x31587b[_0xd361('0x2e')]===_0xd361('0x2f'))return;return getAgent(_0x31587b[_0xd361('0x2e')]);})['then'](function(_0x3f635c){if(_0x3f635c){_0x31587b[_0xd361('0x30')]=util[_0xd361('0x31')](_0xd361('0x32'),_0x3f635c[_0xd361('0x33')]);_0x31587b[_0xd361('0x34')]=_0x3f635c;_0x31587b['channel']=_0x4c9aeb;return request({'event':_0xd361('0x35'),'message':_0x31587b});}else{return request({'event':'outgoingmessage','message':_0x31587b});}})[_0xd361('0x36')](function(_0x2fca7f){logger[_0xd361('0x1f')](_0xd361('0x1e'),_0xd361('0x37'),_0x2fca7f);});};}function afterCreateOfflineMessage(_0x11b46e){return function(_0x487bf9){_0x487bf9=_0x487bf9[_0xd361('0x21')]({'plain':!![]});_0x487bf9['channel']=_0x11b46e;_0x487bf9[_0xd361('0x23')]=_0x11b46e;_0x487bf9[_0xd361('0x38')]=_0xd361('0x39');return request({'event':_0x487bf9[_0xd361('0x38')],'message':_0x487bf9});};}function afterCreate(_0x5541e7,_0xd3f7e1){return function(_0x39164c){_0x39164c=_0x39164c[_0xd361('0x21')]({'plain':!![]});_0x39164c['channel']=_0x5541e7;_0x39164c[_0xd361('0x23')]=_0x5541e7;_0x39164c[_0xd361('0x38')]=_0xd361('0x3a');Promise[_0xd361('0x25')]()[_0xd361('0x26')](function(){var _0x27481c=_0xd361('0x28')+_0x39164c[_0xd361('0x27')];return db[_0xd361('0x3b')][_0xd361('0x29')](_0x27481c,{'type':db['Sequelize'][_0xd361('0x2b')]['SELECT'],'raw':!![]});})[_0xd361('0x26')](function(_0x5a4d69){if(_0x5a4d69){_0x39164c[_0xd361('0x2d')]=_0x5a4d69[0x0];}if(typeof _0x39164c[_0xd361('0x2e')]==='undefined')return;return getAgent(_0x39164c['UserId']);})['then'](function(_0x372fc0){if(_0x372fc0){_0x39164c[_0xd361('0x30')]=util[_0xd361('0x31')](_0xd361('0x32'),_0x372fc0[_0xd361('0x33')]);_0x39164c[_0xd361('0x34')]=_0x372fc0;}return request({'event':_0xd3f7e1,'message':_0x39164c});})[_0xd361('0x36')](function(_0x1fe2bd){logger[_0xd361('0x1f')](_0xd361('0x1e'),_0xd361('0x3c'),_0x1fe2bd);});};}function afterUpdate(_0x3f7ce7){return function(_0x29feb5){var _0x19fe50=_0x29feb5[_0xd361('0x3d')](_0xd361('0x3e'))&&_0x29feb5['closed'];var _0x5acb08=_0x29feb5['changed']('substatus');if(_0x19fe50||_0x5acb08){var _0x182ed5=_0x19fe50?_0xd361('0xa'):_0xd361('0x3f');var _0x2388be=_0x29feb5[_0xd361('0x21')]({'plain':!![]});_0x2388be[_0xd361('0x22')]=_0x3f7ce7;_0x2388be[_0xd361('0x23')]=_0x3f7ce7;_0x2388be[_0xd361('0x38')]=_0x19fe50?_0xd361('0x3e'):_0xd361('0x3f');var _0x52183b=_0xd361('0x28')+_0x2388be[_0xd361('0x27')];return db['sequelize'][_0xd361('0x29')](_0x52183b,{'type':db[_0xd361('0x2a')][_0xd361('0x2b')][_0xd361('0x2c')],'raw':!![]})[_0xd361('0x26')](function(_0x8b0cc2){if(_0x8b0cc2){_0x2388be[_0xd361('0x2d')]=_0x8b0cc2[0x0];}if(typeof _0x2388be['UserId']===_0xd361('0x2f'))return;return getAgent(_0x2388be['UserId']);})['then'](function(_0x1d748b){if(_0x1d748b){_0x2388be[_0xd361('0x30')]=util[_0xd361('0x31')]('SIP/%s',_0x1d748b['name']);_0x2388be[_0xd361('0x34')]=_0x1d748b;}return request({'event':_0x182ed5,'message':_0x2388be});})['catch'](function(_0x875c53){logger['error'](_0xd361('0x1e'),'AfterUpdate',_0x875c53);});}};}function getAgent(_0x19f4ce){return db['User'][_0xd361('0x40')]({'where':{'id':_0x19f4ce},'attributes':['id',_0xd361('0x33'),_0xd361('0x41'),'email',_0xd361('0x42')],'raw':!![]})[_0xd361('0x26')](function(_0x5345c2){return _0x5345c2;});}exports['default']=function(){for(var _0x50c5c5=0x0;_0x50c5c5<triggers[_0xd361('0x43')];_0x50c5c5+=0x1){if(db[_0xd361('0x44')](triggers[_0x50c5c5][_0xd361('0x45')])){db[triggers[_0x50c5c5]['model']]['hook'](triggers[_0x50c5c5][_0xd361('0x38')],triggers[_0x50c5c5][_0xd361('0x46')](triggers[_0x50c5c5][_0xd361('0x22')][_0xd361('0x47')](),triggers[_0x50c5c5][_0xd361('0x48')]));}}};