be0c8d2c91e7e5c0b22c543bdd1696f2648fc52f
[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 _0x9ed4=['AfterCreateMessage','motionChannel','offlineMessage','opened','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','Sequelize','UserId','interface','SIP/%s','name','changed','closed','substatus','AfterUpdate','User','find','fullname','email','internal','length','model','hook','callback','condition','util','jayson/promise','../logger','triggers','client','http','Chat','ChatInteraction','afterCreate','newinteraction','ChatMessage','newmessage','Sms','afterUpdate','closedinteraction','SmsMessage','Whatsapp','WhatsappInteraction','FaxInteraction','Fax','MailInteraction','Mail','Openchannel','OpenchannelInteraction','OpenchannelMessage','info','Trigger,\x20%s','EventManager','error','code','catch','get','channel','event','direction','resolve','then','ContactId','undefined','sequelize','query','QueryTypes','SELECT','contact','format','agent','incomingmessage','outgoingmessage'];(function(_0x1b0a4c,_0x384709){var _0x332501=function(_0x5d9d33){while(--_0x5d9d33){_0x1b0a4c['push'](_0x1b0a4c['shift']());}};_0x332501(++_0x384709);}(_0x9ed4,0xf0));var _0x49ed=function(_0x5374ab,_0x51f496){_0x5374ab=_0x5374ab-0x0;var _0x4e490d=_0x9ed4[_0x5374ab];return _0x4e490d;};'use strict';var util=require(_0x49ed('0x0'));var db=require('../../mysqldb')['db'];var jayson=require(_0x49ed('0x1'));var logger=require(_0x49ed('0x2'))(_0x49ed('0x3'));var client=jayson[_0x49ed('0x4')][_0x49ed('0x5')]({'port':0x232a});var triggers=[{'channel':_0x49ed('0x6'),'model':_0x49ed('0x7'),'event':_0x49ed('0x8'),'condition':_0x49ed('0x9'),'callback':afterCreate},{'channel':'Chat','model':_0x49ed('0x7'),'event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0x49ed('0x6'),'model':_0x49ed('0xa'),'event':'afterCreate','condition':_0x49ed('0xb'),'callback':afterCreateMessage},{'channel':_0x49ed('0x6'),'model':'ChatOfflineMessage','event':_0x49ed('0x8'),'condition':_0x49ed('0xb'),'callback':afterCreateOfflineMessage},{'channel':_0x49ed('0xc'),'model':'SmsInteraction','event':_0x49ed('0x8'),'condition':_0x49ed('0x9'),'callback':afterCreate},{'channel':_0x49ed('0xc'),'model':'SmsInteraction','event':_0x49ed('0xd'),'condition':_0x49ed('0xe'),'callback':afterUpdate},{'channel':_0x49ed('0xc'),'model':_0x49ed('0xf'),'event':_0x49ed('0x8'),'condition':_0x49ed('0xb'),'callback':afterCreateMessage},{'channel':_0x49ed('0x10'),'model':'WhatsappInteraction','event':_0x49ed('0x8'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x49ed('0x10'),'model':_0x49ed('0x11'),'event':_0x49ed('0xd'),'condition':_0x49ed('0xe'),'callback':afterUpdate},{'channel':_0x49ed('0x10'),'model':'WhatsappMessage','event':_0x49ed('0x8'),'condition':_0x49ed('0xb'),'callback':afterCreateMessage},{'channel':'Fax','model':_0x49ed('0x12'),'event':_0x49ed('0x8'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x49ed('0x13'),'model':_0x49ed('0x12'),'event':_0x49ed('0xd'),'condition':_0x49ed('0xe'),'callback':afterUpdate},{'channel':'Fax','model':'FaxMessage','event':_0x49ed('0x8'),'condition':_0x49ed('0xb'),'callback':afterCreateMessage},{'channel':'Mail','model':_0x49ed('0x14'),'event':_0x49ed('0x8'),'condition':_0x49ed('0x9'),'callback':afterCreate},{'channel':_0x49ed('0x15'),'model':_0x49ed('0x14'),'event':_0x49ed('0xd'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Mail','model':'MailMessage','event':_0x49ed('0x8'),'condition':_0x49ed('0xb'),'callback':afterCreateMessage},{'channel':_0x49ed('0x16'),'model':_0x49ed('0x17'),'event':_0x49ed('0x8'),'condition':_0x49ed('0x9'),'callback':afterCreate},{'channel':_0x49ed('0x16'),'model':_0x49ed('0x17'),'event':_0x49ed('0xd'),'condition':_0x49ed('0xe'),'callback':afterUpdate},{'channel':_0x49ed('0x16'),'model':_0x49ed('0x18'),'event':_0x49ed('0x8'),'condition':'newmessage','callback':afterCreateMessage}];function request(_0x5e433a){return client['request']('EventManager',_0x5e433a)['then'](function(_0x514076){logger[_0x49ed('0x19')](_0x49ed('0x1a'),_0x49ed('0x1b'),_0x514076);if(_0x514076[_0x49ed('0x1c')]){if(_0x514076[_0x49ed('0x1c')][_0x49ed('0x1d')]===0x1f4){logger[_0x49ed('0x1c')](_0x49ed('0x1a'),_0x49ed('0x1b'),_0x514076[_0x49ed('0x1c')]);}}})[_0x49ed('0x1e')](function(_0x3047e2){logger[_0x49ed('0x1c')](_0x49ed('0x1a'),_0x49ed('0x1b'),_0x3047e2);});}function afterCreateMessage(_0x2cea48){return function(_0x554edb){_0x554edb=_0x554edb[_0x49ed('0x1f')]({'plain':!![]});_0x554edb[_0x49ed('0x20')]=_0x2cea48;_0x554edb['motionChannel']=_0x2cea48;_0x554edb[_0x49ed('0x21')]=_0x554edb[_0x49ed('0x22')];Promise[_0x49ed('0x23')]()[_0x49ed('0x24')](function(){if(typeof _0x554edb[_0x49ed('0x25')]===_0x49ed('0x26'))return null;var _0x2c65bd='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x554edb['ContactId'];return db[_0x49ed('0x27')][_0x49ed('0x28')](_0x2c65bd,{'type':db['Sequelize'][_0x49ed('0x29')][_0x49ed('0x2a')],'raw':!![]});})[_0x49ed('0x24')](function(_0x3dab04){if(_0x3dab04){_0x554edb[_0x49ed('0x2b')]=_0x3dab04[0x0];}if(typeof _0x554edb['UserId']===_0x49ed('0x26'))return;return getAgent(_0x554edb['UserId']);})[_0x49ed('0x24')](function(_0xa7f288){if(_0xa7f288){_0x554edb['interface']=util[_0x49ed('0x2c')]('SIP/%s',_0xa7f288['name']);_0x554edb[_0x49ed('0x2d')]=_0xa7f288;_0x554edb[_0x49ed('0x20')]=_0x2cea48;return request({'event':_0x49ed('0x2e'),'message':_0x554edb});}else{return request({'event':_0x49ed('0x2f'),'message':_0x554edb});}})['catch'](function(_0x556836){logger[_0x49ed('0x1c')](_0x49ed('0x1a'),_0x49ed('0x30'),_0x556836);});};}function afterCreateOfflineMessage(_0x1af2ad){return function(_0x5e723a){_0x5e723a=_0x5e723a[_0x49ed('0x1f')]({'plain':!![]});_0x5e723a['channel']=_0x1af2ad;_0x5e723a[_0x49ed('0x31')]=_0x1af2ad;_0x5e723a['event']=_0x49ed('0x32');return request({'event':_0x5e723a['event'],'message':_0x5e723a});};}function afterCreate(_0xc0748c,_0x1fb7dd){return function(_0xcab885){_0xcab885=_0xcab885[_0x49ed('0x1f')]({'plain':!![]});_0xcab885['channel']=_0xc0748c;_0xcab885[_0x49ed('0x31')]=_0xc0748c;_0xcab885['event']=_0x49ed('0x33');Promise[_0x49ed('0x23')]()[_0x49ed('0x24')](function(){var _0x42ed91=_0x49ed('0x34')+_0xcab885[_0x49ed('0x25')];return db[_0x49ed('0x27')][_0x49ed('0x28')](_0x42ed91,{'type':db[_0x49ed('0x35')][_0x49ed('0x29')][_0x49ed('0x2a')],'raw':!![]});})[_0x49ed('0x24')](function(_0xba1ba0){if(_0xba1ba0){_0xcab885['contact']=_0xba1ba0[0x0];}if(typeof _0xcab885[_0x49ed('0x36')]===_0x49ed('0x26'))return;return getAgent(_0xcab885[_0x49ed('0x36')]);})[_0x49ed('0x24')](function(_0x4c1e5c){if(_0x4c1e5c){_0xcab885[_0x49ed('0x37')]=util[_0x49ed('0x2c')](_0x49ed('0x38'),_0x4c1e5c[_0x49ed('0x39')]);_0xcab885['agent']=_0x4c1e5c;}return request({'event':_0x1fb7dd,'message':_0xcab885});})[_0x49ed('0x1e')](function(_0x59d1a1){logger[_0x49ed('0x1c')]('Trigger,\x20%s','AfterCreate',_0x59d1a1);});};}function afterUpdate(_0x4673e2){return function(_0x53dcfa){var _0x16c437=_0x53dcfa[_0x49ed('0x3a')](_0x49ed('0x3b'))&&_0x53dcfa[_0x49ed('0x3b')];var _0x1da75a=_0x53dcfa[_0x49ed('0x3a')](_0x49ed('0x3c'));if(_0x16c437||_0x1da75a){var _0xcd888c=_0x16c437?_0x49ed('0xe'):_0x49ed('0x3c');var _0x54b4d0=_0x53dcfa[_0x49ed('0x1f')]({'plain':!![]});_0x54b4d0[_0x49ed('0x20')]=_0x4673e2;_0x54b4d0['motionChannel']=_0x4673e2;_0x54b4d0[_0x49ed('0x21')]=_0x16c437?_0x49ed('0x3b'):_0x49ed('0x3c');var _0x3573c5=_0x49ed('0x34')+_0x54b4d0['ContactId'];return db[_0x49ed('0x27')]['query'](_0x3573c5,{'type':db[_0x49ed('0x35')]['QueryTypes']['SELECT'],'raw':!![]})['then'](function(_0x357e3c){if(_0x357e3c){_0x54b4d0['contact']=_0x357e3c[0x0];}if(typeof _0x54b4d0['UserId']===_0x49ed('0x26'))return;return getAgent(_0x54b4d0[_0x49ed('0x36')]);})[_0x49ed('0x24')](function(_0x1ab06e){if(_0x1ab06e){_0x54b4d0[_0x49ed('0x37')]=util[_0x49ed('0x2c')](_0x49ed('0x38'),_0x1ab06e[_0x49ed('0x39')]);_0x54b4d0['agent']=_0x1ab06e;}return request({'event':_0xcd888c,'message':_0x54b4d0});})[_0x49ed('0x1e')](function(_0x44bb7d){logger[_0x49ed('0x1c')](_0x49ed('0x1a'),_0x49ed('0x3d'),_0x44bb7d);});}};}function getAgent(_0x5ee645){return db[_0x49ed('0x3e')][_0x49ed('0x3f')]({'where':{'id':_0x5ee645},'attributes':['id',_0x49ed('0x39'),_0x49ed('0x40'),_0x49ed('0x41'),_0x49ed('0x42')],'raw':!![]})[_0x49ed('0x24')](function(_0x3c3a3e){return _0x3c3a3e;});}exports['default']=function(){for(var _0xc5a030=0x0;_0xc5a030<triggers[_0x49ed('0x43')];_0xc5a030+=0x1){if(db['hasOwnProperty'](triggers[_0xc5a030][_0x49ed('0x44')])){db[triggers[_0xc5a030][_0x49ed('0x44')]][_0x49ed('0x45')](triggers[_0xc5a030][_0x49ed('0x21')],triggers[_0xc5a030][_0x49ed('0x46')](triggers[_0xc5a030][_0x49ed('0x20')]['toLowerCase'](),triggers[_0xc5a030][_0x49ed('0x47')]));}}};