2c00276341fcdb2d795cf8b64490ee4a71bae04f
[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 _0xf0fe=['../logger','triggers','client','http','Chat','ChatInteraction','afterCreate','newinteraction','afterUpdate','closedinteraction','newmessage','Sms','SmsInteraction','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','EventManager','info','Trigger,\x20%s','error','code','catch','get','channel','motionChannel','event','direction','then','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','query','SELECT','contact','UserId','interface','format','agent','incomingmessage','outgoingmessage','opened','resolve','sequelize','Sequelize','SIP/%s','name','AfterCreate','changed','closed','substatus','QueryTypes','User','find','fullname','email','default','length','hasOwnProperty','model','hook','callback','condition','util','../../mysqldb','jayson/promise'];(function(_0xe1a3a5,_0xd3e341){var _0x362646=function(_0xdcef03){while(--_0xdcef03){_0xe1a3a5['push'](_0xe1a3a5['shift']());}};_0x362646(++_0xd3e341);}(_0xf0fe,0x16f));var _0xef0f=function(_0x22bd5c,_0x1ccc80){_0x22bd5c=_0x22bd5c-0x0;var _0xd41ddf=_0xf0fe[_0x22bd5c];return _0xd41ddf;};'use strict';var util=require(_0xef0f('0x0'));var db=require(_0xef0f('0x1'))['db'];var jayson=require(_0xef0f('0x2'));var logger=require(_0xef0f('0x3'))(_0xef0f('0x4'));var client=jayson[_0xef0f('0x5')][_0xef0f('0x6')]({'port':0x232a});var triggers=[{'channel':_0xef0f('0x7'),'model':_0xef0f('0x8'),'event':_0xef0f('0x9'),'condition':_0xef0f('0xa'),'callback':afterCreate},{'channel':'Chat','model':_0xef0f('0x8'),'event':_0xef0f('0xb'),'condition':_0xef0f('0xc'),'callback':afterUpdate},{'channel':'Chat','model':'ChatMessage','event':_0xef0f('0x9'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xef0f('0x7'),'model':'ChatOfflineMessage','event':_0xef0f('0x9'),'condition':_0xef0f('0xd'),'callback':afterCreateOfflineMessage},{'channel':_0xef0f('0xe'),'model':_0xef0f('0xf'),'event':'afterCreate','condition':_0xef0f('0xa'),'callback':afterCreate},{'channel':_0xef0f('0xe'),'model':'SmsInteraction','event':_0xef0f('0xb'),'condition':_0xef0f('0xc'),'callback':afterUpdate},{'channel':_0xef0f('0xe'),'model':_0xef0f('0x10'),'event':'afterCreate','condition':_0xef0f('0xd'),'callback':afterCreateMessage},{'channel':_0xef0f('0x11'),'model':'WhatsappInteraction','event':'afterCreate','condition':_0xef0f('0xa'),'callback':afterCreate},{'channel':_0xef0f('0x11'),'model':_0xef0f('0x12'),'event':_0xef0f('0xb'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0xef0f('0x11'),'model':_0xef0f('0x13'),'event':_0xef0f('0x9'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xef0f('0x14'),'model':_0xef0f('0x15'),'event':'afterCreate','condition':_0xef0f('0xa'),'callback':afterCreate},{'channel':_0xef0f('0x14'),'model':_0xef0f('0x15'),'event':_0xef0f('0xb'),'condition':_0xef0f('0xc'),'callback':afterUpdate},{'channel':_0xef0f('0x14'),'model':'FaxMessage','event':_0xef0f('0x9'),'condition':_0xef0f('0xd'),'callback':afterCreateMessage},{'channel':_0xef0f('0x16'),'model':_0xef0f('0x17'),'event':_0xef0f('0x9'),'condition':_0xef0f('0xa'),'callback':afterCreate},{'channel':'Mail','model':'MailInteraction','event':_0xef0f('0xb'),'condition':_0xef0f('0xc'),'callback':afterUpdate},{'channel':_0xef0f('0x16'),'model':_0xef0f('0x18'),'event':'afterCreate','condition':_0xef0f('0xd'),'callback':afterCreateMessage},{'channel':_0xef0f('0x19'),'model':'OpenchannelInteraction','event':_0xef0f('0x9'),'condition':'newinteraction','callback':afterCreate},{'channel':_0xef0f('0x19'),'model':_0xef0f('0x1a'),'event':_0xef0f('0xb'),'condition':_0xef0f('0xc'),'callback':afterUpdate},{'channel':_0xef0f('0x19'),'model':_0xef0f('0x1b'),'event':'afterCreate','condition':_0xef0f('0xd'),'callback':afterCreateMessage}];function request(_0x147228){return client['request'](_0xef0f('0x1c'),_0x147228)['then'](function(_0x55cf1e){logger[_0xef0f('0x1d')](_0xef0f('0x1e'),_0xef0f('0x1c'),_0x55cf1e);if(_0x55cf1e[_0xef0f('0x1f')]){if(_0x55cf1e[_0xef0f('0x1f')][_0xef0f('0x20')]===0x1f4){logger[_0xef0f('0x1f')](_0xef0f('0x1e'),'EventManager',_0x55cf1e['error']);}}})[_0xef0f('0x21')](function(_0x171088){logger[_0xef0f('0x1f')](_0xef0f('0x1e'),_0xef0f('0x1c'),_0x171088);});}function afterCreateMessage(_0x4ce54d){return function(_0x5090a8){_0x5090a8=_0x5090a8[_0xef0f('0x22')]({'plain':!![]});_0x5090a8[_0xef0f('0x23')]=_0x4ce54d;_0x5090a8[_0xef0f('0x24')]=_0x4ce54d;_0x5090a8[_0xef0f('0x25')]=_0x5090a8[_0xef0f('0x26')];Promise['resolve']()[_0xef0f('0x27')](function(){if(typeof _0x5090a8[_0xef0f('0x28')]===_0xef0f('0x29'))return null;var _0x5a5cde=_0xef0f('0x2a')+_0x5090a8[_0xef0f('0x28')];return db['sequelize'][_0xef0f('0x2b')](_0x5a5cde,{'type':db['Sequelize']['QueryTypes'][_0xef0f('0x2c')],'raw':!![]});})[_0xef0f('0x27')](function(_0x5be715){if(_0x5be715){_0x5090a8[_0xef0f('0x2d')]=_0x5be715[0x0];}if(typeof _0x5090a8[_0xef0f('0x2e')]===_0xef0f('0x29'))return;return getAgent(_0x5090a8[_0xef0f('0x2e')]);})['then'](function(_0x54e69d){if(_0x54e69d){_0x5090a8[_0xef0f('0x2f')]=util[_0xef0f('0x30')]('SIP/%s',_0x54e69d['name']);_0x5090a8[_0xef0f('0x31')]=_0x54e69d;_0x5090a8['channel']=_0x4ce54d;return request({'event':_0xef0f('0x32'),'message':_0x5090a8});}else{return request({'event':_0xef0f('0x33'),'message':_0x5090a8});}})['catch'](function(_0x57af3e){logger[_0xef0f('0x1f')]('Trigger,\x20%s','AfterCreateMessage',_0x57af3e);});};}function afterCreateOfflineMessage(_0x43b4f2){return function(_0x1dc765){_0x1dc765=_0x1dc765[_0xef0f('0x22')]({'plain':!![]});_0x1dc765[_0xef0f('0x23')]=_0x43b4f2;_0x1dc765[_0xef0f('0x24')]=_0x43b4f2;_0x1dc765[_0xef0f('0x25')]='offlineMessage';return request({'event':_0x1dc765[_0xef0f('0x25')],'message':_0x1dc765});};}function afterCreate(_0x1eafa0,_0x170a9e){return function(_0x37e38d){_0x37e38d=_0x37e38d[_0xef0f('0x22')]({'plain':!![]});_0x37e38d[_0xef0f('0x23')]=_0x1eafa0;_0x37e38d['motionChannel']=_0x1eafa0;_0x37e38d[_0xef0f('0x25')]=_0xef0f('0x34');Promise[_0xef0f('0x35')]()['then'](function(){var _0x98c94b=_0xef0f('0x2a')+_0x37e38d[_0xef0f('0x28')];return db[_0xef0f('0x36')][_0xef0f('0x2b')](_0x98c94b,{'type':db[_0xef0f('0x37')]['QueryTypes'][_0xef0f('0x2c')],'raw':!![]});})['then'](function(_0x4d87be){if(_0x4d87be){_0x37e38d['contact']=_0x4d87be[0x0];}if(typeof _0x37e38d[_0xef0f('0x2e')]===_0xef0f('0x29'))return;return getAgent(_0x37e38d['UserId']);})['then'](function(_0x14699b){if(_0x14699b){_0x37e38d[_0xef0f('0x2f')]=util[_0xef0f('0x30')](_0xef0f('0x38'),_0x14699b[_0xef0f('0x39')]);_0x37e38d['agent']=_0x14699b;}return request({'event':_0x170a9e,'message':_0x37e38d});})[_0xef0f('0x21')](function(_0x2cfd58){logger['error'](_0xef0f('0x1e'),_0xef0f('0x3a'),_0x2cfd58);});};}function afterUpdate(_0x18289d){return function(_0x43acd6){var _0x71979d=_0x43acd6[_0xef0f('0x3b')]('closed')&&_0x43acd6[_0xef0f('0x3c')];var _0x1b3860=_0x43acd6[_0xef0f('0x3b')](_0xef0f('0x3d'));if(_0x71979d||_0x1b3860){var _0x57ca90=_0x71979d?_0xef0f('0xc'):'substatus';var _0x29891c=_0x43acd6[_0xef0f('0x22')]({'plain':!![]});_0x29891c[_0xef0f('0x23')]=_0x18289d;_0x29891c[_0xef0f('0x24')]=_0x18289d;_0x29891c[_0xef0f('0x25')]=_0x71979d?'closed':'substatus';var _0x5f1eb9=_0xef0f('0x2a')+_0x29891c['ContactId'];return db[_0xef0f('0x36')][_0xef0f('0x2b')](_0x5f1eb9,{'type':db['Sequelize'][_0xef0f('0x3e')][_0xef0f('0x2c')],'raw':!![]})['then'](function(_0x17c644){if(_0x17c644){_0x29891c[_0xef0f('0x2d')]=_0x17c644[0x0];}if(typeof _0x29891c['UserId']===_0xef0f('0x29'))return;return getAgent(_0x29891c[_0xef0f('0x2e')]);})[_0xef0f('0x27')](function(_0x597ab7){if(_0x597ab7){_0x29891c['interface']=util['format'](_0xef0f('0x38'),_0x597ab7['name']);_0x29891c[_0xef0f('0x31')]=_0x597ab7;}return request({'event':_0x57ca90,'message':_0x29891c});})[_0xef0f('0x21')](function(_0x88aab0){logger[_0xef0f('0x1f')](_0xef0f('0x1e'),'AfterUpdate',_0x88aab0);});}};}function getAgent(_0x22a8d8){return db[_0xef0f('0x3f')][_0xef0f('0x40')]({'where':{'id':_0x22a8d8},'attributes':['id',_0xef0f('0x39'),_0xef0f('0x41'),_0xef0f('0x42'),'internal'],'raw':!![]})[_0xef0f('0x27')](function(_0xb9d79f){return _0xb9d79f;});}exports[_0xef0f('0x43')]=function(){for(var _0x819a3d=0x0;_0x819a3d<triggers[_0xef0f('0x44')];_0x819a3d+=0x1){if(db[_0xef0f('0x45')](triggers[_0x819a3d][_0xef0f('0x46')])){db[triggers[_0x819a3d][_0xef0f('0x46')]][_0xef0f('0x47')](triggers[_0x819a3d]['event'],triggers[_0x819a3d][_0xef0f('0x48')](triggers[_0x819a3d][_0xef0f('0x23')]['toLowerCase'](),triggers[_0x819a3d][_0xef0f('0x49')]));}}};