aeb1f37ec7e300fb1e205a369ea05ed4c8116687
[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 _0xf8aa=['FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','then','info','EventManager','error','code','catch','Trigger,\x20%s','get','event','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','query','Sequelize','QueryTypes','SELECT','contact','UserId','interface','format','SIP/%s','name','incomingmessage','AfterCreateMessage','motionChannel','offlineMessage','channel','opened','resolve','sequelize','AfterCreate','changed','closed','substatus','agent','AfterUpdate','User','find','fullname','email','internal','default','length','hasOwnProperty','model','hook','toLowerCase','condition','util','../../mysqldb','jayson/promise','../logger','triggers','http','Chat','ChatInteraction','afterCreate','closedinteraction','ChatMessage','newmessage','ChatOfflineMessage','Sms','SmsInteraction','newinteraction','afterUpdate','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax'];(function(_0x2d9c6a,_0x59393d){var _0xf3c918=function(_0x4f3f26){while(--_0x4f3f26){_0x2d9c6a['push'](_0x2d9c6a['shift']());}};_0xf3c918(++_0x59393d);}(_0xf8aa,0x86));var _0xaf8a=function(_0x3e5086,_0x48f4a2){_0x3e5086=_0x3e5086-0x0;var _0xfeb102=_0xf8aa[_0x3e5086];return _0xfeb102;};'use strict';var util=require(_0xaf8a('0x0'));var db=require(_0xaf8a('0x1'))['db'];var jayson=require(_0xaf8a('0x2'));var logger=require(_0xaf8a('0x3'))(_0xaf8a('0x4'));var client=jayson['client'][_0xaf8a('0x5')]({'port':0x232a});var triggers=[{'channel':_0xaf8a('0x6'),'model':_0xaf8a('0x7'),'event':_0xaf8a('0x8'),'condition':'newinteraction','callback':afterCreate},{'channel':_0xaf8a('0x6'),'model':_0xaf8a('0x7'),'event':'afterUpdate','condition':_0xaf8a('0x9'),'callback':afterUpdate},{'channel':_0xaf8a('0x6'),'model':_0xaf8a('0xa'),'event':_0xaf8a('0x8'),'condition':_0xaf8a('0xb'),'callback':afterCreateMessage},{'channel':'Chat','model':_0xaf8a('0xc'),'event':_0xaf8a('0x8'),'condition':_0xaf8a('0xb'),'callback':afterCreateOfflineMessage},{'channel':_0xaf8a('0xd'),'model':_0xaf8a('0xe'),'event':_0xaf8a('0x8'),'condition':_0xaf8a('0xf'),'callback':afterCreate},{'channel':'Sms','model':'SmsInteraction','event':_0xaf8a('0x10'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0xaf8a('0xd'),'model':_0xaf8a('0x11'),'event':'afterCreate','condition':_0xaf8a('0xb'),'callback':afterCreateMessage},{'channel':_0xaf8a('0x12'),'model':_0xaf8a('0x13'),'event':_0xaf8a('0x8'),'condition':_0xaf8a('0xf'),'callback':afterCreate},{'channel':_0xaf8a('0x12'),'model':_0xaf8a('0x13'),'event':_0xaf8a('0x10'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0xaf8a('0x12'),'model':_0xaf8a('0x14'),'event':_0xaf8a('0x8'),'condition':_0xaf8a('0xb'),'callback':afterCreateMessage},{'channel':_0xaf8a('0x15'),'model':_0xaf8a('0x16'),'event':_0xaf8a('0x8'),'condition':'newinteraction','callback':afterCreate},{'channel':_0xaf8a('0x15'),'model':_0xaf8a('0x16'),'event':_0xaf8a('0x10'),'condition':_0xaf8a('0x9'),'callback':afterUpdate},{'channel':_0xaf8a('0x15'),'model':_0xaf8a('0x17'),'event':_0xaf8a('0x8'),'condition':_0xaf8a('0xb'),'callback':afterCreateMessage},{'channel':_0xaf8a('0x18'),'model':_0xaf8a('0x19'),'event':_0xaf8a('0x8'),'condition':_0xaf8a('0xf'),'callback':afterCreate},{'channel':_0xaf8a('0x18'),'model':_0xaf8a('0x19'),'event':'afterUpdate','condition':_0xaf8a('0x9'),'callback':afterUpdate},{'channel':'Mail','model':_0xaf8a('0x1a'),'event':'afterCreate','condition':_0xaf8a('0xb'),'callback':afterCreateMessage},{'channel':_0xaf8a('0x1b'),'model':_0xaf8a('0x1c'),'event':'afterCreate','condition':_0xaf8a('0xf'),'callback':afterCreate},{'channel':_0xaf8a('0x1b'),'model':'OpenchannelInteraction','event':_0xaf8a('0x10'),'condition':_0xaf8a('0x9'),'callback':afterUpdate},{'channel':_0xaf8a('0x1b'),'model':_0xaf8a('0x1d'),'event':'afterCreate','condition':_0xaf8a('0xb'),'callback':afterCreateMessage}];function request(_0x248a14){return client['request']('EventManager',_0x248a14)[_0xaf8a('0x1e')](function(_0x416ceb){logger[_0xaf8a('0x1f')]('Trigger,\x20%s',_0xaf8a('0x20'),_0x416ceb);if(_0x416ceb[_0xaf8a('0x21')]){if(_0x416ceb[_0xaf8a('0x21')][_0xaf8a('0x22')]===0x1f4){logger['error']('Trigger,\x20%s',_0xaf8a('0x20'),_0x416ceb['error']);}}})[_0xaf8a('0x23')](function(_0x412ca5){logger[_0xaf8a('0x21')](_0xaf8a('0x24'),'EventManager',_0x412ca5);});}function afterCreateMessage(_0x454d42){return function(_0x44cedb){_0x44cedb=_0x44cedb[_0xaf8a('0x25')]({'plain':!![]});_0x44cedb['channel']=_0x454d42;_0x44cedb['motionChannel']=_0x454d42;_0x44cedb[_0xaf8a('0x26')]=_0x44cedb['direction'];Promise['resolve']()[_0xaf8a('0x1e')](function(){if(typeof _0x44cedb[_0xaf8a('0x27')]===_0xaf8a('0x28'))return null;var _0x4ef0b7=_0xaf8a('0x29')+_0x44cedb[_0xaf8a('0x27')];return db['sequelize'][_0xaf8a('0x2a')](_0x4ef0b7,{'type':db[_0xaf8a('0x2b')][_0xaf8a('0x2c')][_0xaf8a('0x2d')],'raw':!![]});})[_0xaf8a('0x1e')](function(_0x44e353){if(_0x44e353){_0x44cedb[_0xaf8a('0x2e')]=_0x44e353[0x0];}if(typeof _0x44cedb[_0xaf8a('0x2f')]===_0xaf8a('0x28'))return;return getAgent(_0x44cedb[_0xaf8a('0x2f')]);})[_0xaf8a('0x1e')](function(_0x5f08b7){if(_0x5f08b7){_0x44cedb[_0xaf8a('0x30')]=util[_0xaf8a('0x31')](_0xaf8a('0x32'),_0x5f08b7[_0xaf8a('0x33')]);_0x44cedb['agent']=_0x5f08b7;_0x44cedb['channel']=_0x454d42;return request({'event':_0xaf8a('0x34'),'message':_0x44cedb});}else{return request({'event':'outgoingmessage','message':_0x44cedb});}})['catch'](function(_0x4fbeb3){logger['error'](_0xaf8a('0x24'),_0xaf8a('0x35'),_0x4fbeb3);});};}function afterCreateOfflineMessage(_0x2e0355){return function(_0x304aa3){_0x304aa3=_0x304aa3[_0xaf8a('0x25')]({'plain':!![]});_0x304aa3['channel']=_0x2e0355;_0x304aa3[_0xaf8a('0x36')]=_0x2e0355;_0x304aa3[_0xaf8a('0x26')]=_0xaf8a('0x37');return request({'event':_0x304aa3[_0xaf8a('0x26')],'message':_0x304aa3});};}function afterCreate(_0x44bcc6,_0x135311){return function(_0x3dfc63){var _0x1c51fe=_0x3dfc63[_0xaf8a('0x25')]({'plain':!![]});_0x1c51fe[_0xaf8a('0x38')]=_0x44bcc6;_0x1c51fe[_0xaf8a('0x36')]=_0x44bcc6;_0x1c51fe['event']=_0xaf8a('0x39');Promise[_0xaf8a('0x3a')]()['then'](function(){var _0x2d9977=_0xaf8a('0x29')+_0x1c51fe[_0xaf8a('0x27')];return db[_0xaf8a('0x3b')]['query'](_0x2d9977,{'type':db[_0xaf8a('0x2b')]['QueryTypes'][_0xaf8a('0x2d')],'raw':!![]});})[_0xaf8a('0x1e')](function(_0x2a4cbb){if(_0x2a4cbb){_0x1c51fe[_0xaf8a('0x2e')]=_0x2a4cbb[0x0];}if(_0x1c51fe[_0xaf8a('0x2f')]){return getAgent(_0x1c51fe[_0xaf8a('0x2f')]);}return;})['then'](function(_0x3612f2){if(_0x3612f2){_0x1c51fe['interface']=util[_0xaf8a('0x31')](_0xaf8a('0x32'),_0x3612f2[_0xaf8a('0x33')]);_0x1c51fe['agent']=_0x3612f2;}return request({'event':_0x135311,'message':_0x1c51fe});})['catch'](function(_0x5522a2){logger[_0xaf8a('0x21')](_0xaf8a('0x24'),_0xaf8a('0x3c'),_0x5522a2);});};}function afterUpdate(_0x214d3b){return function(_0x288bd7){var _0x181339=_0x288bd7[_0xaf8a('0x3d')](_0xaf8a('0x3e'))&&_0x288bd7[_0xaf8a('0x3e')];var _0x35b34d=_0x288bd7[_0xaf8a('0x3d')](_0xaf8a('0x3f'));if(_0x181339||_0x35b34d){var _0x499642=_0x181339?_0xaf8a('0x9'):_0xaf8a('0x3f');var _0x49b2ec=_0x288bd7[_0xaf8a('0x25')]({'plain':!![]});_0x49b2ec[_0xaf8a('0x38')]=_0x214d3b;_0x49b2ec[_0xaf8a('0x36')]=_0x214d3b;_0x49b2ec[_0xaf8a('0x26')]=_0x181339?_0xaf8a('0x3e'):_0xaf8a('0x3f');var _0x4f9e08=_0xaf8a('0x29')+_0x49b2ec[_0xaf8a('0x27')];return db[_0xaf8a('0x3b')][_0xaf8a('0x2a')](_0x4f9e08,{'type':db['Sequelize'][_0xaf8a('0x2c')]['SELECT'],'raw':!![]})['then'](function(_0x2796d6){if(_0x2796d6){_0x49b2ec['contact']=_0x2796d6[0x0];}if(typeof _0x49b2ec['UserId']===_0xaf8a('0x28'))return;return getAgent(_0x49b2ec['UserId']);})[_0xaf8a('0x1e')](function(_0x2b565b){if(_0x2b565b){_0x49b2ec['interface']=util[_0xaf8a('0x31')](_0xaf8a('0x32'),_0x2b565b[_0xaf8a('0x33')]);_0x49b2ec[_0xaf8a('0x40')]=_0x2b565b;}return request({'event':_0x499642,'message':_0x49b2ec});})['catch'](function(_0x51c60c){logger['error'](_0xaf8a('0x24'),_0xaf8a('0x41'),_0x51c60c);});}};}function getAgent(_0x1c4ca2){return db[_0xaf8a('0x42')][_0xaf8a('0x43')]({'where':{'id':_0x1c4ca2},'attributes':['id',_0xaf8a('0x33'),_0xaf8a('0x44'),_0xaf8a('0x45'),_0xaf8a('0x46')],'raw':!![]})[_0xaf8a('0x1e')](function(_0x510059){return _0x510059;});}exports[_0xaf8a('0x47')]=function(){for(var _0x49d462=0x0;_0x49d462<triggers[_0xaf8a('0x48')];_0x49d462+=0x1){if(db[_0xaf8a('0x49')](triggers[_0x49d462][_0xaf8a('0x4a')])){db[triggers[_0x49d462][_0xaf8a('0x4a')]][_0xaf8a('0x4b')](triggers[_0x49d462][_0xaf8a('0x26')],triggers[_0x49d462]['callback'](triggers[_0x49d462][_0xaf8a('0x38')][_0xaf8a('0x4c')](),triggers[_0x49d462][_0xaf8a('0x4d')]));}}};