Built motion from commit 9d1906d1.|2.5.40
[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 _0x94cb=['SmsInteraction','SmsMessage','Whatsapp','WhatsappMessage','Fax','FaxInteraction','Mail','MailInteraction','Openchannel','OpenchannelInteraction','EventManager','then','info','Trigger,\x20%s','error','code','catch','motionChannel','event','direction','resolve','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','query','Sequelize','QueryTypes','SELECT','contact','UserId','interface','format','SIP/%s','name','agent','channel','AfterCreateMessage','get','opened','changed','closed','substatus','AfterUpdate','User','find','fullname','email','internal','hasOwnProperty','model','hook','callback','toLowerCase','condition','../../mysqldb','jayson/promise','triggers','client','http','Chat','ChatInteraction','afterCreate','newinteraction','afterUpdate','closedinteraction','newmessage','Sms'];(function(_0x4ccee6,_0x51bbe2){var _0x1feada=function(_0xb20cd5){while(--_0xb20cd5){_0x4ccee6['push'](_0x4ccee6['shift']());}};_0x1feada(++_0x51bbe2);}(_0x94cb,0x1cf));var _0xb94c=function(_0x5e4fb9,_0x45caf4){_0x5e4fb9=_0x5e4fb9-0x0;var _0x4189b4=_0x94cb[_0x5e4fb9];return _0x4189b4;};'use strict';var util=require('util');var db=require(_0xb94c('0x0'))['db'];var jayson=require(_0xb94c('0x1'));var logger=require('../logger')(_0xb94c('0x2'));var client=jayson[_0xb94c('0x3')][_0xb94c('0x4')]({'port':0x232a});var triggers=[{'channel':_0xb94c('0x5'),'model':_0xb94c('0x6'),'event':_0xb94c('0x7'),'condition':_0xb94c('0x8'),'callback':afterCreate},{'channel':_0xb94c('0x5'),'model':_0xb94c('0x6'),'event':_0xb94c('0x9'),'condition':_0xb94c('0xa'),'callback':afterUpdate},{'channel':_0xb94c('0x5'),'model':'ChatMessage','event':'afterCreate','condition':_0xb94c('0xb'),'callback':afterCreateMessage},{'channel':_0xb94c('0xc'),'model':_0xb94c('0xd'),'event':_0xb94c('0x7'),'condition':_0xb94c('0x8'),'callback':afterCreate},{'channel':_0xb94c('0xc'),'model':_0xb94c('0xd'),'event':_0xb94c('0x9'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Sms','model':_0xb94c('0xe'),'event':'afterCreate','condition':_0xb94c('0xb'),'callback':afterCreateMessage},{'channel':_0xb94c('0xf'),'model':'WhatsappInteraction','event':_0xb94c('0x7'),'condition':_0xb94c('0x8'),'callback':afterCreate},{'channel':_0xb94c('0xf'),'model':'WhatsappInteraction','event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0xb94c('0xf'),'model':_0xb94c('0x10'),'event':'afterCreate','condition':'newmessage','callback':afterCreateMessage},{'channel':_0xb94c('0x11'),'model':_0xb94c('0x12'),'event':'afterCreate','condition':_0xb94c('0x8'),'callback':afterCreate},{'channel':_0xb94c('0x11'),'model':_0xb94c('0x12'),'event':_0xb94c('0x9'),'condition':_0xb94c('0xa'),'callback':afterUpdate},{'channel':_0xb94c('0x11'),'model':'FaxMessage','event':_0xb94c('0x7'),'condition':_0xb94c('0xb'),'callback':afterCreateMessage},{'channel':_0xb94c('0x13'),'model':_0xb94c('0x14'),'event':_0xb94c('0x7'),'condition':_0xb94c('0x8'),'callback':afterCreate},{'channel':_0xb94c('0x13'),'model':'MailInteraction','event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':'Mail','model':'MailMessage','event':_0xb94c('0x7'),'condition':_0xb94c('0xb'),'callback':afterCreateMessage},{'channel':_0xb94c('0x15'),'model':_0xb94c('0x16'),'event':'afterCreate','condition':_0xb94c('0x8'),'callback':afterCreate},{'channel':_0xb94c('0x15'),'model':_0xb94c('0x16'),'event':_0xb94c('0x9'),'condition':_0xb94c('0xa'),'callback':afterUpdate},{'channel':_0xb94c('0x15'),'model':'OpenchannelMessage','event':_0xb94c('0x7'),'condition':'newmessage','callback':afterCreateMessage}];function request(_0x2db6b0){return client['request'](_0xb94c('0x17'),_0x2db6b0)[_0xb94c('0x18')](function(_0x299c13){logger[_0xb94c('0x19')](_0xb94c('0x1a'),'EventManager',_0x299c13);if(_0x299c13[_0xb94c('0x1b')]){if(_0x299c13[_0xb94c('0x1b')][_0xb94c('0x1c')]===0x1f4){logger[_0xb94c('0x1b')](_0xb94c('0x1a'),_0xb94c('0x17'),_0x299c13['error']);}}})[_0xb94c('0x1d')](function(_0x4e46d9){logger[_0xb94c('0x1b')](_0xb94c('0x1a'),_0xb94c('0x17'),_0x4e46d9);});}function afterCreateMessage(_0x397e90){return function(_0x3652eb){_0x3652eb=_0x3652eb['get']({'plain':!![]});_0x3652eb['channel']=_0x397e90;_0x3652eb[_0xb94c('0x1e')]=_0x397e90;_0x3652eb[_0xb94c('0x1f')]=_0x3652eb[_0xb94c('0x20')];Promise[_0xb94c('0x21')]()[_0xb94c('0x18')](function(){if(typeof _0x3652eb['ContactId']===_0xb94c('0x22'))return null;var _0x319be9=_0xb94c('0x23')+_0x3652eb[_0xb94c('0x24')];return db[_0xb94c('0x25')][_0xb94c('0x26')](_0x319be9,{'type':db[_0xb94c('0x27')][_0xb94c('0x28')][_0xb94c('0x29')],'raw':!![]});})[_0xb94c('0x18')](function(_0x2d3e67){if(_0x2d3e67){_0x3652eb[_0xb94c('0x2a')]=_0x2d3e67[0x0];}if(typeof _0x3652eb[_0xb94c('0x2b')]===_0xb94c('0x22'))return;return getAgent(_0x3652eb[_0xb94c('0x2b')]);})[_0xb94c('0x18')](function(_0x3e32ed){if(_0x3e32ed){_0x3652eb[_0xb94c('0x2c')]=util[_0xb94c('0x2d')](_0xb94c('0x2e'),_0x3e32ed[_0xb94c('0x2f')]);_0x3652eb[_0xb94c('0x30')]=_0x3e32ed;_0x3652eb[_0xb94c('0x31')]=_0x397e90;return request({'event':'incomingmessage','message':_0x3652eb});}else{return request({'event':'outgoingmessage','message':_0x3652eb});}})[_0xb94c('0x1d')](function(_0x115783){logger['error'](_0xb94c('0x1a'),_0xb94c('0x32'),_0x115783);});};}function afterCreate(_0x4450d9,_0x1c0303){return function(_0x126591){_0x126591=_0x126591[_0xb94c('0x33')]({'plain':!![]});_0x126591[_0xb94c('0x31')]=_0x4450d9;_0x126591[_0xb94c('0x1e')]=_0x4450d9;_0x126591[_0xb94c('0x1f')]=_0xb94c('0x34');Promise['resolve']()[_0xb94c('0x18')](function(){var _0x3fa39f=_0xb94c('0x23')+_0x126591[_0xb94c('0x24')];return db[_0xb94c('0x25')]['query'](_0x3fa39f,{'type':db[_0xb94c('0x27')][_0xb94c('0x28')][_0xb94c('0x29')],'raw':!![]});})[_0xb94c('0x18')](function(_0x3f7180){if(_0x3f7180){_0x126591[_0xb94c('0x2a')]=_0x3f7180[0x0];}if(typeof _0x126591[_0xb94c('0x2b')]===_0xb94c('0x22'))return;return getAgent(_0x126591['UserId']);})['then'](function(_0x28396c){if(_0x28396c){_0x126591[_0xb94c('0x2c')]=util['format'](_0xb94c('0x2e'),_0x28396c[_0xb94c('0x2f')]);_0x126591['agent']=_0x28396c;}return request({'event':_0x1c0303,'message':_0x126591});})[_0xb94c('0x1d')](function(_0x1a513c){logger['error'](_0xb94c('0x1a'),'AfterCreate',_0x1a513c);});};}function afterUpdate(_0x35ce88){return function(_0x56332b){var _0x18e698=_0x56332b[_0xb94c('0x35')]('closed')&&_0x56332b[_0xb94c('0x36')];var _0x527da1=_0x56332b[_0xb94c('0x35')](_0xb94c('0x37'));if(_0x18e698||_0x527da1){var _0x2bba29=_0x18e698?_0xb94c('0xa'):_0xb94c('0x37');var _0x5b322e=_0x56332b['get']({'plain':!![]});_0x5b322e[_0xb94c('0x31')]=_0x35ce88;_0x5b322e[_0xb94c('0x1e')]=_0x35ce88;_0x5b322e['event']=_0x18e698?_0xb94c('0x36'):_0xb94c('0x37');var _0x4a88f5='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x5b322e[_0xb94c('0x24')];return db['sequelize'][_0xb94c('0x26')](_0x4a88f5,{'type':db[_0xb94c('0x27')]['QueryTypes'][_0xb94c('0x29')],'raw':!![]})[_0xb94c('0x18')](function(_0x2b2ca4){if(_0x2b2ca4){_0x5b322e[_0xb94c('0x2a')]=_0x2b2ca4[0x0];}if(typeof _0x5b322e['UserId']==='undefined')return;return getAgent(_0x5b322e[_0xb94c('0x2b')]);})[_0xb94c('0x18')](function(_0x5f3154){if(_0x5f3154){_0x5b322e[_0xb94c('0x2c')]=util[_0xb94c('0x2d')]('SIP/%s',_0x5f3154['name']);_0x5b322e[_0xb94c('0x30')]=_0x5f3154;}return request({'event':_0x2bba29,'message':_0x5b322e});})[_0xb94c('0x1d')](function(_0x3716c5){logger[_0xb94c('0x1b')](_0xb94c('0x1a'),_0xb94c('0x38'),_0x3716c5);});}};}function getAgent(_0x24aecf){return db[_0xb94c('0x39')][_0xb94c('0x3a')]({'where':{'id':_0x24aecf},'attributes':['id',_0xb94c('0x2f'),_0xb94c('0x3b'),_0xb94c('0x3c'),_0xb94c('0x3d')],'raw':!![]})[_0xb94c('0x18')](function(_0x3be6a9){return _0x3be6a9;});}exports['default']=function(){for(var _0x494dac=0x0;_0x494dac<triggers['length'];_0x494dac+=0x1){if(db[_0xb94c('0x3e')](triggers[_0x494dac]['model'])){db[triggers[_0x494dac][_0xb94c('0x3f')]][_0xb94c('0x40')](triggers[_0x494dac][_0xb94c('0x1f')],triggers[_0x494dac][_0xb94c('0x41')](triggers[_0x494dac][_0xb94c('0x31')][_0xb94c('0x42')](),triggers[_0x494dac][_0xb94c('0x43')]));}}};