Built motion from commit ddca4d0d.|2.5.47
[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 _0x9157=['Openchannel','OpenchannelInteraction','request','EventManager','Trigger,\x20%s','error','code','catch','get','channel','motionChannel','event','direction','resolve','then','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','query','SELECT','contact','UserId','format','name','incomingmessage','outgoingmessage','AfterCreateMessage','offlineMessage','opened','Sequelize','interface','SIP/%s','agent','AfterCreate','changed','substatus','AfterUpdate','User','find','fullname','internal','default','length','hasOwnProperty','model','hook','callback','../../mysqldb','jayson/promise','../logger','client','http','Chat','ChatInteraction','afterCreate','newinteraction','afterUpdate','ChatMessage','newmessage','Sms','SmsInteraction','SmsMessage','WhatsappInteraction','Whatsapp','closedinteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage'];(function(_0x23754b,_0x2f3f2f){var _0x55af54=function(_0xbba85){while(--_0xbba85){_0x23754b['push'](_0x23754b['shift']());}};_0x55af54(++_0x2f3f2f);}(_0x9157,0xc2));var _0x7915=function(_0x56f7e2,_0x145392){_0x56f7e2=_0x56f7e2-0x0;var _0x36240b=_0x9157[_0x56f7e2];return _0x36240b;};'use strict';var util=require('util');var db=require(_0x7915('0x0'))['db'];var jayson=require(_0x7915('0x1'));var logger=require(_0x7915('0x2'))('triggers');var client=jayson[_0x7915('0x3')][_0x7915('0x4')]({'port':0x232a});var triggers=[{'channel':_0x7915('0x5'),'model':_0x7915('0x6'),'event':_0x7915('0x7'),'condition':_0x7915('0x8'),'callback':afterCreate},{'channel':'Chat','model':'ChatInteraction','event':_0x7915('0x9'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Chat','model':_0x7915('0xa'),'event':_0x7915('0x7'),'condition':_0x7915('0xb'),'callback':afterCreateMessage},{'channel':_0x7915('0x5'),'model':'ChatOfflineMessage','event':_0x7915('0x7'),'condition':_0x7915('0xb'),'callback':afterCreateOfflineMessage},{'channel':_0x7915('0xc'),'model':'SmsInteraction','event':_0x7915('0x7'),'condition':'newinteraction','callback':afterCreate},{'channel':'Sms','model':_0x7915('0xd'),'event':_0x7915('0x9'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x7915('0xc'),'model':_0x7915('0xe'),'event':_0x7915('0x7'),'condition':_0x7915('0xb'),'callback':afterCreateMessage},{'channel':'Whatsapp','model':_0x7915('0xf'),'event':'afterCreate','condition':_0x7915('0x8'),'callback':afterCreate},{'channel':_0x7915('0x10'),'model':'WhatsappInteraction','event':_0x7915('0x9'),'condition':_0x7915('0x11'),'callback':afterUpdate},{'channel':'Whatsapp','model':_0x7915('0x12'),'event':_0x7915('0x7'),'condition':_0x7915('0xb'),'callback':afterCreateMessage},{'channel':_0x7915('0x13'),'model':_0x7915('0x14'),'event':_0x7915('0x7'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x7915('0x13'),'model':_0x7915('0x14'),'event':_0x7915('0x9'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x7915('0x13'),'model':_0x7915('0x15'),'event':_0x7915('0x7'),'condition':_0x7915('0xb'),'callback':afterCreateMessage},{'channel':_0x7915('0x16'),'model':'MailInteraction','event':'afterCreate','condition':_0x7915('0x8'),'callback':afterCreate},{'channel':'Mail','model':_0x7915('0x17'),'event':_0x7915('0x9'),'condition':_0x7915('0x11'),'callback':afterUpdate},{'channel':_0x7915('0x16'),'model':_0x7915('0x18'),'event':_0x7915('0x7'),'condition':_0x7915('0xb'),'callback':afterCreateMessage},{'channel':_0x7915('0x19'),'model':'OpenchannelInteraction','event':_0x7915('0x7'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x7915('0x19'),'model':_0x7915('0x1a'),'event':_0x7915('0x9'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x7915('0x19'),'model':'OpenchannelMessage','event':_0x7915('0x7'),'condition':_0x7915('0xb'),'callback':afterCreateMessage}];function request(_0x460090){return client[_0x7915('0x1b')](_0x7915('0x1c'),_0x460090)['then'](function(_0x3969a2){logger['info'](_0x7915('0x1d'),_0x7915('0x1c'),_0x3969a2);if(_0x3969a2['error']){if(_0x3969a2[_0x7915('0x1e')][_0x7915('0x1f')]===0x1f4){logger[_0x7915('0x1e')](_0x7915('0x1d'),'EventManager',_0x3969a2[_0x7915('0x1e')]);}}})[_0x7915('0x20')](function(_0x235693){logger[_0x7915('0x1e')](_0x7915('0x1d'),_0x7915('0x1c'),_0x235693);});}function afterCreateMessage(_0x14deb5){return function(_0x56889f){_0x56889f=_0x56889f[_0x7915('0x21')]({'plain':!![]});_0x56889f[_0x7915('0x22')]=_0x14deb5;_0x56889f[_0x7915('0x23')]=_0x14deb5;_0x56889f[_0x7915('0x24')]=_0x56889f[_0x7915('0x25')];Promise[_0x7915('0x26')]()[_0x7915('0x27')](function(){if(typeof _0x56889f[_0x7915('0x28')]===_0x7915('0x29'))return null;var _0x8200b8=_0x7915('0x2a')+_0x56889f['ContactId'];return db[_0x7915('0x2b')][_0x7915('0x2c')](_0x8200b8,{'type':db['Sequelize']['QueryTypes'][_0x7915('0x2d')],'raw':!![]});})['then'](function(_0x1bfb6e){if(_0x1bfb6e){_0x56889f[_0x7915('0x2e')]=_0x1bfb6e[0x0];}if(typeof _0x56889f[_0x7915('0x2f')]===_0x7915('0x29'))return;return getAgent(_0x56889f['UserId']);})[_0x7915('0x27')](function(_0x2ac21d){if(_0x2ac21d){_0x56889f['interface']=util[_0x7915('0x30')]('SIP/%s',_0x2ac21d[_0x7915('0x31')]);_0x56889f['agent']=_0x2ac21d;_0x56889f['channel']=_0x14deb5;return request({'event':_0x7915('0x32'),'message':_0x56889f});}else{return request({'event':_0x7915('0x33'),'message':_0x56889f});}})['catch'](function(_0x19a5c6){logger[_0x7915('0x1e')]('Trigger,\x20%s',_0x7915('0x34'),_0x19a5c6);});};}function afterCreateOfflineMessage(_0x1da873){return function(_0x151a36){_0x151a36=_0x151a36[_0x7915('0x21')]({'plain':!![]});_0x151a36[_0x7915('0x22')]=_0x1da873;_0x151a36[_0x7915('0x23')]=_0x1da873;_0x151a36['event']=_0x7915('0x35');return request({'event':_0x151a36['event'],'message':_0x151a36});};}function afterCreate(_0x483aa5,_0x5234a2){return function(_0x316409){_0x316409=_0x316409[_0x7915('0x21')]({'plain':!![]});_0x316409['channel']=_0x483aa5;_0x316409[_0x7915('0x23')]=_0x483aa5;_0x316409['event']=_0x7915('0x36');Promise[_0x7915('0x26')]()[_0x7915('0x27')](function(){var _0x5c6ff6=_0x7915('0x2a')+_0x316409[_0x7915('0x28')];return db[_0x7915('0x2b')]['query'](_0x5c6ff6,{'type':db[_0x7915('0x37')]['QueryTypes'][_0x7915('0x2d')],'raw':!![]});})[_0x7915('0x27')](function(_0x11bb00){if(_0x11bb00){_0x316409[_0x7915('0x2e')]=_0x11bb00[0x0];}if(typeof _0x316409[_0x7915('0x2f')]===_0x7915('0x29'))return;return getAgent(_0x316409[_0x7915('0x2f')]);})[_0x7915('0x27')](function(_0x3965df){if(_0x3965df){_0x316409[_0x7915('0x38')]=util[_0x7915('0x30')](_0x7915('0x39'),_0x3965df['name']);_0x316409[_0x7915('0x3a')]=_0x3965df;}return request({'event':_0x5234a2,'message':_0x316409});})['catch'](function(_0x155078){logger[_0x7915('0x1e')]('Trigger,\x20%s',_0x7915('0x3b'),_0x155078);});};}function afterUpdate(_0x309255){return function(_0x111a73){var _0xdfd70b=_0x111a73['changed']('closed')&&_0x111a73['closed'];var _0x384a92=_0x111a73[_0x7915('0x3c')]('substatus');if(_0xdfd70b||_0x384a92){var _0x3238e2=_0xdfd70b?'closedinteraction':_0x7915('0x3d');var _0x43933d=_0x111a73[_0x7915('0x21')]({'plain':!![]});_0x43933d[_0x7915('0x22')]=_0x309255;_0x43933d[_0x7915('0x23')]=_0x309255;_0x43933d[_0x7915('0x24')]=_0xdfd70b?'closed':_0x7915('0x3d');var _0xc0183b=_0x7915('0x2a')+_0x43933d[_0x7915('0x28')];return db[_0x7915('0x2b')][_0x7915('0x2c')](_0xc0183b,{'type':db[_0x7915('0x37')]['QueryTypes'][_0x7915('0x2d')],'raw':!![]})[_0x7915('0x27')](function(_0x446a78){if(_0x446a78){_0x43933d['contact']=_0x446a78[0x0];}if(typeof _0x43933d[_0x7915('0x2f')]===_0x7915('0x29'))return;return getAgent(_0x43933d[_0x7915('0x2f')]);})[_0x7915('0x27')](function(_0x2c4b1e){if(_0x2c4b1e){_0x43933d[_0x7915('0x38')]=util[_0x7915('0x30')](_0x7915('0x39'),_0x2c4b1e[_0x7915('0x31')]);_0x43933d[_0x7915('0x3a')]=_0x2c4b1e;}return request({'event':_0x3238e2,'message':_0x43933d});})[_0x7915('0x20')](function(_0x23d2d8){logger['error'](_0x7915('0x1d'),_0x7915('0x3e'),_0x23d2d8);});}};}function getAgent(_0x5cc39a){return db[_0x7915('0x3f')][_0x7915('0x40')]({'where':{'id':_0x5cc39a},'attributes':['id',_0x7915('0x31'),_0x7915('0x41'),'email',_0x7915('0x42')],'raw':!![]})[_0x7915('0x27')](function(_0x4f9860){return _0x4f9860;});}exports[_0x7915('0x43')]=function(){for(var _0xabfb46=0x0;_0xabfb46<triggers[_0x7915('0x44')];_0xabfb46+=0x1){if(db[_0x7915('0x45')](triggers[_0xabfb46][_0x7915('0x46')])){db[triggers[_0xabfb46][_0x7915('0x46')]][_0x7915('0x47')](triggers[_0xabfb46][_0x7915('0x24')],triggers[_0xabfb46][_0x7915('0x48')](triggers[_0xabfb46][_0x7915('0x22')]['toLowerCase'](),triggers[_0xabfb46]['condition']));}}};