Built motion from commit eddce310.|2.6.12
[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 _0x79bd=['OpenchannelMessage','request','Trigger,\x20%s','EventManager','error','code','catch','get','channel','motionChannel','event','direction','resolve','then','ContactId','undefined','sequelize','Sequelize','QueryTypes','SELECT','contact','UserId','interface','format','agent','incomingmessage','outgoingmessage','AfterCreateMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','query','SIP/%s','name','AfterCreate','changed','substatus','closed','AfterUpdate','find','fullname','email','internal','default','length','hasOwnProperty','model','hook','util','../logger','triggers','client','ChatInteraction','afterCreate','newinteraction','Chat','afterUpdate','ChatMessage','newmessage','ChatOfflineMessage','Sms','SmsInteraction','closedinteraction','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction'];(function(_0x4d3bd5,_0x13934c){var _0x4588e6=function(_0x5d9056){while(--_0x5d9056){_0x4d3bd5['push'](_0x4d3bd5['shift']());}};_0x4588e6(++_0x13934c);}(_0x79bd,0x109));var _0xd79b=function(_0xb97824,_0x344105){_0xb97824=_0xb97824-0x0;var _0x5570fb=_0x79bd[_0xb97824];return _0x5570fb;};'use strict';var util=require(_0xd79b('0x0'));var db=require('../../mysqldb')['db'];var jayson=require('jayson/promise');var logger=require(_0xd79b('0x1'))(_0xd79b('0x2'));var client=jayson[_0xd79b('0x3')]['http']({'port':0x232a});var triggers=[{'channel':'Chat','model':_0xd79b('0x4'),'event':_0xd79b('0x5'),'condition':_0xd79b('0x6'),'callback':afterCreate},{'channel':_0xd79b('0x7'),'model':'ChatInteraction','event':_0xd79b('0x8'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0xd79b('0x7'),'model':_0xd79b('0x9'),'event':_0xd79b('0x5'),'condition':_0xd79b('0xa'),'callback':afterCreateMessage},{'channel':_0xd79b('0x7'),'model':_0xd79b('0xb'),'event':'afterCreate','condition':_0xd79b('0xa'),'callback':afterCreateOfflineMessage},{'channel':_0xd79b('0xc'),'model':_0xd79b('0xd'),'event':_0xd79b('0x5'),'condition':'newinteraction','callback':afterCreate},{'channel':_0xd79b('0xc'),'model':'SmsInteraction','event':_0xd79b('0x8'),'condition':_0xd79b('0xe'),'callback':afterUpdate},{'channel':_0xd79b('0xc'),'model':_0xd79b('0xf'),'event':'afterCreate','condition':_0xd79b('0xa'),'callback':afterCreateMessage},{'channel':_0xd79b('0x10'),'model':'WhatsappInteraction','event':_0xd79b('0x5'),'condition':_0xd79b('0x6'),'callback':afterCreate},{'channel':'Whatsapp','model':_0xd79b('0x11'),'event':_0xd79b('0x8'),'condition':_0xd79b('0xe'),'callback':afterUpdate},{'channel':_0xd79b('0x10'),'model':_0xd79b('0x12'),'event':'afterCreate','condition':'newmessage','callback':afterCreateMessage},{'channel':_0xd79b('0x13'),'model':'FaxInteraction','event':_0xd79b('0x5'),'condition':'newinteraction','callback':afterCreate},{'channel':'Fax','model':_0xd79b('0x14'),'event':_0xd79b('0x8'),'condition':_0xd79b('0xe'),'callback':afterUpdate},{'channel':_0xd79b('0x13'),'model':_0xd79b('0x15'),'event':_0xd79b('0x5'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xd79b('0x16'),'model':_0xd79b('0x17'),'event':_0xd79b('0x5'),'condition':_0xd79b('0x6'),'callback':afterCreate},{'channel':'Mail','model':_0xd79b('0x17'),'event':_0xd79b('0x8'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0xd79b('0x16'),'model':_0xd79b('0x18'),'event':'afterCreate','condition':_0xd79b('0xa'),'callback':afterCreateMessage},{'channel':_0xd79b('0x19'),'model':_0xd79b('0x1a'),'event':_0xd79b('0x5'),'condition':_0xd79b('0x6'),'callback':afterCreate},{'channel':_0xd79b('0x19'),'model':_0xd79b('0x1a'),'event':'afterUpdate','condition':_0xd79b('0xe'),'callback':afterUpdate},{'channel':'Openchannel','model':_0xd79b('0x1b'),'event':_0xd79b('0x5'),'condition':_0xd79b('0xa'),'callback':afterCreateMessage}];function request(_0x57f792){return client[_0xd79b('0x1c')]('EventManager',_0x57f792)['then'](function(_0x44fff7){logger['info'](_0xd79b('0x1d'),_0xd79b('0x1e'),_0x44fff7);if(_0x44fff7[_0xd79b('0x1f')]){if(_0x44fff7[_0xd79b('0x1f')][_0xd79b('0x20')]===0x1f4){logger[_0xd79b('0x1f')](_0xd79b('0x1d'),'EventManager',_0x44fff7[_0xd79b('0x1f')]);}}})[_0xd79b('0x21')](function(_0x29582b){logger[_0xd79b('0x1f')]('Trigger,\x20%s',_0xd79b('0x1e'),_0x29582b);});}function afterCreateMessage(_0x460e8d){return function(_0x4cecd2){_0x4cecd2=_0x4cecd2[_0xd79b('0x22')]({'plain':!![]});_0x4cecd2[_0xd79b('0x23')]=_0x460e8d;_0x4cecd2[_0xd79b('0x24')]=_0x460e8d;_0x4cecd2[_0xd79b('0x25')]=_0x4cecd2[_0xd79b('0x26')];Promise[_0xd79b('0x27')]()[_0xd79b('0x28')](function(){if(typeof _0x4cecd2[_0xd79b('0x29')]===_0xd79b('0x2a'))return null;var _0x3280b3='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x4cecd2[_0xd79b('0x29')];return db[_0xd79b('0x2b')]['query'](_0x3280b3,{'type':db[_0xd79b('0x2c')][_0xd79b('0x2d')][_0xd79b('0x2e')],'raw':!![]});})[_0xd79b('0x28')](function(_0x41659f){if(_0x41659f){_0x4cecd2[_0xd79b('0x2f')]=_0x41659f[0x0];}if(typeof _0x4cecd2[_0xd79b('0x30')]===_0xd79b('0x2a'))return;return getAgent(_0x4cecd2['UserId']);})[_0xd79b('0x28')](function(_0x46869b){if(_0x46869b){_0x4cecd2[_0xd79b('0x31')]=util[_0xd79b('0x32')]('SIP/%s',_0x46869b['name']);_0x4cecd2[_0xd79b('0x33')]=_0x46869b;_0x4cecd2['channel']=_0x460e8d;return request({'event':_0xd79b('0x34'),'message':_0x4cecd2});}else{return request({'event':_0xd79b('0x35'),'message':_0x4cecd2});}})[_0xd79b('0x21')](function(_0x1083f1){logger[_0xd79b('0x1f')]('Trigger,\x20%s',_0xd79b('0x36'),_0x1083f1);});};}function afterCreateOfflineMessage(_0x1c7156){return function(_0x44c44a){_0x44c44a=_0x44c44a[_0xd79b('0x22')]({'plain':!![]});_0x44c44a['channel']=_0x1c7156;_0x44c44a[_0xd79b('0x24')]=_0x1c7156;_0x44c44a[_0xd79b('0x25')]='offlineMessage';return request({'event':_0x44c44a['event'],'message':_0x44c44a});};}function afterCreate(_0x43374c,_0x4cabb){return function(_0x17ef1f){_0x17ef1f=_0x17ef1f[_0xd79b('0x22')]({'plain':!![]});_0x17ef1f[_0xd79b('0x23')]=_0x43374c;_0x17ef1f['motionChannel']=_0x43374c;_0x17ef1f[_0xd79b('0x25')]='opened';Promise[_0xd79b('0x27')]()[_0xd79b('0x28')](function(){var _0x13d375=_0xd79b('0x37')+_0x17ef1f[_0xd79b('0x29')];return db['sequelize'][_0xd79b('0x38')](_0x13d375,{'type':db[_0xd79b('0x2c')][_0xd79b('0x2d')][_0xd79b('0x2e')],'raw':!![]});})[_0xd79b('0x28')](function(_0x330f98){if(_0x330f98){_0x17ef1f[_0xd79b('0x2f')]=_0x330f98[0x0];}if(typeof _0x17ef1f['UserId']==='undefined')return;return getAgent(_0x17ef1f[_0xd79b('0x30')]);})[_0xd79b('0x28')](function(_0x12d820){if(_0x12d820){_0x17ef1f[_0xd79b('0x31')]=util[_0xd79b('0x32')](_0xd79b('0x39'),_0x12d820[_0xd79b('0x3a')]);_0x17ef1f[_0xd79b('0x33')]=_0x12d820;}return request({'event':_0x4cabb,'message':_0x17ef1f});})[_0xd79b('0x21')](function(_0x41f3da){logger[_0xd79b('0x1f')]('Trigger,\x20%s',_0xd79b('0x3b'),_0x41f3da);});};}function afterUpdate(_0x55436f){return function(_0x5bf941){var _0x47e32b=_0x5bf941[_0xd79b('0x3c')]('closed')&&_0x5bf941['closed'];var _0x384a15=_0x5bf941['changed'](_0xd79b('0x3d'));if(_0x47e32b||_0x384a15){var _0x26b75c=_0x47e32b?'closedinteraction':_0xd79b('0x3d');var _0x476613=_0x5bf941[_0xd79b('0x22')]({'plain':!![]});_0x476613[_0xd79b('0x23')]=_0x55436f;_0x476613[_0xd79b('0x24')]=_0x55436f;_0x476613[_0xd79b('0x25')]=_0x47e32b?_0xd79b('0x3e'):'substatus';var _0x2510db=_0xd79b('0x37')+_0x476613[_0xd79b('0x29')];return db[_0xd79b('0x2b')]['query'](_0x2510db,{'type':db['Sequelize'][_0xd79b('0x2d')][_0xd79b('0x2e')],'raw':!![]})[_0xd79b('0x28')](function(_0x345bb4){if(_0x345bb4){_0x476613['contact']=_0x345bb4[0x0];}if(typeof _0x476613['UserId']===_0xd79b('0x2a'))return;return getAgent(_0x476613['UserId']);})[_0xd79b('0x28')](function(_0x272e01){if(_0x272e01){_0x476613[_0xd79b('0x31')]=util[_0xd79b('0x32')](_0xd79b('0x39'),_0x272e01[_0xd79b('0x3a')]);_0x476613[_0xd79b('0x33')]=_0x272e01;}return request({'event':_0x26b75c,'message':_0x476613});})[_0xd79b('0x21')](function(_0x15464d){logger['error']('Trigger,\x20%s',_0xd79b('0x3f'),_0x15464d);});}};}function getAgent(_0x27e1cd){return db['User'][_0xd79b('0x40')]({'where':{'id':_0x27e1cd},'attributes':['id','name',_0xd79b('0x41'),_0xd79b('0x42'),_0xd79b('0x43')],'raw':!![]})['then'](function(_0x66999f){return _0x66999f;});}exports[_0xd79b('0x44')]=function(){for(var _0x626cd1=0x0;_0x626cd1<triggers[_0xd79b('0x45')];_0x626cd1+=0x1){if(db[_0xd79b('0x46')](triggers[_0x626cd1]['model'])){db[triggers[_0x626cd1][_0xd79b('0x47')]][_0xd79b('0x48')](triggers[_0x626cd1]['event'],triggers[_0x626cd1]['callback'](triggers[_0x626cd1][_0xd79b('0x23')]['toLowerCase'](),triggers[_0x626cd1]['condition']));}}};