Built motion from commit 0900f080.|2.5.45
[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 _0x7649=['then','error','code','Trigger,\x20%s','catch','channel','motionChannel','event','direction','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','query','Sequelize','QueryTypes','SELECT','contact','UserId','interface','format','name','agent','incomingmessage','outgoingmessage','AfterCreateMessage','get','offlineMessage','opened','resolve','SIP/%s','changed','substatus','closed','User','find','fullname','email','internal','default','length','hasOwnProperty','model','callback','toLowerCase','condition','util','../../mysqldb','jayson/promise','../logger','triggers','client','Chat','ChatInteraction','newinteraction','afterUpdate','closedinteraction','afterCreate','newmessage','ChatOfflineMessage','Sms','SmsInteraction','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','EventManager'];(function(_0x1da77d,_0x5ae1eb){var _0x5e21ea=function(_0x24056a){while(--_0x24056a){_0x1da77d['push'](_0x1da77d['shift']());}};_0x5e21ea(++_0x5ae1eb);}(_0x7649,0x10f));var _0x9764=function(_0x249d51,_0x1953cc){_0x249d51=_0x249d51-0x0;var _0x21e36f=_0x7649[_0x249d51];return _0x21e36f;};'use strict';var util=require(_0x9764('0x0'));var db=require(_0x9764('0x1'))['db'];var jayson=require(_0x9764('0x2'));var logger=require(_0x9764('0x3'))(_0x9764('0x4'));var client=jayson[_0x9764('0x5')]['http']({'port':0x232a});var triggers=[{'channel':_0x9764('0x6'),'model':_0x9764('0x7'),'event':'afterCreate','condition':_0x9764('0x8'),'callback':afterCreate},{'channel':_0x9764('0x6'),'model':_0x9764('0x7'),'event':_0x9764('0x9'),'condition':_0x9764('0xa'),'callback':afterUpdate},{'channel':_0x9764('0x6'),'model':'ChatMessage','event':_0x9764('0xb'),'condition':_0x9764('0xc'),'callback':afterCreateMessage},{'channel':_0x9764('0x6'),'model':_0x9764('0xd'),'event':_0x9764('0xb'),'condition':_0x9764('0xc'),'callback':afterCreateOfflineMessage},{'channel':_0x9764('0xe'),'model':_0x9764('0xf'),'event':_0x9764('0xb'),'condition':_0x9764('0x8'),'callback':afterCreate},{'channel':_0x9764('0xe'),'model':_0x9764('0xf'),'event':_0x9764('0x9'),'condition':_0x9764('0xa'),'callback':afterUpdate},{'channel':_0x9764('0xe'),'model':_0x9764('0x10'),'event':_0x9764('0xb'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x9764('0x11'),'model':_0x9764('0x12'),'event':_0x9764('0xb'),'condition':'newinteraction','callback':afterCreate},{'channel':'Whatsapp','model':_0x9764('0x12'),'event':_0x9764('0x9'),'condition':_0x9764('0xa'),'callback':afterUpdate},{'channel':_0x9764('0x11'),'model':_0x9764('0x13'),'event':_0x9764('0xb'),'condition':_0x9764('0xc'),'callback':afterCreateMessage},{'channel':_0x9764('0x14'),'model':'FaxInteraction','event':_0x9764('0xb'),'condition':_0x9764('0x8'),'callback':afterCreate},{'channel':_0x9764('0x14'),'model':_0x9764('0x15'),'event':_0x9764('0x9'),'condition':_0x9764('0xa'),'callback':afterUpdate},{'channel':'Fax','model':'FaxMessage','event':'afterCreate','condition':_0x9764('0xc'),'callback':afterCreateMessage},{'channel':_0x9764('0x16'),'model':_0x9764('0x17'),'event':_0x9764('0xb'),'condition':_0x9764('0x8'),'callback':afterCreate},{'channel':_0x9764('0x16'),'model':_0x9764('0x17'),'event':_0x9764('0x9'),'condition':_0x9764('0xa'),'callback':afterUpdate},{'channel':_0x9764('0x16'),'model':_0x9764('0x18'),'event':_0x9764('0xb'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x9764('0x19'),'model':_0x9764('0x1a'),'event':_0x9764('0xb'),'condition':_0x9764('0x8'),'callback':afterCreate},{'channel':_0x9764('0x19'),'model':_0x9764('0x1a'),'event':_0x9764('0x9'),'condition':_0x9764('0xa'),'callback':afterUpdate},{'channel':_0x9764('0x19'),'model':_0x9764('0x1b'),'event':'afterCreate','condition':_0x9764('0xc'),'callback':afterCreateMessage}];function request(_0x54e518){return client['request'](_0x9764('0x1c'),_0x54e518)[_0x9764('0x1d')](function(_0x13b753){logger['info']('Trigger,\x20%s',_0x9764('0x1c'),_0x13b753);if(_0x13b753[_0x9764('0x1e')]){if(_0x13b753[_0x9764('0x1e')][_0x9764('0x1f')]===0x1f4){logger[_0x9764('0x1e')](_0x9764('0x20'),_0x9764('0x1c'),_0x13b753[_0x9764('0x1e')]);}}})[_0x9764('0x21')](function(_0x5b43f9){logger[_0x9764('0x1e')]('Trigger,\x20%s',_0x9764('0x1c'),_0x5b43f9);});}function afterCreateMessage(_0x31b8d7){return function(_0x4cca12){_0x4cca12=_0x4cca12['get']({'plain':!![]});_0x4cca12[_0x9764('0x22')]=_0x31b8d7;_0x4cca12[_0x9764('0x23')]=_0x31b8d7;_0x4cca12[_0x9764('0x24')]=_0x4cca12[_0x9764('0x25')];Promise['resolve']()[_0x9764('0x1d')](function(){if(typeof _0x4cca12[_0x9764('0x26')]===_0x9764('0x27'))return null;var _0x5eefb3=_0x9764('0x28')+_0x4cca12[_0x9764('0x26')];return db[_0x9764('0x29')][_0x9764('0x2a')](_0x5eefb3,{'type':db[_0x9764('0x2b')][_0x9764('0x2c')][_0x9764('0x2d')],'raw':!![]});})['then'](function(_0x90aa36){if(_0x90aa36){_0x4cca12[_0x9764('0x2e')]=_0x90aa36[0x0];}if(typeof _0x4cca12[_0x9764('0x2f')]==='undefined')return;return getAgent(_0x4cca12['UserId']);})[_0x9764('0x1d')](function(_0x1dd845){if(_0x1dd845){_0x4cca12[_0x9764('0x30')]=util[_0x9764('0x31')]('SIP/%s',_0x1dd845[_0x9764('0x32')]);_0x4cca12[_0x9764('0x33')]=_0x1dd845;_0x4cca12['channel']=_0x31b8d7;return request({'event':_0x9764('0x34'),'message':_0x4cca12});}else{return request({'event':_0x9764('0x35'),'message':_0x4cca12});}})[_0x9764('0x21')](function(_0x1a0aac){logger[_0x9764('0x1e')](_0x9764('0x20'),_0x9764('0x36'),_0x1a0aac);});};}function afterCreateOfflineMessage(_0x1a2b36){return function(_0xacb76){_0xacb76=_0xacb76[_0x9764('0x37')]({'plain':!![]});_0xacb76['channel']=_0x1a2b36;_0xacb76['motionChannel']=_0x1a2b36;_0xacb76['event']=_0x9764('0x38');return request({'event':_0xacb76[_0x9764('0x24')],'message':_0xacb76});};}function afterCreate(_0x54f600,_0x1f8dac){return function(_0x4870f0){_0x4870f0=_0x4870f0[_0x9764('0x37')]({'plain':!![]});_0x4870f0[_0x9764('0x22')]=_0x54f600;_0x4870f0['motionChannel']=_0x54f600;_0x4870f0['event']=_0x9764('0x39');Promise[_0x9764('0x3a')]()['then'](function(){var _0x15d163=_0x9764('0x28')+_0x4870f0[_0x9764('0x26')];return db[_0x9764('0x29')][_0x9764('0x2a')](_0x15d163,{'type':db['Sequelize'][_0x9764('0x2c')][_0x9764('0x2d')],'raw':!![]});})['then'](function(_0x2839e0){if(_0x2839e0){_0x4870f0[_0x9764('0x2e')]=_0x2839e0[0x0];}if(typeof _0x4870f0['UserId']===_0x9764('0x27'))return;return getAgent(_0x4870f0[_0x9764('0x2f')]);})[_0x9764('0x1d')](function(_0x230e0b){if(_0x230e0b){_0x4870f0[_0x9764('0x30')]=util['format'](_0x9764('0x3b'),_0x230e0b['name']);_0x4870f0[_0x9764('0x33')]=_0x230e0b;}return request({'event':_0x1f8dac,'message':_0x4870f0});})[_0x9764('0x21')](function(_0xae549e){logger[_0x9764('0x1e')](_0x9764('0x20'),'AfterCreate',_0xae549e);});};}function afterUpdate(_0x5bdd75){return function(_0x33ed6c){var _0x537bb9=_0x33ed6c[_0x9764('0x3c')]('closed')&&_0x33ed6c['closed'];var _0x998c1c=_0x33ed6c[_0x9764('0x3c')]('substatus');if(_0x537bb9||_0x998c1c){var _0x495adf=_0x537bb9?_0x9764('0xa'):_0x9764('0x3d');var _0x2cd41a=_0x33ed6c['get']({'plain':!![]});_0x2cd41a[_0x9764('0x22')]=_0x5bdd75;_0x2cd41a[_0x9764('0x23')]=_0x5bdd75;_0x2cd41a[_0x9764('0x24')]=_0x537bb9?_0x9764('0x3e'):_0x9764('0x3d');var _0x183791=_0x9764('0x28')+_0x2cd41a[_0x9764('0x26')];return db[_0x9764('0x29')][_0x9764('0x2a')](_0x183791,{'type':db[_0x9764('0x2b')][_0x9764('0x2c')][_0x9764('0x2d')],'raw':!![]})[_0x9764('0x1d')](function(_0x134988){if(_0x134988){_0x2cd41a[_0x9764('0x2e')]=_0x134988[0x0];}if(typeof _0x2cd41a[_0x9764('0x2f')]===_0x9764('0x27'))return;return getAgent(_0x2cd41a[_0x9764('0x2f')]);})[_0x9764('0x1d')](function(_0x2cf76e){if(_0x2cf76e){_0x2cd41a[_0x9764('0x30')]=util[_0x9764('0x31')]('SIP/%s',_0x2cf76e['name']);_0x2cd41a[_0x9764('0x33')]=_0x2cf76e;}return request({'event':_0x495adf,'message':_0x2cd41a});})['catch'](function(_0x39fdad){logger['error'](_0x9764('0x20'),'AfterUpdate',_0x39fdad);});}};}function getAgent(_0x1d2bfe){return db[_0x9764('0x3f')][_0x9764('0x40')]({'where':{'id':_0x1d2bfe},'attributes':['id',_0x9764('0x32'),_0x9764('0x41'),_0x9764('0x42'),_0x9764('0x43')],'raw':!![]})[_0x9764('0x1d')](function(_0x42b6d7){return _0x42b6d7;});}exports[_0x9764('0x44')]=function(){for(var _0xb4e4d7=0x0;_0xb4e4d7<triggers[_0x9764('0x45')];_0xb4e4d7+=0x1){if(db[_0x9764('0x46')](triggers[_0xb4e4d7][_0x9764('0x47')])){db[triggers[_0xb4e4d7]['model']]['hook'](triggers[_0xb4e4d7]['event'],triggers[_0xb4e4d7][_0x9764('0x48')](triggers[_0xb4e4d7]['channel'][_0x9764('0x49')](),triggers[_0xb4e4d7][_0x9764('0x4a')]));}}};