Built motion from commit ffdca78c.|2.6.24
[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 _0xbcd0=['changed','closed','substatus','UserId','User','email','default','length','hasOwnProperty','model','util','jayson/promise','../logger','http','Chat','ChatInteraction','closedinteraction','ChatMessage','newmessage','afterCreate','Sms','SmsInteraction','afterUpdate','SmsMessage','Whatsapp','WhatsappInteraction','Fax','FaxInteraction','newinteraction','Mail','MailInteraction','MailMessage','OpenchannelInteraction','Openchannel','then','info','Trigger,\x20%s','EventManager','error','catch','get','channel','motionChannel','event','direction','resolve','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','query','Sequelize','QueryTypes','SELECT','format','SIP/%s','name','agent','outgoingmessage','AfterCreateMessage','offlineMessage','opened','sequelize','contact','interface','AfterCreate'];(function(_0x57166e,_0x4648bc){var _0x3379ea=function(_0x3eba79){while(--_0x3eba79){_0x57166e['push'](_0x57166e['shift']());}};_0x3379ea(++_0x4648bc);}(_0xbcd0,0x190));var _0x0bcd=function(_0x1d5943,_0x34162e){_0x1d5943=_0x1d5943-0x0;var _0x560779=_0xbcd0[_0x1d5943];return _0x560779;};'use strict';var util=require(_0x0bcd('0x0'));var db=require('../../mysqldb')['db'];var jayson=require(_0x0bcd('0x1'));var logger=require(_0x0bcd('0x2'))('triggers');var client=jayson['client'][_0x0bcd('0x3')]({'port':0x232a});var triggers=[{'channel':_0x0bcd('0x4'),'model':_0x0bcd('0x5'),'event':'afterCreate','condition':'newinteraction','callback':afterCreate},{'channel':_0x0bcd('0x4'),'model':_0x0bcd('0x5'),'event':'afterUpdate','condition':_0x0bcd('0x6'),'callback':afterUpdate},{'channel':'Chat','model':_0x0bcd('0x7'),'event':'afterCreate','condition':_0x0bcd('0x8'),'callback':afterCreateMessage},{'channel':'Chat','model':'ChatOfflineMessage','event':_0x0bcd('0x9'),'condition':_0x0bcd('0x8'),'callback':afterCreateOfflineMessage},{'channel':_0x0bcd('0xa'),'model':_0x0bcd('0xb'),'event':_0x0bcd('0x9'),'condition':'newinteraction','callback':afterCreate},{'channel':'Sms','model':'SmsInteraction','event':_0x0bcd('0xc'),'condition':_0x0bcd('0x6'),'callback':afterUpdate},{'channel':_0x0bcd('0xa'),'model':_0x0bcd('0xd'),'event':_0x0bcd('0x9'),'condition':_0x0bcd('0x8'),'callback':afterCreateMessage},{'channel':_0x0bcd('0xe'),'model':_0x0bcd('0xf'),'event':_0x0bcd('0x9'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x0bcd('0xe'),'model':_0x0bcd('0xf'),'event':_0x0bcd('0xc'),'condition':_0x0bcd('0x6'),'callback':afterUpdate},{'channel':_0x0bcd('0xe'),'model':'WhatsappMessage','event':_0x0bcd('0x9'),'condition':_0x0bcd('0x8'),'callback':afterCreateMessage},{'channel':_0x0bcd('0x10'),'model':_0x0bcd('0x11'),'event':_0x0bcd('0x9'),'condition':_0x0bcd('0x12'),'callback':afterCreate},{'channel':_0x0bcd('0x10'),'model':_0x0bcd('0x11'),'event':_0x0bcd('0xc'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x0bcd('0x10'),'model':'FaxMessage','event':_0x0bcd('0x9'),'condition':_0x0bcd('0x8'),'callback':afterCreateMessage},{'channel':_0x0bcd('0x13'),'model':_0x0bcd('0x14'),'event':_0x0bcd('0x9'),'condition':_0x0bcd('0x12'),'callback':afterCreate},{'channel':_0x0bcd('0x13'),'model':'MailInteraction','event':_0x0bcd('0xc'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x0bcd('0x13'),'model':_0x0bcd('0x15'),'event':_0x0bcd('0x9'),'condition':_0x0bcd('0x8'),'callback':afterCreateMessage},{'channel':'Openchannel','model':_0x0bcd('0x16'),'event':'afterCreate','condition':'newinteraction','callback':afterCreate},{'channel':_0x0bcd('0x17'),'model':_0x0bcd('0x16'),'event':_0x0bcd('0xc'),'condition':_0x0bcd('0x6'),'callback':afterUpdate},{'channel':_0x0bcd('0x17'),'model':'OpenchannelMessage','event':_0x0bcd('0x9'),'condition':_0x0bcd('0x8'),'callback':afterCreateMessage}];function request(_0x1bb113){return client['request']('EventManager',_0x1bb113)[_0x0bcd('0x18')](function(_0x27a5dc){logger[_0x0bcd('0x19')](_0x0bcd('0x1a'),_0x0bcd('0x1b'),_0x27a5dc);if(_0x27a5dc[_0x0bcd('0x1c')]){if(_0x27a5dc[_0x0bcd('0x1c')]['code']===0x1f4){logger[_0x0bcd('0x1c')](_0x0bcd('0x1a'),'EventManager',_0x27a5dc['error']);}}})[_0x0bcd('0x1d')](function(_0x54b1b0){logger['error']('Trigger,\x20%s',_0x0bcd('0x1b'),_0x54b1b0);});}function afterCreateMessage(_0x252470){return function(_0x47881b){_0x47881b=_0x47881b[_0x0bcd('0x1e')]({'plain':!![]});_0x47881b[_0x0bcd('0x1f')]=_0x252470;_0x47881b[_0x0bcd('0x20')]=_0x252470;_0x47881b[_0x0bcd('0x21')]=_0x47881b[_0x0bcd('0x22')];Promise[_0x0bcd('0x23')]()[_0x0bcd('0x18')](function(){if(typeof _0x47881b['ContactId']===_0x0bcd('0x24'))return null;var _0x531d11=_0x0bcd('0x25')+_0x47881b[_0x0bcd('0x26')];return db['sequelize'][_0x0bcd('0x27')](_0x531d11,{'type':db[_0x0bcd('0x28')][_0x0bcd('0x29')][_0x0bcd('0x2a')],'raw':!![]});})[_0x0bcd('0x18')](function(_0x46c7f7){if(_0x46c7f7){_0x47881b['contact']=_0x46c7f7[0x0];}if(typeof _0x47881b['UserId']==='undefined')return;return getAgent(_0x47881b['UserId']);})[_0x0bcd('0x18')](function(_0x43d53d){if(_0x43d53d){_0x47881b['interface']=util[_0x0bcd('0x2b')](_0x0bcd('0x2c'),_0x43d53d[_0x0bcd('0x2d')]);_0x47881b[_0x0bcd('0x2e')]=_0x43d53d;_0x47881b[_0x0bcd('0x1f')]=_0x252470;return request({'event':'incomingmessage','message':_0x47881b});}else{return request({'event':_0x0bcd('0x2f'),'message':_0x47881b});}})[_0x0bcd('0x1d')](function(_0x236499){logger[_0x0bcd('0x1c')]('Trigger,\x20%s',_0x0bcd('0x30'),_0x236499);});};}function afterCreateOfflineMessage(_0x148639){return function(_0x404f5d){_0x404f5d=_0x404f5d['get']({'plain':!![]});_0x404f5d[_0x0bcd('0x1f')]=_0x148639;_0x404f5d[_0x0bcd('0x20')]=_0x148639;_0x404f5d['event']=_0x0bcd('0x31');return request({'event':_0x404f5d['event'],'message':_0x404f5d});};}function afterCreate(_0x3a603b,_0x5df11b){return function(_0xba12fe){_0xba12fe=_0xba12fe[_0x0bcd('0x1e')]({'plain':!![]});_0xba12fe[_0x0bcd('0x1f')]=_0x3a603b;_0xba12fe[_0x0bcd('0x20')]=_0x3a603b;_0xba12fe[_0x0bcd('0x21')]=_0x0bcd('0x32');Promise[_0x0bcd('0x23')]()[_0x0bcd('0x18')](function(){var _0x1a6dd6='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0xba12fe['ContactId'];return db[_0x0bcd('0x33')]['query'](_0x1a6dd6,{'type':db[_0x0bcd('0x28')][_0x0bcd('0x29')][_0x0bcd('0x2a')],'raw':!![]});})[_0x0bcd('0x18')](function(_0x3ce75f){if(_0x3ce75f){_0xba12fe[_0x0bcd('0x34')]=_0x3ce75f[0x0];}if(typeof _0xba12fe['UserId']===_0x0bcd('0x24'))return;return getAgent(_0xba12fe['UserId']);})[_0x0bcd('0x18')](function(_0x140a16){if(_0x140a16){_0xba12fe[_0x0bcd('0x35')]=util[_0x0bcd('0x2b')](_0x0bcd('0x2c'),_0x140a16[_0x0bcd('0x2d')]);_0xba12fe[_0x0bcd('0x2e')]=_0x140a16;}return request({'event':_0x5df11b,'message':_0xba12fe});})[_0x0bcd('0x1d')](function(_0x78c8bf){logger[_0x0bcd('0x1c')](_0x0bcd('0x1a'),_0x0bcd('0x36'),_0x78c8bf);});};}function afterUpdate(_0x4eb45b){return function(_0x4e8711){var _0x1c16f6=_0x4e8711[_0x0bcd('0x37')](_0x0bcd('0x38'))&&_0x4e8711['closed'];var _0x43da4e=_0x4e8711[_0x0bcd('0x37')](_0x0bcd('0x39'));if(_0x1c16f6||_0x43da4e){var _0x2b3313=_0x1c16f6?_0x0bcd('0x6'):_0x0bcd('0x39');var _0x596a60=_0x4e8711['get']({'plain':!![]});_0x596a60['channel']=_0x4eb45b;_0x596a60[_0x0bcd('0x20')]=_0x4eb45b;_0x596a60['event']=_0x1c16f6?_0x0bcd('0x38'):_0x0bcd('0x39');var _0x2d45a8='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x596a60[_0x0bcd('0x26')];return db[_0x0bcd('0x33')][_0x0bcd('0x27')](_0x2d45a8,{'type':db[_0x0bcd('0x28')][_0x0bcd('0x29')][_0x0bcd('0x2a')],'raw':!![]})['then'](function(_0x524ef4){if(_0x524ef4){_0x596a60[_0x0bcd('0x34')]=_0x524ef4[0x0];}if(typeof _0x596a60['UserId']===_0x0bcd('0x24'))return;return getAgent(_0x596a60[_0x0bcd('0x3a')]);})[_0x0bcd('0x18')](function(_0x4d07e8){if(_0x4d07e8){_0x596a60[_0x0bcd('0x35')]=util[_0x0bcd('0x2b')](_0x0bcd('0x2c'),_0x4d07e8[_0x0bcd('0x2d')]);_0x596a60['agent']=_0x4d07e8;}return request({'event':_0x2b3313,'message':_0x596a60});})[_0x0bcd('0x1d')](function(_0x496a18){logger[_0x0bcd('0x1c')](_0x0bcd('0x1a'),'AfterUpdate',_0x496a18);});}};}function getAgent(_0x3551d7){return db[_0x0bcd('0x3b')]['find']({'where':{'id':_0x3551d7},'attributes':['id',_0x0bcd('0x2d'),'fullname',_0x0bcd('0x3c'),'internal'],'raw':!![]})[_0x0bcd('0x18')](function(_0x42a815){return _0x42a815;});}exports[_0x0bcd('0x3d')]=function(){for(var _0xea5be3=0x0;_0xea5be3<triggers[_0x0bcd('0x3e')];_0xea5be3+=0x1){if(db[_0x0bcd('0x3f')](triggers[_0xea5be3][_0x0bcd('0x40')])){db[triggers[_0xea5be3][_0x0bcd('0x40')]]['hook'](triggers[_0xea5be3][_0x0bcd('0x21')],triggers[_0xea5be3]['callback'](triggers[_0xea5be3]['channel']['toLowerCase'](),triggers[_0xea5be3]['condition']));}}};