949626945d18e669a49e84cce04fc73c71c66b2b
[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 _0xb880=['model','hook','callback','toLowerCase','condition','util','../../mysqldb','jayson/promise','../logger','client','http','Chat','ChatInteraction','afterCreate','newinteraction','closedinteraction','ChatMessage','ChatOfflineMessage','newmessage','Sms','SmsInteraction','afterUpdate','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxMessage','Mail','MailInteraction','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','then','Trigger,\x20%s','EventManager','error','code','catch','get','channel','event','direction','resolve','ContactId','undefined','sequelize','Sequelize','QueryTypes','SELECT','contact','UserId','interface','format','SIP/%s','name','agent','outgoingmessage','AfterCreateMessage','offlineMessage','motionChannel','opened','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','query','AfterCreate','changed','closed','substatus','AfterUpdate','User','find','fullname','email','default','length','hasOwnProperty'];(function(_0x2e8ac7,_0x2c1d65){var _0x41f62c=function(_0x11bc1b){while(--_0x11bc1b){_0x2e8ac7['push'](_0x2e8ac7['shift']());}};_0x41f62c(++_0x2c1d65);}(_0xb880,0x186));var _0x0b88=function(_0x149323,_0x426d63){_0x149323=_0x149323-0x0;var _0x19c765=_0xb880[_0x149323];return _0x19c765;};'use strict';var util=require(_0x0b88('0x0'));var db=require(_0x0b88('0x1'))['db'];var jayson=require(_0x0b88('0x2'));var logger=require(_0x0b88('0x3'))('triggers');var client=jayson[_0x0b88('0x4')][_0x0b88('0x5')]({'port':0x232a});var triggers=[{'channel':_0x0b88('0x6'),'model':_0x0b88('0x7'),'event':_0x0b88('0x8'),'condition':_0x0b88('0x9'),'callback':afterCreate},{'channel':'Chat','model':_0x0b88('0x7'),'event':'afterUpdate','condition':_0x0b88('0xa'),'callback':afterUpdate},{'channel':_0x0b88('0x6'),'model':_0x0b88('0xb'),'event':_0x0b88('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Chat','model':_0x0b88('0xc'),'event':_0x0b88('0x8'),'condition':_0x0b88('0xd'),'callback':afterCreateOfflineMessage},{'channel':_0x0b88('0xe'),'model':_0x0b88('0xf'),'event':_0x0b88('0x8'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x0b88('0xe'),'model':'SmsInteraction','event':_0x0b88('0x10'),'condition':_0x0b88('0xa'),'callback':afterUpdate},{'channel':_0x0b88('0xe'),'model':_0x0b88('0x11'),'event':'afterCreate','condition':'newmessage','callback':afterCreateMessage},{'channel':_0x0b88('0x12'),'model':_0x0b88('0x13'),'event':'afterCreate','condition':_0x0b88('0x9'),'callback':afterCreate},{'channel':'Whatsapp','model':_0x0b88('0x13'),'event':_0x0b88('0x10'),'condition':_0x0b88('0xa'),'callback':afterUpdate},{'channel':'Whatsapp','model':_0x0b88('0x14'),'event':'afterCreate','condition':'newmessage','callback':afterCreateMessage},{'channel':_0x0b88('0x15'),'model':'FaxInteraction','event':'afterCreate','condition':_0x0b88('0x9'),'callback':afterCreate},{'channel':_0x0b88('0x15'),'model':'FaxInteraction','event':_0x0b88('0x10'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x0b88('0x15'),'model':_0x0b88('0x16'),'event':_0x0b88('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x0b88('0x17'),'model':_0x0b88('0x18'),'event':_0x0b88('0x8'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x0b88('0x17'),'model':_0x0b88('0x18'),'event':_0x0b88('0x10'),'condition':_0x0b88('0xa'),'callback':afterUpdate},{'channel':_0x0b88('0x17'),'model':'MailMessage','event':_0x0b88('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x0b88('0x19'),'model':_0x0b88('0x1a'),'event':_0x0b88('0x8'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x0b88('0x19'),'model':_0x0b88('0x1a'),'event':_0x0b88('0x10'),'condition':_0x0b88('0xa'),'callback':afterUpdate},{'channel':_0x0b88('0x19'),'model':_0x0b88('0x1b'),'event':_0x0b88('0x8'),'condition':_0x0b88('0xd'),'callback':afterCreateMessage}];function request(_0x5e7a5d){return client[_0x0b88('0x1c')]('EventManager',_0x5e7a5d)[_0x0b88('0x1d')](function(_0x157683){logger['info'](_0x0b88('0x1e'),_0x0b88('0x1f'),_0x157683);if(_0x157683[_0x0b88('0x20')]){if(_0x157683[_0x0b88('0x20')][_0x0b88('0x21')]===0x1f4){logger[_0x0b88('0x20')](_0x0b88('0x1e'),'EventManager',_0x157683['error']);}}})[_0x0b88('0x22')](function(_0x32896f){logger['error'](_0x0b88('0x1e'),_0x0b88('0x1f'),_0x32896f);});}function afterCreateMessage(_0x5511b1){return function(_0x4ec5f1){_0x4ec5f1=_0x4ec5f1[_0x0b88('0x23')]({'plain':!![]});_0x4ec5f1[_0x0b88('0x24')]=_0x5511b1;_0x4ec5f1['motionChannel']=_0x5511b1;_0x4ec5f1[_0x0b88('0x25')]=_0x4ec5f1[_0x0b88('0x26')];Promise[_0x0b88('0x27')]()[_0x0b88('0x1d')](function(){if(typeof _0x4ec5f1[_0x0b88('0x28')]===_0x0b88('0x29'))return null;var _0x5f4428='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x4ec5f1[_0x0b88('0x28')];return db[_0x0b88('0x2a')]['query'](_0x5f4428,{'type':db[_0x0b88('0x2b')][_0x0b88('0x2c')][_0x0b88('0x2d')],'raw':!![]});})['then'](function(_0x806b1e){if(_0x806b1e){_0x4ec5f1[_0x0b88('0x2e')]=_0x806b1e[0x0];}if(typeof _0x4ec5f1[_0x0b88('0x2f')]===_0x0b88('0x29'))return;return getAgent(_0x4ec5f1[_0x0b88('0x2f')]);})[_0x0b88('0x1d')](function(_0x2b8435){if(_0x2b8435){_0x4ec5f1[_0x0b88('0x30')]=util[_0x0b88('0x31')](_0x0b88('0x32'),_0x2b8435[_0x0b88('0x33')]);_0x4ec5f1[_0x0b88('0x34')]=_0x2b8435;_0x4ec5f1[_0x0b88('0x24')]=_0x5511b1;return request({'event':'incomingmessage','message':_0x4ec5f1});}else{return request({'event':_0x0b88('0x35'),'message':_0x4ec5f1});}})['catch'](function(_0xbb4178){logger['error'](_0x0b88('0x1e'),_0x0b88('0x36'),_0xbb4178);});};}function afterCreateOfflineMessage(_0x2ac269){return function(_0x635fcc){_0x635fcc=_0x635fcc[_0x0b88('0x23')]({'plain':!![]});_0x635fcc[_0x0b88('0x24')]=_0x2ac269;_0x635fcc['motionChannel']=_0x2ac269;_0x635fcc[_0x0b88('0x25')]=_0x0b88('0x37');return request({'event':_0x635fcc[_0x0b88('0x25')],'message':_0x635fcc});};}function afterCreate(_0xe9b2e6,_0x222b88){return function(_0x1b202f){_0x1b202f=_0x1b202f[_0x0b88('0x23')]({'plain':!![]});_0x1b202f['channel']=_0xe9b2e6;_0x1b202f[_0x0b88('0x38')]=_0xe9b2e6;_0x1b202f[_0x0b88('0x25')]=_0x0b88('0x39');Promise[_0x0b88('0x27')]()[_0x0b88('0x1d')](function(){var _0x111b93=_0x0b88('0x3a')+_0x1b202f['ContactId'];return db[_0x0b88('0x2a')][_0x0b88('0x3b')](_0x111b93,{'type':db[_0x0b88('0x2b')]['QueryTypes'][_0x0b88('0x2d')],'raw':!![]});})[_0x0b88('0x1d')](function(_0x35abd5){if(_0x35abd5){_0x1b202f[_0x0b88('0x2e')]=_0x35abd5[0x0];}if(typeof _0x1b202f[_0x0b88('0x2f')]===_0x0b88('0x29'))return;return getAgent(_0x1b202f[_0x0b88('0x2f')]);})[_0x0b88('0x1d')](function(_0x3d67a4){if(_0x3d67a4){_0x1b202f[_0x0b88('0x30')]=util[_0x0b88('0x31')]('SIP/%s',_0x3d67a4['name']);_0x1b202f[_0x0b88('0x34')]=_0x3d67a4;}return request({'event':_0x222b88,'message':_0x1b202f});})[_0x0b88('0x22')](function(_0x442b9b){logger[_0x0b88('0x20')](_0x0b88('0x1e'),_0x0b88('0x3c'),_0x442b9b);});};}function afterUpdate(_0x171bfd){return function(_0xa41f69){var _0x46faef=_0xa41f69[_0x0b88('0x3d')]('closed')&&_0xa41f69[_0x0b88('0x3e')];var _0x4031ec=_0xa41f69[_0x0b88('0x3d')](_0x0b88('0x3f'));if(_0x46faef||_0x4031ec){var _0x1776eb=_0x46faef?'closedinteraction':_0x0b88('0x3f');var _0x3d2c49=_0xa41f69['get']({'plain':!![]});_0x3d2c49['channel']=_0x171bfd;_0x3d2c49[_0x0b88('0x38')]=_0x171bfd;_0x3d2c49[_0x0b88('0x25')]=_0x46faef?_0x0b88('0x3e'):_0x0b88('0x3f');var _0x5b3ee4=_0x0b88('0x3a')+_0x3d2c49[_0x0b88('0x28')];return db[_0x0b88('0x2a')][_0x0b88('0x3b')](_0x5b3ee4,{'type':db[_0x0b88('0x2b')][_0x0b88('0x2c')][_0x0b88('0x2d')],'raw':!![]})[_0x0b88('0x1d')](function(_0x1c21c0){if(_0x1c21c0){_0x3d2c49[_0x0b88('0x2e')]=_0x1c21c0[0x0];}if(typeof _0x3d2c49[_0x0b88('0x2f')]==='undefined')return;return getAgent(_0x3d2c49[_0x0b88('0x2f')]);})['then'](function(_0x55381e){if(_0x55381e){_0x3d2c49[_0x0b88('0x30')]=util['format'](_0x0b88('0x32'),_0x55381e['name']);_0x3d2c49[_0x0b88('0x34')]=_0x55381e;}return request({'event':_0x1776eb,'message':_0x3d2c49});})[_0x0b88('0x22')](function(_0x206f5d){logger[_0x0b88('0x20')](_0x0b88('0x1e'),_0x0b88('0x40'),_0x206f5d);});}};}function getAgent(_0x1b13d){return db[_0x0b88('0x41')][_0x0b88('0x42')]({'where':{'id':_0x1b13d},'attributes':['id',_0x0b88('0x33'),_0x0b88('0x43'),_0x0b88('0x44'),'internal'],'raw':!![]})['then'](function(_0x12aa65){return _0x12aa65;});}exports[_0x0b88('0x45')]=function(){for(var _0x507ee2=0x0;_0x507ee2<triggers[_0x0b88('0x46')];_0x507ee2+=0x1){if(db[_0x0b88('0x47')](triggers[_0x507ee2]['model'])){db[triggers[_0x507ee2][_0x0b88('0x48')]][_0x0b88('0x49')](triggers[_0x507ee2][_0x0b88('0x25')],triggers[_0x507ee2][_0x0b88('0x4a')](triggers[_0x507ee2][_0x0b88('0x24')][_0x0b88('0x4b')](),triggers[_0x507ee2][_0x0b88('0x4c')]));}}};