9b836d91edd7c8432c640520ff406d10db77e19d
[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 _0x0d55=['Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','then','info','Trigger,\x20%s','error','code','catch','channel','event','direction','resolve','ContactId','undefined','sequelize','query','interface','format','SIP/%s','agent','incomingmessage','outgoingmessage','AfterCreateMessage','get','offlineMessage','motionChannel','opened','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','QueryTypes','UserId','AfterCreate','changed','closed','substatus','Sequelize','SELECT','name','AfterUpdate','User','email','internal','default','length','hasOwnProperty','model','hook','callback','toLowerCase','condition','util','../../mysqldb','jayson/promise','triggers','http','Chat','afterCreate','newinteraction','afterUpdate','closedinteraction','ChatMessage','newmessage','Sms','SmsInteraction','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage'];(function(_0xa3129a,_0x8f33cd){var _0x2eb80c=function(_0xc0dc7c){while(--_0xc0dc7c){_0xa3129a['push'](_0xa3129a['shift']());}};_0x2eb80c(++_0x8f33cd);}(_0x0d55,0x86));var _0x50d5=function(_0x244c60,_0x47c473){_0x244c60=_0x244c60-0x0;var _0x634bba=_0x0d55[_0x244c60];return _0x634bba;};'use strict';var util=require(_0x50d5('0x0'));var db=require(_0x50d5('0x1'))['db'];var jayson=require(_0x50d5('0x2'));var logger=require('../logger')(_0x50d5('0x3'));var client=jayson['client'][_0x50d5('0x4')]({'port':0x232a});var triggers=[{'channel':_0x50d5('0x5'),'model':'ChatInteraction','event':_0x50d5('0x6'),'condition':_0x50d5('0x7'),'callback':afterCreate},{'channel':_0x50d5('0x5'),'model':'ChatInteraction','event':_0x50d5('0x8'),'condition':_0x50d5('0x9'),'callback':afterUpdate},{'channel':'Chat','model':_0x50d5('0xa'),'event':'afterCreate','condition':_0x50d5('0xb'),'callback':afterCreateMessage},{'channel':'Chat','model':'ChatOfflineMessage','event':'afterCreate','condition':_0x50d5('0xb'),'callback':afterCreateOfflineMessage},{'channel':_0x50d5('0xc'),'model':_0x50d5('0xd'),'event':_0x50d5('0x6'),'condition':_0x50d5('0x7'),'callback':afterCreate},{'channel':'Sms','model':'SmsInteraction','event':'afterUpdate','condition':_0x50d5('0x9'),'callback':afterUpdate},{'channel':_0x50d5('0xc'),'model':_0x50d5('0xe'),'event':_0x50d5('0x6'),'condition':_0x50d5('0xb'),'callback':afterCreateMessage},{'channel':_0x50d5('0xf'),'model':_0x50d5('0x10'),'event':_0x50d5('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x50d5('0xf'),'model':_0x50d5('0x10'),'event':'afterUpdate','condition':_0x50d5('0x9'),'callback':afterUpdate},{'channel':_0x50d5('0xf'),'model':_0x50d5('0x11'),'event':_0x50d5('0x6'),'condition':_0x50d5('0xb'),'callback':afterCreateMessage},{'channel':_0x50d5('0x12'),'model':_0x50d5('0x13'),'event':_0x50d5('0x6'),'condition':_0x50d5('0x7'),'callback':afterCreate},{'channel':_0x50d5('0x12'),'model':'FaxInteraction','event':_0x50d5('0x8'),'condition':_0x50d5('0x9'),'callback':afterUpdate},{'channel':_0x50d5('0x12'),'model':_0x50d5('0x14'),'event':_0x50d5('0x6'),'condition':_0x50d5('0xb'),'callback':afterCreateMessage},{'channel':_0x50d5('0x15'),'model':'MailInteraction','event':_0x50d5('0x6'),'condition':_0x50d5('0x7'),'callback':afterCreate},{'channel':_0x50d5('0x15'),'model':_0x50d5('0x16'),'event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0x50d5('0x15'),'model':_0x50d5('0x17'),'event':'afterCreate','condition':_0x50d5('0xb'),'callback':afterCreateMessage},{'channel':_0x50d5('0x18'),'model':_0x50d5('0x19'),'event':_0x50d5('0x6'),'condition':_0x50d5('0x7'),'callback':afterCreate},{'channel':_0x50d5('0x18'),'model':'OpenchannelInteraction','event':'afterUpdate','condition':_0x50d5('0x9'),'callback':afterUpdate},{'channel':'Openchannel','model':_0x50d5('0x1a'),'event':_0x50d5('0x6'),'condition':_0x50d5('0xb'),'callback':afterCreateMessage}];function request(_0x5d943d){return client[_0x50d5('0x1b')](_0x50d5('0x1c'),_0x5d943d)[_0x50d5('0x1d')](function(_0x4a0150){logger[_0x50d5('0x1e')](_0x50d5('0x1f'),_0x50d5('0x1c'),_0x4a0150);if(_0x4a0150[_0x50d5('0x20')]){if(_0x4a0150[_0x50d5('0x20')][_0x50d5('0x21')]===0x1f4){logger[_0x50d5('0x20')](_0x50d5('0x1f'),'EventManager',_0x4a0150['error']);}}})[_0x50d5('0x22')](function(_0x49d90b){logger[_0x50d5('0x20')](_0x50d5('0x1f'),_0x50d5('0x1c'),_0x49d90b);});}function afterCreateMessage(_0x4c70a5){return function(_0x1441e3){_0x1441e3=_0x1441e3['get']({'plain':!![]});_0x1441e3[_0x50d5('0x23')]=_0x4c70a5;_0x1441e3['motionChannel']=_0x4c70a5;_0x1441e3[_0x50d5('0x24')]=_0x1441e3[_0x50d5('0x25')];Promise[_0x50d5('0x26')]()[_0x50d5('0x1d')](function(){if(typeof _0x1441e3[_0x50d5('0x27')]===_0x50d5('0x28'))return null;var _0xd31893='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x1441e3[_0x50d5('0x27')];return db[_0x50d5('0x29')][_0x50d5('0x2a')](_0xd31893,{'type':db['Sequelize']['QueryTypes']['SELECT'],'raw':!![]});})[_0x50d5('0x1d')](function(_0x5cc78e){if(_0x5cc78e){_0x1441e3['contact']=_0x5cc78e[0x0];}if(typeof _0x1441e3['UserId']===_0x50d5('0x28'))return;return getAgent(_0x1441e3['UserId']);})[_0x50d5('0x1d')](function(_0x263a8b){if(_0x263a8b){_0x1441e3[_0x50d5('0x2b')]=util[_0x50d5('0x2c')](_0x50d5('0x2d'),_0x263a8b['name']);_0x1441e3[_0x50d5('0x2e')]=_0x263a8b;_0x1441e3[_0x50d5('0x23')]=_0x4c70a5;return request({'event':_0x50d5('0x2f'),'message':_0x1441e3});}else{return request({'event':_0x50d5('0x30'),'message':_0x1441e3});}})[_0x50d5('0x22')](function(_0x22bce5){logger[_0x50d5('0x20')](_0x50d5('0x1f'),_0x50d5('0x31'),_0x22bce5);});};}function afterCreateOfflineMessage(_0x12b053){return function(_0x310937){_0x310937=_0x310937[_0x50d5('0x32')]({'plain':!![]});_0x310937[_0x50d5('0x23')]=_0x12b053;_0x310937['motionChannel']=_0x12b053;_0x310937['event']=_0x50d5('0x33');return request({'event':_0x310937[_0x50d5('0x24')],'message':_0x310937});};}function afterCreate(_0x5eb155,_0x11442e){return function(_0x27b873){_0x27b873=_0x27b873[_0x50d5('0x32')]({'plain':!![]});_0x27b873[_0x50d5('0x23')]=_0x5eb155;_0x27b873[_0x50d5('0x34')]=_0x5eb155;_0x27b873[_0x50d5('0x24')]=_0x50d5('0x35');Promise[_0x50d5('0x26')]()[_0x50d5('0x1d')](function(){var _0xb4b759=_0x50d5('0x36')+_0x27b873[_0x50d5('0x27')];return db[_0x50d5('0x29')][_0x50d5('0x2a')](_0xb4b759,{'type':db['Sequelize'][_0x50d5('0x37')]['SELECT'],'raw':!![]});})[_0x50d5('0x1d')](function(_0x21b46f){if(_0x21b46f){_0x27b873['contact']=_0x21b46f[0x0];}if(typeof _0x27b873[_0x50d5('0x38')]==='undefined')return;return getAgent(_0x27b873[_0x50d5('0x38')]);})['then'](function(_0x312a32){if(_0x312a32){_0x27b873['interface']=util['format']('SIP/%s',_0x312a32['name']);_0x27b873[_0x50d5('0x2e')]=_0x312a32;}return request({'event':_0x11442e,'message':_0x27b873});})[_0x50d5('0x22')](function(_0x3e53d6){logger[_0x50d5('0x20')](_0x50d5('0x1f'),_0x50d5('0x39'),_0x3e53d6);});};}function afterUpdate(_0x492613){return function(_0x488b34){var _0x3edbc4=_0x488b34[_0x50d5('0x3a')]('closed')&&_0x488b34[_0x50d5('0x3b')];var _0x41ef3d=_0x488b34[_0x50d5('0x3a')](_0x50d5('0x3c'));if(_0x3edbc4||_0x41ef3d){var _0x590c34=_0x3edbc4?_0x50d5('0x9'):'substatus';var _0x2f7c81=_0x488b34[_0x50d5('0x32')]({'plain':!![]});_0x2f7c81['channel']=_0x492613;_0x2f7c81[_0x50d5('0x34')]=_0x492613;_0x2f7c81[_0x50d5('0x24')]=_0x3edbc4?_0x50d5('0x3b'):_0x50d5('0x3c');var _0x1f42ce='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x2f7c81[_0x50d5('0x27')];return db[_0x50d5('0x29')][_0x50d5('0x2a')](_0x1f42ce,{'type':db[_0x50d5('0x3d')][_0x50d5('0x37')][_0x50d5('0x3e')],'raw':!![]})['then'](function(_0x90351c){if(_0x90351c){_0x2f7c81['contact']=_0x90351c[0x0];}if(typeof _0x2f7c81[_0x50d5('0x38')]==='undefined')return;return getAgent(_0x2f7c81[_0x50d5('0x38')]);})['then'](function(_0x10d36f){if(_0x10d36f){_0x2f7c81['interface']=util['format'](_0x50d5('0x2d'),_0x10d36f[_0x50d5('0x3f')]);_0x2f7c81['agent']=_0x10d36f;}return request({'event':_0x590c34,'message':_0x2f7c81});})[_0x50d5('0x22')](function(_0x5a121b){logger[_0x50d5('0x20')]('Trigger,\x20%s',_0x50d5('0x40'),_0x5a121b);});}};}function getAgent(_0x3148f5){return db[_0x50d5('0x41')]['find']({'where':{'id':_0x3148f5},'attributes':['id',_0x50d5('0x3f'),'fullname',_0x50d5('0x42'),_0x50d5('0x43')],'raw':!![]})[_0x50d5('0x1d')](function(_0x116629){return _0x116629;});}exports[_0x50d5('0x44')]=function(){for(var _0x54edda=0x0;_0x54edda<triggers[_0x50d5('0x45')];_0x54edda+=0x1){if(db[_0x50d5('0x46')](triggers[_0x54edda][_0x50d5('0x47')])){db[triggers[_0x54edda][_0x50d5('0x47')]][_0x50d5('0x48')](triggers[_0x54edda]['event'],triggers[_0x54edda][_0x50d5('0x49')](triggers[_0x54edda][_0x50d5('0x23')][_0x50d5('0x4a')](),triggers[_0x54edda][_0x50d5('0x4b')]));}}};