5e9a7fbcf1f6f0475cfa22a9dbfb3689e44e847b
[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 _0x8cb7=['get','channel','motionChannel','event','direction','resolve','ContactId','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','QueryTypes','SELECT','contact','UserId','format','agent','outgoingmessage','AfterCreateMessage','offlineMessage','query','Sequelize','undefined','interface','SIP/%s','AfterCreate','closed','changed','substatus','name','User','find','fullname','email','internal','hasOwnProperty','model','hook','callback','condition','util','../../mysqldb','jayson/promise','../logger','triggers','client','http','afterCreate','Chat','ChatInteraction','afterUpdate','closedinteraction','ChatOfflineMessage','newmessage','Sms','SmsInteraction','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','FaxInteraction','Fax','Mail','MailInteraction','newinteraction','MailMessage','OpenchannelInteraction','OpenchannelMessage','EventManager','then','info','error','Trigger,\x20%s','catch'];(function(_0x270b31,_0x234254){var _0x396380=function(_0x48a7f9){while(--_0x48a7f9){_0x270b31['push'](_0x270b31['shift']());}};_0x396380(++_0x234254);}(_0x8cb7,0xb6));var _0x78cb=function(_0x6f1a87,_0x5d5bcf){_0x6f1a87=_0x6f1a87-0x0;var _0x2495c7=_0x8cb7[_0x6f1a87];return _0x2495c7;};'use strict';var util=require(_0x78cb('0x0'));var db=require(_0x78cb('0x1'))['db'];var jayson=require(_0x78cb('0x2'));var logger=require(_0x78cb('0x3'))(_0x78cb('0x4'));var client=jayson[_0x78cb('0x5')][_0x78cb('0x6')]({'port':0x232a});var triggers=[{'channel':'Chat','model':'ChatInteraction','event':_0x78cb('0x7'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x78cb('0x8'),'model':_0x78cb('0x9'),'event':_0x78cb('0xa'),'condition':_0x78cb('0xb'),'callback':afterUpdate},{'channel':_0x78cb('0x8'),'model':'ChatMessage','event':_0x78cb('0x7'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x78cb('0x8'),'model':_0x78cb('0xc'),'event':_0x78cb('0x7'),'condition':_0x78cb('0xd'),'callback':afterCreateOfflineMessage},{'channel':_0x78cb('0xe'),'model':_0x78cb('0xf'),'event':'afterCreate','condition':'newinteraction','callback':afterCreate},{'channel':_0x78cb('0xe'),'model':_0x78cb('0xf'),'event':_0x78cb('0xa'),'condition':_0x78cb('0xb'),'callback':afterUpdate},{'channel':_0x78cb('0xe'),'model':_0x78cb('0x10'),'event':_0x78cb('0x7'),'condition':_0x78cb('0xd'),'callback':afterCreateMessage},{'channel':_0x78cb('0x11'),'model':_0x78cb('0x12'),'event':_0x78cb('0x7'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x78cb('0x11'),'model':_0x78cb('0x12'),'event':_0x78cb('0xa'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x78cb('0x11'),'model':_0x78cb('0x13'),'event':_0x78cb('0x7'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Fax','model':_0x78cb('0x14'),'event':_0x78cb('0x7'),'condition':'newinteraction','callback':afterCreate},{'channel':'Fax','model':'FaxInteraction','event':_0x78cb('0xa'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x78cb('0x15'),'model':'FaxMessage','event':_0x78cb('0x7'),'condition':_0x78cb('0xd'),'callback':afterCreateMessage},{'channel':_0x78cb('0x16'),'model':_0x78cb('0x17'),'event':_0x78cb('0x7'),'condition':_0x78cb('0x18'),'callback':afterCreate},{'channel':_0x78cb('0x16'),'model':'MailInteraction','event':_0x78cb('0xa'),'condition':_0x78cb('0xb'),'callback':afterUpdate},{'channel':'Mail','model':_0x78cb('0x19'),'event':'afterCreate','condition':_0x78cb('0xd'),'callback':afterCreateMessage},{'channel':'Openchannel','model':_0x78cb('0x1a'),'event':_0x78cb('0x7'),'condition':_0x78cb('0x18'),'callback':afterCreate},{'channel':'Openchannel','model':_0x78cb('0x1a'),'event':'afterUpdate','condition':_0x78cb('0xb'),'callback':afterUpdate},{'channel':'Openchannel','model':_0x78cb('0x1b'),'event':_0x78cb('0x7'),'condition':_0x78cb('0xd'),'callback':afterCreateMessage}];function request(_0x37a371){return client['request'](_0x78cb('0x1c'),_0x37a371)[_0x78cb('0x1d')](function(_0x137ecf){logger[_0x78cb('0x1e')]('Trigger,\x20%s',_0x78cb('0x1c'),_0x137ecf);if(_0x137ecf[_0x78cb('0x1f')]){if(_0x137ecf[_0x78cb('0x1f')]['code']===0x1f4){logger[_0x78cb('0x1f')](_0x78cb('0x20'),_0x78cb('0x1c'),_0x137ecf[_0x78cb('0x1f')]);}}})[_0x78cb('0x21')](function(_0x4a1799){logger['error'](_0x78cb('0x20'),_0x78cb('0x1c'),_0x4a1799);});}function afterCreateMessage(_0x1dbd6c){return function(_0x554a2d){_0x554a2d=_0x554a2d[_0x78cb('0x22')]({'plain':!![]});_0x554a2d[_0x78cb('0x23')]=_0x1dbd6c;_0x554a2d[_0x78cb('0x24')]=_0x1dbd6c;_0x554a2d[_0x78cb('0x25')]=_0x554a2d[_0x78cb('0x26')];Promise[_0x78cb('0x27')]()[_0x78cb('0x1d')](function(){if(typeof _0x554a2d[_0x78cb('0x28')]==='undefined')return null;var _0x290aad=_0x78cb('0x29')+_0x554a2d[_0x78cb('0x28')];return db[_0x78cb('0x2a')]['query'](_0x290aad,{'type':db['Sequelize'][_0x78cb('0x2b')][_0x78cb('0x2c')],'raw':!![]});})[_0x78cb('0x1d')](function(_0x2bc5c8){if(_0x2bc5c8){_0x554a2d[_0x78cb('0x2d')]=_0x2bc5c8[0x0];}if(typeof _0x554a2d['UserId']==='undefined')return;return getAgent(_0x554a2d[_0x78cb('0x2e')]);})[_0x78cb('0x1d')](function(_0x5ce330){if(_0x5ce330){_0x554a2d['interface']=util[_0x78cb('0x2f')]('SIP/%s',_0x5ce330['name']);_0x554a2d[_0x78cb('0x30')]=_0x5ce330;_0x554a2d[_0x78cb('0x23')]=_0x1dbd6c;return request({'event':'incomingmessage','message':_0x554a2d});}else{return request({'event':_0x78cb('0x31'),'message':_0x554a2d});}})[_0x78cb('0x21')](function(_0x2d52fb){logger[_0x78cb('0x1f')](_0x78cb('0x20'),_0x78cb('0x32'),_0x2d52fb);});};}function afterCreateOfflineMessage(_0x34d1ce){return function(_0x540e01){_0x540e01=_0x540e01[_0x78cb('0x22')]({'plain':!![]});_0x540e01[_0x78cb('0x23')]=_0x34d1ce;_0x540e01[_0x78cb('0x24')]=_0x34d1ce;_0x540e01[_0x78cb('0x25')]=_0x78cb('0x33');return request({'event':_0x540e01[_0x78cb('0x25')],'message':_0x540e01});};}function afterCreate(_0x248176,_0x4ee9bf){return function(_0x12e2d6){_0x12e2d6=_0x12e2d6[_0x78cb('0x22')]({'plain':!![]});_0x12e2d6['channel']=_0x248176;_0x12e2d6['motionChannel']=_0x248176;_0x12e2d6[_0x78cb('0x25')]='opened';Promise['resolve']()[_0x78cb('0x1d')](function(){var _0x27f2eb=_0x78cb('0x29')+_0x12e2d6[_0x78cb('0x28')];return db[_0x78cb('0x2a')][_0x78cb('0x34')](_0x27f2eb,{'type':db[_0x78cb('0x35')][_0x78cb('0x2b')][_0x78cb('0x2c')],'raw':!![]});})[_0x78cb('0x1d')](function(_0x18f38c){if(_0x18f38c){_0x12e2d6['contact']=_0x18f38c[0x0];}if(typeof _0x12e2d6[_0x78cb('0x2e')]===_0x78cb('0x36'))return;return getAgent(_0x12e2d6[_0x78cb('0x2e')]);})['then'](function(_0x5de99f){if(_0x5de99f){_0x12e2d6[_0x78cb('0x37')]=util[_0x78cb('0x2f')](_0x78cb('0x38'),_0x5de99f['name']);_0x12e2d6[_0x78cb('0x30')]=_0x5de99f;}return request({'event':_0x4ee9bf,'message':_0x12e2d6});})[_0x78cb('0x21')](function(_0x1e3375){logger[_0x78cb('0x1f')](_0x78cb('0x20'),_0x78cb('0x39'),_0x1e3375);});};}function afterUpdate(_0x4f7bd4){return function(_0x264148){var _0x57405c=_0x264148['changed'](_0x78cb('0x3a'))&&_0x264148[_0x78cb('0x3a')];var _0x53c4c2=_0x264148[_0x78cb('0x3b')](_0x78cb('0x3c'));if(_0x57405c||_0x53c4c2){var _0x575795=_0x57405c?_0x78cb('0xb'):'substatus';var _0xb5e00c=_0x264148[_0x78cb('0x22')]({'plain':!![]});_0xb5e00c[_0x78cb('0x23')]=_0x4f7bd4;_0xb5e00c[_0x78cb('0x24')]=_0x4f7bd4;_0xb5e00c[_0x78cb('0x25')]=_0x57405c?_0x78cb('0x3a'):'substatus';var _0x4c289a=_0x78cb('0x29')+_0xb5e00c['ContactId'];return db['sequelize'][_0x78cb('0x34')](_0x4c289a,{'type':db[_0x78cb('0x35')][_0x78cb('0x2b')]['SELECT'],'raw':!![]})['then'](function(_0x404c3c){if(_0x404c3c){_0xb5e00c[_0x78cb('0x2d')]=_0x404c3c[0x0];}if(typeof _0xb5e00c[_0x78cb('0x2e')]===_0x78cb('0x36'))return;return getAgent(_0xb5e00c[_0x78cb('0x2e')]);})[_0x78cb('0x1d')](function(_0x230a6b){if(_0x230a6b){_0xb5e00c['interface']=util[_0x78cb('0x2f')](_0x78cb('0x38'),_0x230a6b[_0x78cb('0x3d')]);_0xb5e00c['agent']=_0x230a6b;}return request({'event':_0x575795,'message':_0xb5e00c});})['catch'](function(_0x34875c){logger['error'](_0x78cb('0x20'),'AfterUpdate',_0x34875c);});}};}function getAgent(_0x2b22ed){return db[_0x78cb('0x3e')][_0x78cb('0x3f')]({'where':{'id':_0x2b22ed},'attributes':['id',_0x78cb('0x3d'),_0x78cb('0x40'),_0x78cb('0x41'),_0x78cb('0x42')],'raw':!![]})[_0x78cb('0x1d')](function(_0xe531ae){return _0xe531ae;});}exports['default']=function(){for(var _0x3c429e=0x0;_0x3c429e<triggers['length'];_0x3c429e+=0x1){if(db[_0x78cb('0x43')](triggers[_0x3c429e][_0x78cb('0x44')])){db[triggers[_0x3c429e][_0x78cb('0x44')]][_0x78cb('0x45')](triggers[_0x3c429e][_0x78cb('0x25')],triggers[_0x3c429e][_0x78cb('0x46')](triggers[_0x3c429e][_0x78cb('0x23')]['toLowerCase'](),triggers[_0x3c429e][_0x78cb('0x47')]));}}};