Built motion from commit 3c2ce842.|2.6.31
[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 _0xfb9f=['OpenchannelInteraction','closedinteraction','OpenchannelMessage','request','EventManager','error','Trigger,\x20%s','catch','motionChannel','event','direction','resolve','then','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','query','Sequelize','QueryTypes','SELECT','contact','UserId','interface','format','SIP/%s','agent','channel','incomingmessage','outgoingmessage','AfterCreateMessage','offlineMessage','get','opened','sequelize','name','closed','changed','substatus','AfterUpdate','User','find','fullname','email','internal','default','length','hook','callback','condition','util','../../mysqldb','jayson/promise','../logger','triggers','client','http','Chat','ChatInteraction','afterCreate','newinteraction','ChatMessage','newmessage','ChatOfflineMessage','Sms','afterUpdate','SmsMessage','Whatsapp','WhatsappInteraction','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','Openchannel'];(function(_0x15c8da,_0x28c29f){var _0x394166=function(_0x16f05d){while(--_0x16f05d){_0x15c8da['push'](_0x15c8da['shift']());}};_0x394166(++_0x28c29f);}(_0xfb9f,0x1ed));var _0xffb9=function(_0x5d417d,_0x16c60c){_0x5d417d=_0x5d417d-0x0;var _0x145e9d=_0xfb9f[_0x5d417d];return _0x145e9d;};'use strict';var util=require(_0xffb9('0x0'));var db=require(_0xffb9('0x1'))['db'];var jayson=require(_0xffb9('0x2'));var logger=require(_0xffb9('0x3'))(_0xffb9('0x4'));var client=jayson[_0xffb9('0x5')][_0xffb9('0x6')]({'port':0x232a});var triggers=[{'channel':_0xffb9('0x7'),'model':_0xffb9('0x8'),'event':_0xffb9('0x9'),'condition':_0xffb9('0xa'),'callback':afterCreate},{'channel':'Chat','model':'ChatInteraction','event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0xffb9('0x7'),'model':_0xffb9('0xb'),'event':_0xffb9('0x9'),'condition':_0xffb9('0xc'),'callback':afterCreateMessage},{'channel':'Chat','model':_0xffb9('0xd'),'event':_0xffb9('0x9'),'condition':_0xffb9('0xc'),'callback':afterCreateOfflineMessage},{'channel':_0xffb9('0xe'),'model':'SmsInteraction','event':'afterCreate','condition':_0xffb9('0xa'),'callback':afterCreate},{'channel':_0xffb9('0xe'),'model':'SmsInteraction','event':_0xffb9('0xf'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0xffb9('0xe'),'model':_0xffb9('0x10'),'event':_0xffb9('0x9'),'condition':_0xffb9('0xc'),'callback':afterCreateMessage},{'channel':_0xffb9('0x11'),'model':_0xffb9('0x12'),'event':'afterCreate','condition':_0xffb9('0xa'),'callback':afterCreate},{'channel':'Whatsapp','model':_0xffb9('0x12'),'event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0xffb9('0x11'),'model':'WhatsappMessage','event':_0xffb9('0x9'),'condition':_0xffb9('0xc'),'callback':afterCreateMessage},{'channel':_0xffb9('0x13'),'model':_0xffb9('0x14'),'event':_0xffb9('0x9'),'condition':_0xffb9('0xa'),'callback':afterCreate},{'channel':'Fax','model':_0xffb9('0x14'),'event':_0xffb9('0xf'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0xffb9('0x13'),'model':_0xffb9('0x15'),'event':_0xffb9('0x9'),'condition':_0xffb9('0xc'),'callback':afterCreateMessage},{'channel':_0xffb9('0x16'),'model':_0xffb9('0x17'),'event':_0xffb9('0x9'),'condition':_0xffb9('0xa'),'callback':afterCreate},{'channel':_0xffb9('0x16'),'model':_0xffb9('0x17'),'event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0xffb9('0x16'),'model':'MailMessage','event':_0xffb9('0x9'),'condition':_0xffb9('0xc'),'callback':afterCreateMessage},{'channel':_0xffb9('0x18'),'model':_0xffb9('0x19'),'event':_0xffb9('0x9'),'condition':_0xffb9('0xa'),'callback':afterCreate},{'channel':_0xffb9('0x18'),'model':_0xffb9('0x19'),'event':_0xffb9('0xf'),'condition':_0xffb9('0x1a'),'callback':afterUpdate},{'channel':_0xffb9('0x18'),'model':_0xffb9('0x1b'),'event':'afterCreate','condition':'newmessage','callback':afterCreateMessage}];function request(_0x47ebe2){return client[_0xffb9('0x1c')]('EventManager',_0x47ebe2)['then'](function(_0x3d69a5){logger['info']('Trigger,\x20%s',_0xffb9('0x1d'),_0x3d69a5);if(_0x3d69a5[_0xffb9('0x1e')]){if(_0x3d69a5[_0xffb9('0x1e')]['code']===0x1f4){logger[_0xffb9('0x1e')](_0xffb9('0x1f'),_0xffb9('0x1d'),_0x3d69a5[_0xffb9('0x1e')]);}}})[_0xffb9('0x20')](function(_0x52fa95){logger[_0xffb9('0x1e')](_0xffb9('0x1f'),'EventManager',_0x52fa95);});}function afterCreateMessage(_0x1e2c1b){return function(_0x1f09cd){_0x1f09cd=_0x1f09cd['get']({'plain':!![]});_0x1f09cd['channel']=_0x1e2c1b;_0x1f09cd[_0xffb9('0x21')]=_0x1e2c1b;_0x1f09cd[_0xffb9('0x22')]=_0x1f09cd[_0xffb9('0x23')];Promise[_0xffb9('0x24')]()[_0xffb9('0x25')](function(){if(typeof _0x1f09cd['ContactId']===_0xffb9('0x26'))return null;var _0x116212=_0xffb9('0x27')+_0x1f09cd[_0xffb9('0x28')];return db['sequelize'][_0xffb9('0x29')](_0x116212,{'type':db[_0xffb9('0x2a')][_0xffb9('0x2b')][_0xffb9('0x2c')],'raw':!![]});})[_0xffb9('0x25')](function(_0xa4ac7a){if(_0xa4ac7a){_0x1f09cd[_0xffb9('0x2d')]=_0xa4ac7a[0x0];}if(typeof _0x1f09cd[_0xffb9('0x2e')]===_0xffb9('0x26'))return;return getAgent(_0x1f09cd[_0xffb9('0x2e')]);})[_0xffb9('0x25')](function(_0x14412c){if(_0x14412c){_0x1f09cd[_0xffb9('0x2f')]=util[_0xffb9('0x30')](_0xffb9('0x31'),_0x14412c['name']);_0x1f09cd[_0xffb9('0x32')]=_0x14412c;_0x1f09cd[_0xffb9('0x33')]=_0x1e2c1b;return request({'event':_0xffb9('0x34'),'message':_0x1f09cd});}else{return request({'event':_0xffb9('0x35'),'message':_0x1f09cd});}})[_0xffb9('0x20')](function(_0x2ec624){logger[_0xffb9('0x1e')]('Trigger,\x20%s',_0xffb9('0x36'),_0x2ec624);});};}function afterCreateOfflineMessage(_0x3b1785){return function(_0x5ae3c1){_0x5ae3c1=_0x5ae3c1['get']({'plain':!![]});_0x5ae3c1[_0xffb9('0x33')]=_0x3b1785;_0x5ae3c1[_0xffb9('0x21')]=_0x3b1785;_0x5ae3c1['event']=_0xffb9('0x37');return request({'event':_0x5ae3c1[_0xffb9('0x22')],'message':_0x5ae3c1});};}function afterCreate(_0x3af1aa,_0x57fe78){return function(_0x4b81fd){var _0x50a3e0=_0x4b81fd[_0xffb9('0x38')]({'plain':!![]});_0x50a3e0[_0xffb9('0x33')]=_0x3af1aa;_0x50a3e0[_0xffb9('0x21')]=_0x3af1aa;_0x50a3e0[_0xffb9('0x22')]=_0xffb9('0x39');Promise[_0xffb9('0x24')]()[_0xffb9('0x25')](function(){var _0x28b9c3=_0xffb9('0x27')+_0x50a3e0[_0xffb9('0x28')];return db[_0xffb9('0x3a')][_0xffb9('0x29')](_0x28b9c3,{'type':db[_0xffb9('0x2a')][_0xffb9('0x2b')]['SELECT'],'raw':!![]});})[_0xffb9('0x25')](function(_0x4518c7){if(_0x4518c7){_0x50a3e0[_0xffb9('0x2d')]=_0x4518c7[0x0];}if(_0x50a3e0['UserId']){return getAgent(_0x50a3e0[_0xffb9('0x2e')]);}return;})[_0xffb9('0x25')](function(_0x1027ab){if(_0x1027ab){_0x50a3e0['interface']=util['format'](_0xffb9('0x31'),_0x1027ab[_0xffb9('0x3b')]);_0x50a3e0['agent']=_0x1027ab;}return request({'event':_0x57fe78,'message':_0x50a3e0});})[_0xffb9('0x20')](function(_0xdf472){logger[_0xffb9('0x1e')]('Trigger,\x20%s','AfterCreate',_0xdf472);});};}function afterUpdate(_0x2d9237){return function(_0x1a2066){var _0x3fbc47=_0x1a2066['changed'](_0xffb9('0x3c'))&&_0x1a2066[_0xffb9('0x3c')];var _0xcc0e1d=_0x1a2066[_0xffb9('0x3d')](_0xffb9('0x3e'));if(_0x3fbc47||_0xcc0e1d){var _0x54bdfc=_0x3fbc47?_0xffb9('0x1a'):_0xffb9('0x3e');var _0x304c23=_0x1a2066['get']({'plain':!![]});_0x304c23[_0xffb9('0x33')]=_0x2d9237;_0x304c23['motionChannel']=_0x2d9237;_0x304c23['event']=_0x3fbc47?_0xffb9('0x3c'):_0xffb9('0x3e');var _0x4fedee=_0xffb9('0x27')+_0x304c23[_0xffb9('0x28')];return db[_0xffb9('0x3a')]['query'](_0x4fedee,{'type':db['Sequelize'][_0xffb9('0x2b')][_0xffb9('0x2c')],'raw':!![]})[_0xffb9('0x25')](function(_0x31538a){if(_0x31538a){_0x304c23[_0xffb9('0x2d')]=_0x31538a[0x0];}if(typeof _0x304c23[_0xffb9('0x2e')]===_0xffb9('0x26'))return;return getAgent(_0x304c23[_0xffb9('0x2e')]);})[_0xffb9('0x25')](function(_0x1093f4){if(_0x1093f4){_0x304c23['interface']=util[_0xffb9('0x30')](_0xffb9('0x31'),_0x1093f4['name']);_0x304c23[_0xffb9('0x32')]=_0x1093f4;}return request({'event':_0x54bdfc,'message':_0x304c23});})[_0xffb9('0x20')](function(_0x1573ae){logger['error']('Trigger,\x20%s',_0xffb9('0x3f'),_0x1573ae);});}};}function getAgent(_0x29096a){return db[_0xffb9('0x40')][_0xffb9('0x41')]({'where':{'id':_0x29096a},'attributes':['id','name',_0xffb9('0x42'),_0xffb9('0x43'),_0xffb9('0x44')],'raw':!![]})[_0xffb9('0x25')](function(_0x116fbd){return _0x116fbd;});}exports[_0xffb9('0x45')]=function(){for(var _0x5b890d=0x0;_0x5b890d<triggers[_0xffb9('0x46')];_0x5b890d+=0x1){if(db['hasOwnProperty'](triggers[_0x5b890d]['model'])){db[triggers[_0x5b890d]['model']][_0xffb9('0x47')](triggers[_0x5b890d][_0xffb9('0x22')],triggers[_0x5b890d][_0xffb9('0x48')](triggers[_0x5b890d][_0xffb9('0x33')]['toLowerCase'](),triggers[_0x5b890d][_0xffb9('0x49')]));}}};