Built motion from commit 52c8a02d.|2.6.29
[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 _0xd096=['find','fullname','email','default','length','model','hook','callback','toLowerCase','condition','util','../../mysqldb','jayson/promise','../logger','triggers','client','http','Chat','ChatInteraction','afterCreate','newinteraction','afterUpdate','closedinteraction','ChatMessage','ChatOfflineMessage','newmessage','SmsInteraction','Sms','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','request','EventManager','then','info','Trigger,\x20%s','error','code','catch','get','event','direction','resolve','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','query','Sequelize','QueryTypes','SELECT','interface','format','SIP/%s','name','agent','incomingmessage','outgoingmessage','AfterCreateMessage','channel','motionChannel','offlineMessage','opened','contact','UserId','changed','substatus','closed','sequelize','AfterUpdate'];(function(_0x2319c7,_0x171cb9){var _0x136a90=function(_0x13a28b){while(--_0x13a28b){_0x2319c7['push'](_0x2319c7['shift']());}};_0x136a90(++_0x171cb9);}(_0xd096,0xa6));var _0x6d09=function(_0x34d9af,_0x4263de){_0x34d9af=_0x34d9af-0x0;var _0xe7364b=_0xd096[_0x34d9af];return _0xe7364b;};'use strict';var util=require(_0x6d09('0x0'));var db=require(_0x6d09('0x1'))['db'];var jayson=require(_0x6d09('0x2'));var logger=require(_0x6d09('0x3'))(_0x6d09('0x4'));var client=jayson[_0x6d09('0x5')][_0x6d09('0x6')]({'port':0x232a});var triggers=[{'channel':_0x6d09('0x7'),'model':_0x6d09('0x8'),'event':_0x6d09('0x9'),'condition':_0x6d09('0xa'),'callback':afterCreate},{'channel':'Chat','model':'ChatInteraction','event':_0x6d09('0xb'),'condition':_0x6d09('0xc'),'callback':afterUpdate},{'channel':_0x6d09('0x7'),'model':_0x6d09('0xd'),'event':_0x6d09('0x9'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x6d09('0x7'),'model':_0x6d09('0xe'),'event':_0x6d09('0x9'),'condition':_0x6d09('0xf'),'callback':afterCreateOfflineMessage},{'channel':'Sms','model':_0x6d09('0x10'),'event':_0x6d09('0x9'),'condition':_0x6d09('0xa'),'callback':afterCreate},{'channel':_0x6d09('0x11'),'model':'SmsInteraction','event':_0x6d09('0xb'),'condition':_0x6d09('0xc'),'callback':afterUpdate},{'channel':_0x6d09('0x11'),'model':_0x6d09('0x12'),'event':_0x6d09('0x9'),'condition':_0x6d09('0xf'),'callback':afterCreateMessage},{'channel':_0x6d09('0x13'),'model':_0x6d09('0x14'),'event':'afterCreate','condition':_0x6d09('0xa'),'callback':afterCreate},{'channel':_0x6d09('0x13'),'model':_0x6d09('0x14'),'event':_0x6d09('0xb'),'condition':_0x6d09('0xc'),'callback':afterUpdate},{'channel':_0x6d09('0x13'),'model':_0x6d09('0x15'),'event':_0x6d09('0x9'),'condition':_0x6d09('0xf'),'callback':afterCreateMessage},{'channel':_0x6d09('0x16'),'model':_0x6d09('0x17'),'event':'afterCreate','condition':_0x6d09('0xa'),'callback':afterCreate},{'channel':'Fax','model':'FaxInteraction','event':_0x6d09('0xb'),'condition':_0x6d09('0xc'),'callback':afterUpdate},{'channel':_0x6d09('0x16'),'model':_0x6d09('0x18'),'event':'afterCreate','condition':_0x6d09('0xf'),'callback':afterCreateMessage},{'channel':_0x6d09('0x19'),'model':_0x6d09('0x1a'),'event':_0x6d09('0x9'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x6d09('0x19'),'model':_0x6d09('0x1a'),'event':'afterUpdate','condition':_0x6d09('0xc'),'callback':afterUpdate},{'channel':_0x6d09('0x19'),'model':_0x6d09('0x1b'),'event':_0x6d09('0x9'),'condition':_0x6d09('0xf'),'callback':afterCreateMessage},{'channel':_0x6d09('0x1c'),'model':_0x6d09('0x1d'),'event':_0x6d09('0x9'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x6d09('0x1c'),'model':_0x6d09('0x1d'),'event':'afterUpdate','condition':_0x6d09('0xc'),'callback':afterUpdate},{'channel':_0x6d09('0x1c'),'model':'OpenchannelMessage','event':_0x6d09('0x9'),'condition':_0x6d09('0xf'),'callback':afterCreateMessage}];function request(_0x34c8eb){return client[_0x6d09('0x1e')](_0x6d09('0x1f'),_0x34c8eb)[_0x6d09('0x20')](function(_0x5baee0){logger[_0x6d09('0x21')](_0x6d09('0x22'),_0x6d09('0x1f'),_0x5baee0);if(_0x5baee0[_0x6d09('0x23')]){if(_0x5baee0['error'][_0x6d09('0x24')]===0x1f4){logger[_0x6d09('0x23')](_0x6d09('0x22'),_0x6d09('0x1f'),_0x5baee0[_0x6d09('0x23')]);}}})[_0x6d09('0x25')](function(_0x57970d){logger['error']('Trigger,\x20%s',_0x6d09('0x1f'),_0x57970d);});}function afterCreateMessage(_0x29a792){return function(_0x4ef955){_0x4ef955=_0x4ef955[_0x6d09('0x26')]({'plain':!![]});_0x4ef955['channel']=_0x29a792;_0x4ef955['motionChannel']=_0x29a792;_0x4ef955[_0x6d09('0x27')]=_0x4ef955[_0x6d09('0x28')];Promise[_0x6d09('0x29')]()[_0x6d09('0x20')](function(){if(typeof _0x4ef955[_0x6d09('0x2a')]===_0x6d09('0x2b'))return null;var _0x1272ae=_0x6d09('0x2c')+_0x4ef955[_0x6d09('0x2a')];return db['sequelize'][_0x6d09('0x2d')](_0x1272ae,{'type':db[_0x6d09('0x2e')][_0x6d09('0x2f')][_0x6d09('0x30')],'raw':!![]});})[_0x6d09('0x20')](function(_0x7b9da9){if(_0x7b9da9){_0x4ef955['contact']=_0x7b9da9[0x0];}if(typeof _0x4ef955['UserId']===_0x6d09('0x2b'))return;return getAgent(_0x4ef955['UserId']);})['then'](function(_0x583a65){if(_0x583a65){_0x4ef955[_0x6d09('0x31')]=util[_0x6d09('0x32')](_0x6d09('0x33'),_0x583a65[_0x6d09('0x34')]);_0x4ef955[_0x6d09('0x35')]=_0x583a65;_0x4ef955['channel']=_0x29a792;return request({'event':_0x6d09('0x36'),'message':_0x4ef955});}else{return request({'event':_0x6d09('0x37'),'message':_0x4ef955});}})[_0x6d09('0x25')](function(_0x2fadc0){logger[_0x6d09('0x23')](_0x6d09('0x22'),_0x6d09('0x38'),_0x2fadc0);});};}function afterCreateOfflineMessage(_0x3abc9d){return function(_0x22d991){_0x22d991=_0x22d991[_0x6d09('0x26')]({'plain':!![]});_0x22d991[_0x6d09('0x39')]=_0x3abc9d;_0x22d991[_0x6d09('0x3a')]=_0x3abc9d;_0x22d991[_0x6d09('0x27')]=_0x6d09('0x3b');return request({'event':_0x22d991[_0x6d09('0x27')],'message':_0x22d991});};}function afterCreate(_0x1c8eb2,_0x2a5715){return function(_0x1efe09){_0x1efe09=_0x1efe09['get']({'plain':!![]});_0x1efe09[_0x6d09('0x39')]=_0x1c8eb2;_0x1efe09['motionChannel']=_0x1c8eb2;_0x1efe09[_0x6d09('0x27')]=_0x6d09('0x3c');Promise[_0x6d09('0x29')]()[_0x6d09('0x20')](function(){var _0x3e2bb9=_0x6d09('0x2c')+_0x1efe09[_0x6d09('0x2a')];return db['sequelize'][_0x6d09('0x2d')](_0x3e2bb9,{'type':db['Sequelize'][_0x6d09('0x2f')]['SELECT'],'raw':!![]});})['then'](function(_0x4d0ad3){if(_0x4d0ad3){_0x1efe09[_0x6d09('0x3d')]=_0x4d0ad3[0x0];}if(typeof _0x1efe09[_0x6d09('0x3e')]==='undefined')return;return getAgent(_0x1efe09[_0x6d09('0x3e')]);})['then'](function(_0x5dbfa3){if(_0x5dbfa3){_0x1efe09[_0x6d09('0x31')]=util[_0x6d09('0x32')]('SIP/%s',_0x5dbfa3['name']);_0x1efe09['agent']=_0x5dbfa3;}return request({'event':_0x2a5715,'message':_0x1efe09});})['catch'](function(_0x24dc3f){logger[_0x6d09('0x23')](_0x6d09('0x22'),'AfterCreate',_0x24dc3f);});};}function afterUpdate(_0x1d0d65){return function(_0x219b38){var _0x5beff2=_0x219b38[_0x6d09('0x3f')]('closed')&&_0x219b38['closed'];var _0x1c9270=_0x219b38['changed'](_0x6d09('0x40'));if(_0x5beff2||_0x1c9270){var _0x528f74=_0x5beff2?_0x6d09('0xc'):'substatus';var _0x101b24=_0x219b38[_0x6d09('0x26')]({'plain':!![]});_0x101b24[_0x6d09('0x39')]=_0x1d0d65;_0x101b24['motionChannel']=_0x1d0d65;_0x101b24[_0x6d09('0x27')]=_0x5beff2?_0x6d09('0x41'):_0x6d09('0x40');var _0x11ff8d=_0x6d09('0x2c')+_0x101b24[_0x6d09('0x2a')];return db[_0x6d09('0x42')][_0x6d09('0x2d')](_0x11ff8d,{'type':db[_0x6d09('0x2e')]['QueryTypes'][_0x6d09('0x30')],'raw':!![]})[_0x6d09('0x20')](function(_0x457456){if(_0x457456){_0x101b24[_0x6d09('0x3d')]=_0x457456[0x0];}if(typeof _0x101b24[_0x6d09('0x3e')]===_0x6d09('0x2b'))return;return getAgent(_0x101b24['UserId']);})[_0x6d09('0x20')](function(_0x1034de){if(_0x1034de){_0x101b24[_0x6d09('0x31')]=util['format'](_0x6d09('0x33'),_0x1034de[_0x6d09('0x34')]);_0x101b24[_0x6d09('0x35')]=_0x1034de;}return request({'event':_0x528f74,'message':_0x101b24});})['catch'](function(_0x31d27e){logger['error'](_0x6d09('0x22'),_0x6d09('0x43'),_0x31d27e);});}};}function getAgent(_0x3c0ad9){return db['User'][_0x6d09('0x44')]({'where':{'id':_0x3c0ad9},'attributes':['id',_0x6d09('0x34'),_0x6d09('0x45'),_0x6d09('0x46'),'internal'],'raw':!![]})['then'](function(_0x4ce460){return _0x4ce460;});}exports[_0x6d09('0x47')]=function(){for(var _0x14be1d=0x0;_0x14be1d<triggers[_0x6d09('0x48')];_0x14be1d+=0x1){if(db['hasOwnProperty'](triggers[_0x14be1d][_0x6d09('0x49')])){db[triggers[_0x14be1d][_0x6d09('0x49')]][_0x6d09('0x4a')](triggers[_0x14be1d][_0x6d09('0x27')],triggers[_0x14be1d][_0x6d09('0x4b')](triggers[_0x14be1d][_0x6d09('0x39')][_0x6d09('0x4c')](),triggers[_0x14be1d][_0x6d09('0x4d')]));}}};