Built motion from commit 87cd5f02.|2.5.48
[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 _0xe38c=['SELECT','contact','UserId','undefined','interface','agent','incomingmessage','outgoingmessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','QueryTypes','format','AfterCreate','changed','closed','substatus','SIP/%s','AfterUpdate','User','find','name','fullname','email','internal','length','hasOwnProperty','hook','callback','toLowerCase','util','../../mysqldb','jayson/promise','../logger','triggers','http','Chat','ChatInteraction','afterCreate','closedinteraction','newmessage','Sms','newinteraction','SmsInteraction','afterUpdate','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','FaxInteraction','Fax','FaxMessage','MailInteraction','Mail','OpenchannelInteraction','Openchannel','OpenchannelMessage','request','EventManager','then','info','Trigger,\x20%s','error','code','catch','get','channel','motionChannel','event','direction','resolve','ContactId','sequelize','query','Sequelize'];(function(_0x2d281e,_0x5d509b){var _0x4c985c=function(_0xaad575){while(--_0xaad575){_0x2d281e['push'](_0x2d281e['shift']());}};_0x4c985c(++_0x5d509b);}(_0xe38c,0x1d2));var _0xce38=function(_0x13e741,_0x5d3c24){_0x13e741=_0x13e741-0x0;var _0x3f8bb3=_0xe38c[_0x13e741];return _0x3f8bb3;};'use strict';var util=require(_0xce38('0x0'));var db=require(_0xce38('0x1'))['db'];var jayson=require(_0xce38('0x2'));var logger=require(_0xce38('0x3'))(_0xce38('0x4'));var client=jayson['client'][_0xce38('0x5')]({'port':0x232a});var triggers=[{'channel':_0xce38('0x6'),'model':_0xce38('0x7'),'event':_0xce38('0x8'),'condition':'newinteraction','callback':afterCreate},{'channel':_0xce38('0x6'),'model':_0xce38('0x7'),'event':'afterUpdate','condition':_0xce38('0x9'),'callback':afterUpdate},{'channel':_0xce38('0x6'),'model':'ChatMessage','event':_0xce38('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xce38('0x6'),'model':'ChatOfflineMessage','event':_0xce38('0x8'),'condition':_0xce38('0xa'),'callback':afterCreateOfflineMessage},{'channel':_0xce38('0xb'),'model':'SmsInteraction','event':_0xce38('0x8'),'condition':_0xce38('0xc'),'callback':afterCreate},{'channel':_0xce38('0xb'),'model':_0xce38('0xd'),'event':_0xce38('0xe'),'condition':_0xce38('0x9'),'callback':afterUpdate},{'channel':_0xce38('0xb'),'model':_0xce38('0xf'),'event':_0xce38('0x8'),'condition':_0xce38('0xa'),'callback':afterCreateMessage},{'channel':_0xce38('0x10'),'model':_0xce38('0x11'),'event':_0xce38('0x8'),'condition':_0xce38('0xc'),'callback':afterCreate},{'channel':_0xce38('0x10'),'model':_0xce38('0x11'),'event':'afterUpdate','condition':_0xce38('0x9'),'callback':afterUpdate},{'channel':_0xce38('0x10'),'model':_0xce38('0x12'),'event':'afterCreate','condition':'newmessage','callback':afterCreateMessage},{'channel':'Fax','model':_0xce38('0x13'),'event':'afterCreate','condition':_0xce38('0xc'),'callback':afterCreate},{'channel':_0xce38('0x14'),'model':_0xce38('0x13'),'event':'afterUpdate','condition':_0xce38('0x9'),'callback':afterUpdate},{'channel':'Fax','model':_0xce38('0x15'),'event':_0xce38('0x8'),'condition':_0xce38('0xa'),'callback':afterCreateMessage},{'channel':'Mail','model':_0xce38('0x16'),'event':_0xce38('0x8'),'condition':_0xce38('0xc'),'callback':afterCreate},{'channel':_0xce38('0x17'),'model':'MailInteraction','event':_0xce38('0xe'),'condition':_0xce38('0x9'),'callback':afterUpdate},{'channel':'Mail','model':'MailMessage','event':'afterCreate','condition':_0xce38('0xa'),'callback':afterCreateMessage},{'channel':'Openchannel','model':_0xce38('0x18'),'event':_0xce38('0x8'),'condition':_0xce38('0xc'),'callback':afterCreate},{'channel':_0xce38('0x19'),'model':_0xce38('0x18'),'event':_0xce38('0xe'),'condition':_0xce38('0x9'),'callback':afterUpdate},{'channel':_0xce38('0x19'),'model':_0xce38('0x1a'),'event':_0xce38('0x8'),'condition':'newmessage','callback':afterCreateMessage}];function request(_0x38c4e3){return client[_0xce38('0x1b')](_0xce38('0x1c'),_0x38c4e3)[_0xce38('0x1d')](function(_0x5215dd){logger[_0xce38('0x1e')](_0xce38('0x1f'),'EventManager',_0x5215dd);if(_0x5215dd[_0xce38('0x20')]){if(_0x5215dd[_0xce38('0x20')][_0xce38('0x21')]===0x1f4){logger['error']('Trigger,\x20%s',_0xce38('0x1c'),_0x5215dd[_0xce38('0x20')]);}}})[_0xce38('0x22')](function(_0x17bf5c){logger[_0xce38('0x20')]('Trigger,\x20%s',_0xce38('0x1c'),_0x17bf5c);});}function afterCreateMessage(_0x22cd07){return function(_0x532399){_0x532399=_0x532399[_0xce38('0x23')]({'plain':!![]});_0x532399[_0xce38('0x24')]=_0x22cd07;_0x532399[_0xce38('0x25')]=_0x22cd07;_0x532399[_0xce38('0x26')]=_0x532399[_0xce38('0x27')];Promise[_0xce38('0x28')]()[_0xce38('0x1d')](function(){if(typeof _0x532399[_0xce38('0x29')]==='undefined')return null;var _0xe99dd5='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x532399[_0xce38('0x29')];return db[_0xce38('0x2a')][_0xce38('0x2b')](_0xe99dd5,{'type':db[_0xce38('0x2c')]['QueryTypes'][_0xce38('0x2d')],'raw':!![]});})[_0xce38('0x1d')](function(_0x2727c4){if(_0x2727c4){_0x532399[_0xce38('0x2e')]=_0x2727c4[0x0];}if(typeof _0x532399[_0xce38('0x2f')]===_0xce38('0x30'))return;return getAgent(_0x532399[_0xce38('0x2f')]);})['then'](function(_0x3c66ea){if(_0x3c66ea){_0x532399[_0xce38('0x31')]=util['format']('SIP/%s',_0x3c66ea['name']);_0x532399[_0xce38('0x32')]=_0x3c66ea;_0x532399['channel']=_0x22cd07;return request({'event':_0xce38('0x33'),'message':_0x532399});}else{return request({'event':_0xce38('0x34'),'message':_0x532399});}})[_0xce38('0x22')](function(_0x420f64){logger[_0xce38('0x20')](_0xce38('0x1f'),'AfterCreateMessage',_0x420f64);});};}function afterCreateOfflineMessage(_0x562cfc){return function(_0x22ea7a){_0x22ea7a=_0x22ea7a[_0xce38('0x23')]({'plain':!![]});_0x22ea7a[_0xce38('0x24')]=_0x562cfc;_0x22ea7a['motionChannel']=_0x562cfc;_0x22ea7a[_0xce38('0x26')]='offlineMessage';return request({'event':_0x22ea7a[_0xce38('0x26')],'message':_0x22ea7a});};}function afterCreate(_0x1ad23c,_0x5e464a){return function(_0x1c1988){_0x1c1988=_0x1c1988['get']({'plain':!![]});_0x1c1988[_0xce38('0x24')]=_0x1ad23c;_0x1c1988['motionChannel']=_0x1ad23c;_0x1c1988[_0xce38('0x26')]='opened';Promise[_0xce38('0x28')]()[_0xce38('0x1d')](function(){var _0x14c24d=_0xce38('0x35')+_0x1c1988[_0xce38('0x29')];return db[_0xce38('0x2a')][_0xce38('0x2b')](_0x14c24d,{'type':db[_0xce38('0x2c')][_0xce38('0x36')][_0xce38('0x2d')],'raw':!![]});})[_0xce38('0x1d')](function(_0x1208be){if(_0x1208be){_0x1c1988['contact']=_0x1208be[0x0];}if(typeof _0x1c1988[_0xce38('0x2f')]===_0xce38('0x30'))return;return getAgent(_0x1c1988[_0xce38('0x2f')]);})['then'](function(_0x14fc00){if(_0x14fc00){_0x1c1988[_0xce38('0x31')]=util[_0xce38('0x37')]('SIP/%s',_0x14fc00['name']);_0x1c1988['agent']=_0x14fc00;}return request({'event':_0x5e464a,'message':_0x1c1988});})[_0xce38('0x22')](function(_0x2a39df){logger[_0xce38('0x20')](_0xce38('0x1f'),_0xce38('0x38'),_0x2a39df);});};}function afterUpdate(_0x492ee2){return function(_0x41e4a3){var _0x3336e3=_0x41e4a3[_0xce38('0x39')](_0xce38('0x3a'))&&_0x41e4a3[_0xce38('0x3a')];var _0x2f7268=_0x41e4a3[_0xce38('0x39')](_0xce38('0x3b'));if(_0x3336e3||_0x2f7268){var _0x12e390=_0x3336e3?'closedinteraction':_0xce38('0x3b');var _0x58808=_0x41e4a3[_0xce38('0x23')]({'plain':!![]});_0x58808[_0xce38('0x24')]=_0x492ee2;_0x58808[_0xce38('0x25')]=_0x492ee2;_0x58808['event']=_0x3336e3?_0xce38('0x3a'):'substatus';var _0x541235='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x58808['ContactId'];return db[_0xce38('0x2a')][_0xce38('0x2b')](_0x541235,{'type':db[_0xce38('0x2c')][_0xce38('0x36')][_0xce38('0x2d')],'raw':!![]})[_0xce38('0x1d')](function(_0x4006f5){if(_0x4006f5){_0x58808[_0xce38('0x2e')]=_0x4006f5[0x0];}if(typeof _0x58808[_0xce38('0x2f')]===_0xce38('0x30'))return;return getAgent(_0x58808[_0xce38('0x2f')]);})[_0xce38('0x1d')](function(_0x769e8d){if(_0x769e8d){_0x58808[_0xce38('0x31')]=util['format'](_0xce38('0x3c'),_0x769e8d['name']);_0x58808[_0xce38('0x32')]=_0x769e8d;}return request({'event':_0x12e390,'message':_0x58808});})[_0xce38('0x22')](function(_0x5a1062){logger[_0xce38('0x20')](_0xce38('0x1f'),_0xce38('0x3d'),_0x5a1062);});}};}function getAgent(_0x55cb92){return db[_0xce38('0x3e')][_0xce38('0x3f')]({'where':{'id':_0x55cb92},'attributes':['id',_0xce38('0x40'),_0xce38('0x41'),_0xce38('0x42'),_0xce38('0x43')],'raw':!![]})[_0xce38('0x1d')](function(_0x4f474b){return _0x4f474b;});}exports['default']=function(){for(var _0x31ab54=0x0;_0x31ab54<triggers[_0xce38('0x44')];_0x31ab54+=0x1){if(db[_0xce38('0x45')](triggers[_0x31ab54]['model'])){db[triggers[_0x31ab54]['model']][_0xce38('0x46')](triggers[_0x31ab54][_0xce38('0x26')],triggers[_0x31ab54][_0xce38('0x47')](triggers[_0x31ab54][_0xce38('0x24')][_0xce38('0x48')](),triggers[_0x31ab54]['condition']));}}};