de8d0cfd124f4319a3e28c98a6190dbba3f46baf
[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 _0x7a93=['FaxInteraction','Fax','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','then','info','Trigger,\x20%s','error','catch','get','channel','motionChannel','event','resolve','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','query','Sequelize','QueryTypes','SELECT','contact','UserId','interface','format','SIP/%s','name','agent','incomingmessage','outgoingmessage','AfterCreateMessage','opened','changed','closed','substatus','AfterUpdate','User','find','fullname','internal','default','length','hasOwnProperty','model','hook','callback','toLowerCase','../../mysqldb','jayson/promise','triggers','client','http','Chat','ChatInteraction','afterCreate','newinteraction','newmessage','ChatOfflineMessage','Sms','SmsInteraction','afterUpdate','closedinteraction','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage'];(function(_0x4fadaf,_0x179d85){var _0x4738a8=function(_0x34ce7b){while(--_0x34ce7b){_0x4fadaf['push'](_0x4fadaf['shift']());}};_0x4738a8(++_0x179d85);}(_0x7a93,0x1a3));var _0x37a9=function(_0x1015ec,_0x56facf){_0x1015ec=_0x1015ec-0x0;var _0x3ac0f7=_0x7a93[_0x1015ec];return _0x3ac0f7;};'use strict';var util=require('util');var db=require(_0x37a9('0x0'))['db'];var jayson=require(_0x37a9('0x1'));var logger=require('../logger')(_0x37a9('0x2'));var client=jayson[_0x37a9('0x3')][_0x37a9('0x4')]({'port':0x232a});var triggers=[{'channel':_0x37a9('0x5'),'model':_0x37a9('0x6'),'event':_0x37a9('0x7'),'condition':_0x37a9('0x8'),'callback':afterCreate},{'channel':_0x37a9('0x5'),'model':_0x37a9('0x6'),'event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0x37a9('0x5'),'model':'ChatMessage','event':_0x37a9('0x7'),'condition':_0x37a9('0x9'),'callback':afterCreateMessage},{'channel':_0x37a9('0x5'),'model':_0x37a9('0xa'),'event':_0x37a9('0x7'),'condition':_0x37a9('0x9'),'callback':afterCreateOfflineMessage},{'channel':_0x37a9('0xb'),'model':_0x37a9('0xc'),'event':_0x37a9('0x7'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x37a9('0xb'),'model':_0x37a9('0xc'),'event':_0x37a9('0xd'),'condition':_0x37a9('0xe'),'callback':afterUpdate},{'channel':_0x37a9('0xb'),'model':_0x37a9('0xf'),'event':'afterCreate','condition':_0x37a9('0x9'),'callback':afterCreateMessage},{'channel':_0x37a9('0x10'),'model':_0x37a9('0x11'),'event':_0x37a9('0x7'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x37a9('0x10'),'model':_0x37a9('0x11'),'event':'afterUpdate','condition':_0x37a9('0xe'),'callback':afterUpdate},{'channel':_0x37a9('0x10'),'model':_0x37a9('0x12'),'event':_0x37a9('0x7'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Fax','model':_0x37a9('0x13'),'event':_0x37a9('0x7'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x37a9('0x14'),'model':'FaxInteraction','event':_0x37a9('0xd'),'condition':_0x37a9('0xe'),'callback':afterUpdate},{'channel':'Fax','model':'FaxMessage','event':_0x37a9('0x7'),'condition':_0x37a9('0x9'),'callback':afterCreateMessage},{'channel':'Mail','model':'MailInteraction','event':_0x37a9('0x7'),'condition':_0x37a9('0x8'),'callback':afterCreate},{'channel':_0x37a9('0x15'),'model':_0x37a9('0x16'),'event':'afterUpdate','condition':_0x37a9('0xe'),'callback':afterUpdate},{'channel':'Mail','model':_0x37a9('0x17'),'event':_0x37a9('0x7'),'condition':_0x37a9('0x9'),'callback':afterCreateMessage},{'channel':_0x37a9('0x18'),'model':_0x37a9('0x19'),'event':_0x37a9('0x7'),'condition':_0x37a9('0x8'),'callback':afterCreate},{'channel':_0x37a9('0x18'),'model':_0x37a9('0x19'),'event':_0x37a9('0xd'),'condition':_0x37a9('0xe'),'callback':afterUpdate},{'channel':'Openchannel','model':_0x37a9('0x1a'),'event':_0x37a9('0x7'),'condition':_0x37a9('0x9'),'callback':afterCreateMessage}];function request(_0x26c295){return client[_0x37a9('0x1b')](_0x37a9('0x1c'),_0x26c295)[_0x37a9('0x1d')](function(_0x1ff437){logger[_0x37a9('0x1e')](_0x37a9('0x1f'),_0x37a9('0x1c'),_0x1ff437);if(_0x1ff437[_0x37a9('0x20')]){if(_0x1ff437[_0x37a9('0x20')]['code']===0x1f4){logger[_0x37a9('0x20')](_0x37a9('0x1f'),'EventManager',_0x1ff437[_0x37a9('0x20')]);}}})[_0x37a9('0x21')](function(_0x379098){logger[_0x37a9('0x20')]('Trigger,\x20%s','EventManager',_0x379098);});}function afterCreateMessage(_0x54f331){return function(_0xd4936c){_0xd4936c=_0xd4936c[_0x37a9('0x22')]({'plain':!![]});_0xd4936c[_0x37a9('0x23')]=_0x54f331;_0xd4936c[_0x37a9('0x24')]=_0x54f331;_0xd4936c[_0x37a9('0x25')]=_0xd4936c['direction'];Promise[_0x37a9('0x26')]()['then'](function(){if(typeof _0xd4936c[_0x37a9('0x27')]===_0x37a9('0x28'))return null;var _0x54f7c9=_0x37a9('0x29')+_0xd4936c[_0x37a9('0x27')];return db[_0x37a9('0x2a')][_0x37a9('0x2b')](_0x54f7c9,{'type':db[_0x37a9('0x2c')][_0x37a9('0x2d')][_0x37a9('0x2e')],'raw':!![]});})[_0x37a9('0x1d')](function(_0x462136){if(_0x462136){_0xd4936c[_0x37a9('0x2f')]=_0x462136[0x0];}if(typeof _0xd4936c['UserId']===_0x37a9('0x28'))return;return getAgent(_0xd4936c[_0x37a9('0x30')]);})[_0x37a9('0x1d')](function(_0xe26033){if(_0xe26033){_0xd4936c[_0x37a9('0x31')]=util[_0x37a9('0x32')](_0x37a9('0x33'),_0xe26033[_0x37a9('0x34')]);_0xd4936c[_0x37a9('0x35')]=_0xe26033;_0xd4936c[_0x37a9('0x23')]=_0x54f331;return request({'event':_0x37a9('0x36'),'message':_0xd4936c});}else{return request({'event':_0x37a9('0x37'),'message':_0xd4936c});}})[_0x37a9('0x21')](function(_0x5fa19d){logger[_0x37a9('0x20')](_0x37a9('0x1f'),_0x37a9('0x38'),_0x5fa19d);});};}function afterCreateOfflineMessage(_0xd453a7){return function(_0x22f379){_0x22f379=_0x22f379[_0x37a9('0x22')]({'plain':!![]});_0x22f379[_0x37a9('0x23')]=_0xd453a7;_0x22f379['motionChannel']=_0xd453a7;_0x22f379[_0x37a9('0x25')]='offlineMessage';return request({'event':_0x22f379[_0x37a9('0x25')],'message':_0x22f379});};}function afterCreate(_0x3e1afa,_0x8cd239){return function(_0x170044){_0x170044=_0x170044[_0x37a9('0x22')]({'plain':!![]});_0x170044[_0x37a9('0x23')]=_0x3e1afa;_0x170044[_0x37a9('0x24')]=_0x3e1afa;_0x170044['event']=_0x37a9('0x39');Promise['resolve']()[_0x37a9('0x1d')](function(){var _0x39acb7=_0x37a9('0x29')+_0x170044['ContactId'];return db[_0x37a9('0x2a')]['query'](_0x39acb7,{'type':db[_0x37a9('0x2c')][_0x37a9('0x2d')][_0x37a9('0x2e')],'raw':!![]});})['then'](function(_0x345324){if(_0x345324){_0x170044[_0x37a9('0x2f')]=_0x345324[0x0];}if(typeof _0x170044[_0x37a9('0x30')]===_0x37a9('0x28'))return;return getAgent(_0x170044['UserId']);})[_0x37a9('0x1d')](function(_0x27ea8d){if(_0x27ea8d){_0x170044['interface']=util[_0x37a9('0x32')](_0x37a9('0x33'),_0x27ea8d['name']);_0x170044[_0x37a9('0x35')]=_0x27ea8d;}return request({'event':_0x8cd239,'message':_0x170044});})[_0x37a9('0x21')](function(_0x30b945){logger[_0x37a9('0x20')]('Trigger,\x20%s','AfterCreate',_0x30b945);});};}function afterUpdate(_0x1cd2ef){return function(_0x5a301a){var _0x5b9c69=_0x5a301a[_0x37a9('0x3a')](_0x37a9('0x3b'))&&_0x5a301a['closed'];var _0x12396e=_0x5a301a[_0x37a9('0x3a')](_0x37a9('0x3c'));if(_0x5b9c69||_0x12396e){var _0x3d6327=_0x5b9c69?'closedinteraction':_0x37a9('0x3c');var _0x1c4a79=_0x5a301a[_0x37a9('0x22')]({'plain':!![]});_0x1c4a79['channel']=_0x1cd2ef;_0x1c4a79['motionChannel']=_0x1cd2ef;_0x1c4a79[_0x37a9('0x25')]=_0x5b9c69?'closed':_0x37a9('0x3c');var _0x53538a='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x1c4a79[_0x37a9('0x27')];return db['sequelize']['query'](_0x53538a,{'type':db[_0x37a9('0x2c')][_0x37a9('0x2d')]['SELECT'],'raw':!![]})[_0x37a9('0x1d')](function(_0x2ebc7){if(_0x2ebc7){_0x1c4a79['contact']=_0x2ebc7[0x0];}if(typeof _0x1c4a79['UserId']===_0x37a9('0x28'))return;return getAgent(_0x1c4a79[_0x37a9('0x30')]);})[_0x37a9('0x1d')](function(_0x5bae67){if(_0x5bae67){_0x1c4a79[_0x37a9('0x31')]=util[_0x37a9('0x32')]('SIP/%s',_0x5bae67[_0x37a9('0x34')]);_0x1c4a79[_0x37a9('0x35')]=_0x5bae67;}return request({'event':_0x3d6327,'message':_0x1c4a79});})[_0x37a9('0x21')](function(_0xc3cf30){logger[_0x37a9('0x20')](_0x37a9('0x1f'),_0x37a9('0x3d'),_0xc3cf30);});}};}function getAgent(_0x11a3d2){return db[_0x37a9('0x3e')][_0x37a9('0x3f')]({'where':{'id':_0x11a3d2},'attributes':['id','name',_0x37a9('0x40'),'email',_0x37a9('0x41')],'raw':!![]})['then'](function(_0x166105){return _0x166105;});}exports[_0x37a9('0x42')]=function(){for(var _0x4a7da9=0x0;_0x4a7da9<triggers[_0x37a9('0x43')];_0x4a7da9+=0x1){if(db[_0x37a9('0x44')](triggers[_0x4a7da9][_0x37a9('0x45')])){db[triggers[_0x4a7da9][_0x37a9('0x45')]][_0x37a9('0x46')](triggers[_0x4a7da9][_0x37a9('0x25')],triggers[_0x4a7da9][_0x37a9('0x47')](triggers[_0x4a7da9]['channel'][_0x37a9('0x48')](),triggers[_0x4a7da9]['condition']));}}};