e51e534c27293238657add450a4b191ad2e798f0
[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 _0xaa45=['newinteraction','afterUpdate','closedinteraction','Chat','ChatMessage','newmessage','ChatOfflineMessage','Sms','SmsInteraction','SmsMessage','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','MailInteraction','Mail','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','info','Trigger,\x20%s','EventManager','error','code','catch','get','motionChannel','event','direction','then','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','query','Sequelize','QueryTypes','contact','UserId','interface','SIP/%s','name','outgoingmessage','AfterCreateMessage','channel','offlineMessage','opened','sequelize','format','agent','AfterCreate','changed','closed','substatus','SELECT','AfterUpdate','User','find','fullname','email','default','length','hasOwnProperty','model','hook','toLowerCase','condition','../../mysqldb','jayson/promise','../logger','http','ChatInteraction','afterCreate'];(function(_0x12b124,_0x38ae23){var _0x1c3a5a=function(_0x10067e){while(--_0x10067e){_0x12b124['push'](_0x12b124['shift']());}};_0x1c3a5a(++_0x38ae23);}(_0xaa45,0x16c));var _0x5aa4=function(_0x9c8b4a,_0x2387ff){_0x9c8b4a=_0x9c8b4a-0x0;var _0x198bef=_0xaa45[_0x9c8b4a];return _0x198bef;};'use strict';var util=require('util');var db=require(_0x5aa4('0x0'))['db'];var jayson=require(_0x5aa4('0x1'));var logger=require(_0x5aa4('0x2'))('triggers');var client=jayson['client'][_0x5aa4('0x3')]({'port':0x232a});var triggers=[{'channel':'Chat','model':_0x5aa4('0x4'),'event':_0x5aa4('0x5'),'condition':_0x5aa4('0x6'),'callback':afterCreate},{'channel':'Chat','model':_0x5aa4('0x4'),'event':_0x5aa4('0x7'),'condition':_0x5aa4('0x8'),'callback':afterUpdate},{'channel':_0x5aa4('0x9'),'model':_0x5aa4('0xa'),'event':_0x5aa4('0x5'),'condition':_0x5aa4('0xb'),'callback':afterCreateMessage},{'channel':'Chat','model':_0x5aa4('0xc'),'event':_0x5aa4('0x5'),'condition':_0x5aa4('0xb'),'callback':afterCreateOfflineMessage},{'channel':_0x5aa4('0xd'),'model':'SmsInteraction','event':_0x5aa4('0x5'),'condition':_0x5aa4('0x6'),'callback':afterCreate},{'channel':'Sms','model':_0x5aa4('0xe'),'event':_0x5aa4('0x7'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x5aa4('0xd'),'model':_0x5aa4('0xf'),'event':_0x5aa4('0x5'),'condition':_0x5aa4('0xb'),'callback':afterCreateMessage},{'channel':'Whatsapp','model':_0x5aa4('0x10'),'event':_0x5aa4('0x5'),'condition':_0x5aa4('0x6'),'callback':afterCreate},{'channel':'Whatsapp','model':_0x5aa4('0x10'),'event':_0x5aa4('0x7'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Whatsapp','model':_0x5aa4('0x11'),'event':_0x5aa4('0x5'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Fax','model':'FaxInteraction','event':_0x5aa4('0x5'),'condition':_0x5aa4('0x6'),'callback':afterCreate},{'channel':_0x5aa4('0x12'),'model':_0x5aa4('0x13'),'event':'afterUpdate','condition':_0x5aa4('0x8'),'callback':afterUpdate},{'channel':_0x5aa4('0x12'),'model':_0x5aa4('0x14'),'event':_0x5aa4('0x5'),'condition':_0x5aa4('0xb'),'callback':afterCreateMessage},{'channel':'Mail','model':_0x5aa4('0x15'),'event':'afterCreate','condition':_0x5aa4('0x6'),'callback':afterCreate},{'channel':_0x5aa4('0x16'),'model':_0x5aa4('0x15'),'event':_0x5aa4('0x7'),'condition':_0x5aa4('0x8'),'callback':afterUpdate},{'channel':_0x5aa4('0x16'),'model':'MailMessage','event':_0x5aa4('0x5'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x5aa4('0x17'),'model':'OpenchannelInteraction','event':_0x5aa4('0x5'),'condition':_0x5aa4('0x6'),'callback':afterCreate},{'channel':_0x5aa4('0x17'),'model':_0x5aa4('0x18'),'event':_0x5aa4('0x7'),'condition':_0x5aa4('0x8'),'callback':afterUpdate},{'channel':'Openchannel','model':_0x5aa4('0x19'),'event':_0x5aa4('0x5'),'condition':_0x5aa4('0xb'),'callback':afterCreateMessage}];function request(_0xea285a){return client[_0x5aa4('0x1a')]('EventManager',_0xea285a)['then'](function(_0x42132b){logger[_0x5aa4('0x1b')](_0x5aa4('0x1c'),_0x5aa4('0x1d'),_0x42132b);if(_0x42132b[_0x5aa4('0x1e')]){if(_0x42132b['error'][_0x5aa4('0x1f')]===0x1f4){logger['error']('Trigger,\x20%s',_0x5aa4('0x1d'),_0x42132b[_0x5aa4('0x1e')]);}}})[_0x5aa4('0x20')](function(_0x464c65){logger['error'](_0x5aa4('0x1c'),_0x5aa4('0x1d'),_0x464c65);});}function afterCreateMessage(_0x8246c9){return function(_0x51639d){_0x51639d=_0x51639d[_0x5aa4('0x21')]({'plain':!![]});_0x51639d['channel']=_0x8246c9;_0x51639d[_0x5aa4('0x22')]=_0x8246c9;_0x51639d[_0x5aa4('0x23')]=_0x51639d[_0x5aa4('0x24')];Promise['resolve']()[_0x5aa4('0x25')](function(){if(typeof _0x51639d['ContactId']===_0x5aa4('0x26'))return null;var _0x2f4020=_0x5aa4('0x27')+_0x51639d[_0x5aa4('0x28')];return db['sequelize'][_0x5aa4('0x29')](_0x2f4020,{'type':db[_0x5aa4('0x2a')][_0x5aa4('0x2b')]['SELECT'],'raw':!![]});})[_0x5aa4('0x25')](function(_0x53af32){if(_0x53af32){_0x51639d[_0x5aa4('0x2c')]=_0x53af32[0x0];}if(typeof _0x51639d[_0x5aa4('0x2d')]===_0x5aa4('0x26'))return;return getAgent(_0x51639d[_0x5aa4('0x2d')]);})[_0x5aa4('0x25')](function(_0xe62b63){if(_0xe62b63){_0x51639d[_0x5aa4('0x2e')]=util['format'](_0x5aa4('0x2f'),_0xe62b63[_0x5aa4('0x30')]);_0x51639d['agent']=_0xe62b63;_0x51639d['channel']=_0x8246c9;return request({'event':'incomingmessage','message':_0x51639d});}else{return request({'event':_0x5aa4('0x31'),'message':_0x51639d});}})[_0x5aa4('0x20')](function(_0x206862){logger[_0x5aa4('0x1e')]('Trigger,\x20%s',_0x5aa4('0x32'),_0x206862);});};}function afterCreateOfflineMessage(_0x46c118){return function(_0x42d851){_0x42d851=_0x42d851[_0x5aa4('0x21')]({'plain':!![]});_0x42d851[_0x5aa4('0x33')]=_0x46c118;_0x42d851[_0x5aa4('0x22')]=_0x46c118;_0x42d851[_0x5aa4('0x23')]=_0x5aa4('0x34');return request({'event':_0x42d851['event'],'message':_0x42d851});};}function afterCreate(_0x2382a9,_0x18f1b4){return function(_0x345d80){_0x345d80=_0x345d80['get']({'plain':!![]});_0x345d80[_0x5aa4('0x33')]=_0x2382a9;_0x345d80[_0x5aa4('0x22')]=_0x2382a9;_0x345d80[_0x5aa4('0x23')]=_0x5aa4('0x35');Promise['resolve']()['then'](function(){var _0x440a29=_0x5aa4('0x27')+_0x345d80[_0x5aa4('0x28')];return db[_0x5aa4('0x36')][_0x5aa4('0x29')](_0x440a29,{'type':db['Sequelize'][_0x5aa4('0x2b')]['SELECT'],'raw':!![]});})[_0x5aa4('0x25')](function(_0x10960a){if(_0x10960a){_0x345d80['contact']=_0x10960a[0x0];}if(typeof _0x345d80[_0x5aa4('0x2d')]===_0x5aa4('0x26'))return;return getAgent(_0x345d80['UserId']);})[_0x5aa4('0x25')](function(_0x1f0f2b){if(_0x1f0f2b){_0x345d80[_0x5aa4('0x2e')]=util[_0x5aa4('0x37')](_0x5aa4('0x2f'),_0x1f0f2b[_0x5aa4('0x30')]);_0x345d80[_0x5aa4('0x38')]=_0x1f0f2b;}return request({'event':_0x18f1b4,'message':_0x345d80});})['catch'](function(_0x1afbab){logger['error'](_0x5aa4('0x1c'),_0x5aa4('0x39'),_0x1afbab);});};}function afterUpdate(_0x1289ef){return function(_0x25c522){var _0x5d139b=_0x25c522[_0x5aa4('0x3a')](_0x5aa4('0x3b'))&&_0x25c522[_0x5aa4('0x3b')];var _0x5ac599=_0x25c522['changed']('substatus');if(_0x5d139b||_0x5ac599){var _0x1e5ec9=_0x5d139b?_0x5aa4('0x8'):_0x5aa4('0x3c');var _0x4a5a93=_0x25c522[_0x5aa4('0x21')]({'plain':!![]});_0x4a5a93[_0x5aa4('0x33')]=_0x1289ef;_0x4a5a93[_0x5aa4('0x22')]=_0x1289ef;_0x4a5a93[_0x5aa4('0x23')]=_0x5d139b?'closed':'substatus';var _0x5b478f=_0x5aa4('0x27')+_0x4a5a93['ContactId'];return db[_0x5aa4('0x36')]['query'](_0x5b478f,{'type':db['Sequelize'][_0x5aa4('0x2b')][_0x5aa4('0x3d')],'raw':!![]})[_0x5aa4('0x25')](function(_0x133f87){if(_0x133f87){_0x4a5a93[_0x5aa4('0x2c')]=_0x133f87[0x0];}if(typeof _0x4a5a93[_0x5aa4('0x2d')]===_0x5aa4('0x26'))return;return getAgent(_0x4a5a93[_0x5aa4('0x2d')]);})[_0x5aa4('0x25')](function(_0x4616b0){if(_0x4616b0){_0x4a5a93[_0x5aa4('0x2e')]=util['format']('SIP/%s',_0x4616b0[_0x5aa4('0x30')]);_0x4a5a93[_0x5aa4('0x38')]=_0x4616b0;}return request({'event':_0x1e5ec9,'message':_0x4a5a93});})[_0x5aa4('0x20')](function(_0x2830b0){logger[_0x5aa4('0x1e')](_0x5aa4('0x1c'),_0x5aa4('0x3e'),_0x2830b0);});}};}function getAgent(_0x2c90eb){return db[_0x5aa4('0x3f')][_0x5aa4('0x40')]({'where':{'id':_0x2c90eb},'attributes':['id','name',_0x5aa4('0x41'),_0x5aa4('0x42'),'internal'],'raw':!![]})['then'](function(_0x318a2c){return _0x318a2c;});}exports[_0x5aa4('0x43')]=function(){for(var _0x59bb38=0x0;_0x59bb38<triggers[_0x5aa4('0x44')];_0x59bb38+=0x1){if(db[_0x5aa4('0x45')](triggers[_0x59bb38][_0x5aa4('0x46')])){db[triggers[_0x59bb38]['model']][_0x5aa4('0x47')](triggers[_0x59bb38][_0x5aa4('0x23')],triggers[_0x59bb38]['callback'](triggers[_0x59bb38][_0x5aa4('0x33')][_0x5aa4('0x48')](),triggers[_0x59bb38][_0x5aa4('0x49')]));}}};