Built motion from commit 1fa89557.|2.6.10
[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 _0x689f=['UserId','format','SIP/%s','name','channel','incomingmessage','outgoingmessage','catch','get','offlineMessage','sequelize','query','SELECT','interface','agent','AfterCreate','changed','closed','substatus','find','fullname','internal','default','length','hasOwnProperty','model','hook','condition','util','../../mysqldb','jayson/promise','../logger','triggers','http','Chat','afterCreate','newinteraction','ChatInteraction','afterUpdate','closedinteraction','newmessage','Sms','SmsInteraction','SmsMessage','Whatsapp','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','then','Trigger,\x20%s','error','code','motionChannel','event','resolve','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','Sequelize','QueryTypes','contact'];(function(_0x301618,_0x46ef4b){var _0x18ee52=function(_0xf91cd){while(--_0xf91cd){_0x301618['push'](_0x301618['shift']());}};_0x18ee52(++_0x46ef4b);}(_0x689f,0x175));var _0xf689=function(_0x12224b,_0x35be5c){_0x12224b=_0x12224b-0x0;var _0x4aa12c=_0x689f[_0x12224b];return _0x4aa12c;};'use strict';var util=require(_0xf689('0x0'));var db=require(_0xf689('0x1'))['db'];var jayson=require(_0xf689('0x2'));var logger=require(_0xf689('0x3'))(_0xf689('0x4'));var client=jayson['client'][_0xf689('0x5')]({'port':0x232a});var triggers=[{'channel':_0xf689('0x6'),'model':'ChatInteraction','event':_0xf689('0x7'),'condition':_0xf689('0x8'),'callback':afterCreate},{'channel':_0xf689('0x6'),'model':_0xf689('0x9'),'event':_0xf689('0xa'),'condition':_0xf689('0xb'),'callback':afterUpdate},{'channel':_0xf689('0x6'),'model':'ChatMessage','event':_0xf689('0x7'),'condition':_0xf689('0xc'),'callback':afterCreateMessage},{'channel':_0xf689('0x6'),'model':'ChatOfflineMessage','event':_0xf689('0x7'),'condition':_0xf689('0xc'),'callback':afterCreateOfflineMessage},{'channel':'Sms','model':'SmsInteraction','event':_0xf689('0x7'),'condition':_0xf689('0x8'),'callback':afterCreate},{'channel':_0xf689('0xd'),'model':_0xf689('0xe'),'event':_0xf689('0xa'),'condition':_0xf689('0xb'),'callback':afterUpdate},{'channel':'Sms','model':_0xf689('0xf'),'event':_0xf689('0x7'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Whatsapp','model':'WhatsappInteraction','event':_0xf689('0x7'),'condition':_0xf689('0x8'),'callback':afterCreate},{'channel':_0xf689('0x10'),'model':'WhatsappInteraction','event':_0xf689('0xa'),'condition':_0xf689('0xb'),'callback':afterUpdate},{'channel':_0xf689('0x10'),'model':_0xf689('0x11'),'event':_0xf689('0x7'),'condition':_0xf689('0xc'),'callback':afterCreateMessage},{'channel':_0xf689('0x12'),'model':'FaxInteraction','event':_0xf689('0x7'),'condition':_0xf689('0x8'),'callback':afterCreate},{'channel':_0xf689('0x12'),'model':_0xf689('0x13'),'event':_0xf689('0xa'),'condition':_0xf689('0xb'),'callback':afterUpdate},{'channel':_0xf689('0x12'),'model':_0xf689('0x14'),'event':_0xf689('0x7'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Mail','model':'MailInteraction','event':_0xf689('0x7'),'condition':_0xf689('0x8'),'callback':afterCreate},{'channel':_0xf689('0x15'),'model':'MailInteraction','event':_0xf689('0xa'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0xf689('0x15'),'model':_0xf689('0x16'),'event':'afterCreate','condition':_0xf689('0xc'),'callback':afterCreateMessage},{'channel':_0xf689('0x17'),'model':_0xf689('0x18'),'event':_0xf689('0x7'),'condition':'newinteraction','callback':afterCreate},{'channel':_0xf689('0x17'),'model':'OpenchannelInteraction','event':_0xf689('0xa'),'condition':_0xf689('0xb'),'callback':afterUpdate},{'channel':_0xf689('0x17'),'model':_0xf689('0x19'),'event':_0xf689('0x7'),'condition':'newmessage','callback':afterCreateMessage}];function request(_0x1538ab){return client[_0xf689('0x1a')](_0xf689('0x1b'),_0x1538ab)[_0xf689('0x1c')](function(_0x3b98b1){logger['info'](_0xf689('0x1d'),_0xf689('0x1b'),_0x3b98b1);if(_0x3b98b1[_0xf689('0x1e')]){if(_0x3b98b1[_0xf689('0x1e')][_0xf689('0x1f')]===0x1f4){logger[_0xf689('0x1e')](_0xf689('0x1d'),'EventManager',_0x3b98b1['error']);}}})['catch'](function(_0x3fb6ea){logger[_0xf689('0x1e')](_0xf689('0x1d'),_0xf689('0x1b'),_0x3fb6ea);});}function afterCreateMessage(_0x564ce6){return function(_0x432ce1){_0x432ce1=_0x432ce1['get']({'plain':!![]});_0x432ce1['channel']=_0x564ce6;_0x432ce1[_0xf689('0x20')]=_0x564ce6;_0x432ce1[_0xf689('0x21')]=_0x432ce1['direction'];Promise[_0xf689('0x22')]()['then'](function(){if(typeof _0x432ce1[_0xf689('0x23')]===_0xf689('0x24'))return null;var _0x550791=_0xf689('0x25')+_0x432ce1[_0xf689('0x23')];return db['sequelize']['query'](_0x550791,{'type':db[_0xf689('0x26')][_0xf689('0x27')]['SELECT'],'raw':!![]});})[_0xf689('0x1c')](function(_0x256a4e){if(_0x256a4e){_0x432ce1[_0xf689('0x28')]=_0x256a4e[0x0];}if(typeof _0x432ce1[_0xf689('0x29')]==='undefined')return;return getAgent(_0x432ce1[_0xf689('0x29')]);})['then'](function(_0xbd5ba7){if(_0xbd5ba7){_0x432ce1['interface']=util[_0xf689('0x2a')](_0xf689('0x2b'),_0xbd5ba7[_0xf689('0x2c')]);_0x432ce1['agent']=_0xbd5ba7;_0x432ce1[_0xf689('0x2d')]=_0x564ce6;return request({'event':_0xf689('0x2e'),'message':_0x432ce1});}else{return request({'event':_0xf689('0x2f'),'message':_0x432ce1});}})[_0xf689('0x30')](function(_0x3e54f9){logger[_0xf689('0x1e')](_0xf689('0x1d'),'AfterCreateMessage',_0x3e54f9);});};}function afterCreateOfflineMessage(_0x35f957){return function(_0x58f04a){_0x58f04a=_0x58f04a[_0xf689('0x31')]({'plain':!![]});_0x58f04a[_0xf689('0x2d')]=_0x35f957;_0x58f04a[_0xf689('0x20')]=_0x35f957;_0x58f04a[_0xf689('0x21')]=_0xf689('0x32');return request({'event':_0x58f04a[_0xf689('0x21')],'message':_0x58f04a});};}function afterCreate(_0x21d890,_0x2c9129){return function(_0x3cd3cc){_0x3cd3cc=_0x3cd3cc[_0xf689('0x31')]({'plain':!![]});_0x3cd3cc[_0xf689('0x2d')]=_0x21d890;_0x3cd3cc[_0xf689('0x20')]=_0x21d890;_0x3cd3cc['event']='opened';Promise[_0xf689('0x22')]()[_0xf689('0x1c')](function(){var _0x5e11ff=_0xf689('0x25')+_0x3cd3cc['ContactId'];return db[_0xf689('0x33')][_0xf689('0x34')](_0x5e11ff,{'type':db[_0xf689('0x26')][_0xf689('0x27')][_0xf689('0x35')],'raw':!![]});})[_0xf689('0x1c')](function(_0x150035){if(_0x150035){_0x3cd3cc['contact']=_0x150035[0x0];}if(typeof _0x3cd3cc[_0xf689('0x29')]===_0xf689('0x24'))return;return getAgent(_0x3cd3cc[_0xf689('0x29')]);})['then'](function(_0x270a0d){if(_0x270a0d){_0x3cd3cc[_0xf689('0x36')]=util[_0xf689('0x2a')](_0xf689('0x2b'),_0x270a0d[_0xf689('0x2c')]);_0x3cd3cc[_0xf689('0x37')]=_0x270a0d;}return request({'event':_0x2c9129,'message':_0x3cd3cc});})['catch'](function(_0x186015){logger[_0xf689('0x1e')]('Trigger,\x20%s',_0xf689('0x38'),_0x186015);});};}function afterUpdate(_0x29e23b){return function(_0x5f4dd6){var _0x221e85=_0x5f4dd6[_0xf689('0x39')](_0xf689('0x3a'))&&_0x5f4dd6[_0xf689('0x3a')];var _0x1e7a7f=_0x5f4dd6[_0xf689('0x39')]('substatus');if(_0x221e85||_0x1e7a7f){var _0x10edec=_0x221e85?'closedinteraction':_0xf689('0x3b');var _0x2731a7=_0x5f4dd6[_0xf689('0x31')]({'plain':!![]});_0x2731a7[_0xf689('0x2d')]=_0x29e23b;_0x2731a7['motionChannel']=_0x29e23b;_0x2731a7[_0xf689('0x21')]=_0x221e85?'closed':_0xf689('0x3b');var _0x3085b8=_0xf689('0x25')+_0x2731a7[_0xf689('0x23')];return db[_0xf689('0x33')]['query'](_0x3085b8,{'type':db[_0xf689('0x26')][_0xf689('0x27')]['SELECT'],'raw':!![]})['then'](function(_0x7dbb2e){if(_0x7dbb2e){_0x2731a7[_0xf689('0x28')]=_0x7dbb2e[0x0];}if(typeof _0x2731a7[_0xf689('0x29')]===_0xf689('0x24'))return;return getAgent(_0x2731a7[_0xf689('0x29')]);})[_0xf689('0x1c')](function(_0x285cd1){if(_0x285cd1){_0x2731a7[_0xf689('0x36')]=util[_0xf689('0x2a')](_0xf689('0x2b'),_0x285cd1['name']);_0x2731a7[_0xf689('0x37')]=_0x285cd1;}return request({'event':_0x10edec,'message':_0x2731a7});})[_0xf689('0x30')](function(_0x2ab781){logger[_0xf689('0x1e')](_0xf689('0x1d'),'AfterUpdate',_0x2ab781);});}};}function getAgent(_0x268b1b){return db['User'][_0xf689('0x3c')]({'where':{'id':_0x268b1b},'attributes':['id','name',_0xf689('0x3d'),'email',_0xf689('0x3e')],'raw':!![]})[_0xf689('0x1c')](function(_0x3b5568){return _0x3b5568;});}exports[_0xf689('0x3f')]=function(){for(var _0x1a8c63=0x0;_0x1a8c63<triggers[_0xf689('0x40')];_0x1a8c63+=0x1){if(db[_0xf689('0x41')](triggers[_0x1a8c63][_0xf689('0x42')])){db[triggers[_0x1a8c63][_0xf689('0x42')]][_0xf689('0x43')](triggers[_0x1a8c63]['event'],triggers[_0x1a8c63]['callback'](triggers[_0x1a8c63][_0xf689('0x2d')]['toLowerCase'](),triggers[_0x1a8c63][_0xf689('0x44')]));}}};