Built motion from commit 00bf23f6.|2.6.16
[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 _0x62b7=['info','Trigger,\x20%s','error','catch','channel','event','direction','resolve','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','query','Sequelize','QueryTypes','SELECT','contact','UserId','format','name','agent','incomingmessage','outgoingmessage','AfterCreateMessage','get','offlineMessage','opened','AfterCreate','changed','closed','substatus','motionChannel','interface','SIP/%s','AfterUpdate','User','find','fullname','email','internal','default','length','hasOwnProperty','model','hook','callback','toLowerCase','condition','util','../../mysqldb','../logger','triggers','Chat','ChatInteraction','afterCreate','ChatMessage','newmessage','ChatOfflineMessage','Sms','newinteraction','SmsInteraction','afterUpdate','closedinteraction','SmsMessage','Whatsapp','WhatsappInteraction','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','OpenchannelInteraction','Openchannel','OpenchannelMessage','request','EventManager','then'];(function(_0x163405,_0x520e68){var _0x29412f=function(_0x3b46cf){while(--_0x3b46cf){_0x163405['push'](_0x163405['shift']());}};_0x29412f(++_0x520e68);}(_0x62b7,0x113));var _0x762b=function(_0x5c2cfc,_0x225457){_0x5c2cfc=_0x5c2cfc-0x0;var _0x39ef01=_0x62b7[_0x5c2cfc];return _0x39ef01;};'use strict';var util=require(_0x762b('0x0'));var db=require(_0x762b('0x1'))['db'];var jayson=require('jayson/promise');var logger=require(_0x762b('0x2'))(_0x762b('0x3'));var client=jayson['client']['http']({'port':0x232a});var triggers=[{'channel':_0x762b('0x4'),'model':_0x762b('0x5'),'event':_0x762b('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x762b('0x4'),'model':_0x762b('0x5'),'event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0x762b('0x4'),'model':_0x762b('0x7'),'event':_0x762b('0x6'),'condition':_0x762b('0x8'),'callback':afterCreateMessage},{'channel':_0x762b('0x4'),'model':_0x762b('0x9'),'event':'afterCreate','condition':_0x762b('0x8'),'callback':afterCreateOfflineMessage},{'channel':_0x762b('0xa'),'model':'SmsInteraction','event':_0x762b('0x6'),'condition':_0x762b('0xb'),'callback':afterCreate},{'channel':_0x762b('0xa'),'model':_0x762b('0xc'),'event':_0x762b('0xd'),'condition':_0x762b('0xe'),'callback':afterUpdate},{'channel':_0x762b('0xa'),'model':_0x762b('0xf'),'event':_0x762b('0x6'),'condition':_0x762b('0x8'),'callback':afterCreateMessage},{'channel':_0x762b('0x10'),'model':'WhatsappInteraction','event':_0x762b('0x6'),'condition':_0x762b('0xb'),'callback':afterCreate},{'channel':_0x762b('0x10'),'model':_0x762b('0x11'),'event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0x762b('0x10'),'model':'WhatsappMessage','event':_0x762b('0x6'),'condition':_0x762b('0x8'),'callback':afterCreateMessage},{'channel':_0x762b('0x12'),'model':_0x762b('0x13'),'event':_0x762b('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x762b('0x12'),'model':_0x762b('0x13'),'event':_0x762b('0xd'),'condition':_0x762b('0xe'),'callback':afterUpdate},{'channel':'Fax','model':_0x762b('0x14'),'event':_0x762b('0x6'),'condition':_0x762b('0x8'),'callback':afterCreateMessage},{'channel':_0x762b('0x15'),'model':_0x762b('0x16'),'event':'afterCreate','condition':_0x762b('0xb'),'callback':afterCreate},{'channel':_0x762b('0x15'),'model':_0x762b('0x16'),'event':_0x762b('0xd'),'condition':_0x762b('0xe'),'callback':afterUpdate},{'channel':_0x762b('0x15'),'model':'MailMessage','event':'afterCreate','condition':_0x762b('0x8'),'callback':afterCreateMessage},{'channel':'Openchannel','model':_0x762b('0x17'),'event':_0x762b('0x6'),'condition':_0x762b('0xb'),'callback':afterCreate},{'channel':_0x762b('0x18'),'model':_0x762b('0x17'),'event':_0x762b('0xd'),'condition':_0x762b('0xe'),'callback':afterUpdate},{'channel':_0x762b('0x18'),'model':_0x762b('0x19'),'event':_0x762b('0x6'),'condition':_0x762b('0x8'),'callback':afterCreateMessage}];function request(_0x54b9b6){return client[_0x762b('0x1a')](_0x762b('0x1b'),_0x54b9b6)[_0x762b('0x1c')](function(_0x537468){logger[_0x762b('0x1d')](_0x762b('0x1e'),_0x762b('0x1b'),_0x537468);if(_0x537468[_0x762b('0x1f')]){if(_0x537468[_0x762b('0x1f')]['code']===0x1f4){logger[_0x762b('0x1f')]('Trigger,\x20%s',_0x762b('0x1b'),_0x537468[_0x762b('0x1f')]);}}})[_0x762b('0x20')](function(_0x29fed9){logger[_0x762b('0x1f')](_0x762b('0x1e'),_0x762b('0x1b'),_0x29fed9);});}function afterCreateMessage(_0x2fab2d){return function(_0x1519f8){_0x1519f8=_0x1519f8['get']({'plain':!![]});_0x1519f8[_0x762b('0x21')]=_0x2fab2d;_0x1519f8['motionChannel']=_0x2fab2d;_0x1519f8[_0x762b('0x22')]=_0x1519f8[_0x762b('0x23')];Promise[_0x762b('0x24')]()['then'](function(){if(typeof _0x1519f8['ContactId']===_0x762b('0x25'))return null;var _0x248d01=_0x762b('0x26')+_0x1519f8[_0x762b('0x27')];return db['sequelize'][_0x762b('0x28')](_0x248d01,{'type':db[_0x762b('0x29')][_0x762b('0x2a')][_0x762b('0x2b')],'raw':!![]});})[_0x762b('0x1c')](function(_0x14c5c5){if(_0x14c5c5){_0x1519f8[_0x762b('0x2c')]=_0x14c5c5[0x0];}if(typeof _0x1519f8[_0x762b('0x2d')]===_0x762b('0x25'))return;return getAgent(_0x1519f8[_0x762b('0x2d')]);})[_0x762b('0x1c')](function(_0x1a5718){if(_0x1a5718){_0x1519f8['interface']=util[_0x762b('0x2e')]('SIP/%s',_0x1a5718[_0x762b('0x2f')]);_0x1519f8[_0x762b('0x30')]=_0x1a5718;_0x1519f8[_0x762b('0x21')]=_0x2fab2d;return request({'event':_0x762b('0x31'),'message':_0x1519f8});}else{return request({'event':_0x762b('0x32'),'message':_0x1519f8});}})['catch'](function(_0x726116){logger['error'](_0x762b('0x1e'),_0x762b('0x33'),_0x726116);});};}function afterCreateOfflineMessage(_0x43bfcd){return function(_0x58d3a1){_0x58d3a1=_0x58d3a1[_0x762b('0x34')]({'plain':!![]});_0x58d3a1[_0x762b('0x21')]=_0x43bfcd;_0x58d3a1['motionChannel']=_0x43bfcd;_0x58d3a1['event']=_0x762b('0x35');return request({'event':_0x58d3a1['event'],'message':_0x58d3a1});};}function afterCreate(_0x35087f,_0x3be544){return function(_0x2b9e38){_0x2b9e38=_0x2b9e38[_0x762b('0x34')]({'plain':!![]});_0x2b9e38[_0x762b('0x21')]=_0x35087f;_0x2b9e38['motionChannel']=_0x35087f;_0x2b9e38[_0x762b('0x22')]=_0x762b('0x36');Promise[_0x762b('0x24')]()[_0x762b('0x1c')](function(){var _0x155c55=_0x762b('0x26')+_0x2b9e38[_0x762b('0x27')];return db['sequelize'][_0x762b('0x28')](_0x155c55,{'type':db[_0x762b('0x29')]['QueryTypes']['SELECT'],'raw':!![]});})[_0x762b('0x1c')](function(_0x3a1bed){if(_0x3a1bed){_0x2b9e38[_0x762b('0x2c')]=_0x3a1bed[0x0];}if(typeof _0x2b9e38[_0x762b('0x2d')]===_0x762b('0x25'))return;return getAgent(_0x2b9e38[_0x762b('0x2d')]);})[_0x762b('0x1c')](function(_0x241660){if(_0x241660){_0x2b9e38['interface']=util[_0x762b('0x2e')]('SIP/%s',_0x241660[_0x762b('0x2f')]);_0x2b9e38['agent']=_0x241660;}return request({'event':_0x3be544,'message':_0x2b9e38});})[_0x762b('0x20')](function(_0x1afb90){logger[_0x762b('0x1f')](_0x762b('0x1e'),_0x762b('0x37'),_0x1afb90);});};}function afterUpdate(_0x540da1){return function(_0x2ad9a6){var _0x13f086=_0x2ad9a6[_0x762b('0x38')]('closed')&&_0x2ad9a6[_0x762b('0x39')];var _0x42810d=_0x2ad9a6['changed'](_0x762b('0x3a'));if(_0x13f086||_0x42810d){var _0x214125=_0x13f086?_0x762b('0xe'):'substatus';var _0xd18b7d=_0x2ad9a6[_0x762b('0x34')]({'plain':!![]});_0xd18b7d[_0x762b('0x21')]=_0x540da1;_0xd18b7d[_0x762b('0x3b')]=_0x540da1;_0xd18b7d[_0x762b('0x22')]=_0x13f086?'closed':_0x762b('0x3a');var _0x44da8d=_0x762b('0x26')+_0xd18b7d['ContactId'];return db['sequelize'][_0x762b('0x28')](_0x44da8d,{'type':db[_0x762b('0x29')]['QueryTypes'][_0x762b('0x2b')],'raw':!![]})['then'](function(_0x372b41){if(_0x372b41){_0xd18b7d[_0x762b('0x2c')]=_0x372b41[0x0];}if(typeof _0xd18b7d['UserId']===_0x762b('0x25'))return;return getAgent(_0xd18b7d[_0x762b('0x2d')]);})['then'](function(_0xc16506){if(_0xc16506){_0xd18b7d[_0x762b('0x3c')]=util[_0x762b('0x2e')](_0x762b('0x3d'),_0xc16506['name']);_0xd18b7d[_0x762b('0x30')]=_0xc16506;}return request({'event':_0x214125,'message':_0xd18b7d});})['catch'](function(_0x20e7ee){logger[_0x762b('0x1f')](_0x762b('0x1e'),_0x762b('0x3e'),_0x20e7ee);});}};}function getAgent(_0xd15142){return db[_0x762b('0x3f')][_0x762b('0x40')]({'where':{'id':_0xd15142},'attributes':['id',_0x762b('0x2f'),_0x762b('0x41'),_0x762b('0x42'),_0x762b('0x43')],'raw':!![]})[_0x762b('0x1c')](function(_0x1c71b6){return _0x1c71b6;});}exports[_0x762b('0x44')]=function(){for(var _0x34c55=0x0;_0x34c55<triggers[_0x762b('0x45')];_0x34c55+=0x1){if(db[_0x762b('0x46')](triggers[_0x34c55][_0x762b('0x47')])){db[triggers[_0x34c55][_0x762b('0x47')]][_0x762b('0x48')](triggers[_0x34c55][_0x762b('0x22')],triggers[_0x34c55][_0x762b('0x49')](triggers[_0x34c55][_0x762b('0x21')][_0x762b('0x4a')](),triggers[_0x34c55][_0x762b('0x4b')]));}}};