19f7a2e6120acf0d46827033f337e60b2bf738b6
[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 _0x37a3=['error','code','catch','get','channel','motionChannel','event','resolve','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','QueryTypes','SELECT','UserId','format','SIP/%s','name','agent','AfterCreateMessage','offlineMessage','opened','Sequelize','contact','AfterCreate','changed','closed','substatus','query','AfterUpdate','User','find','email','internal','default','length','model','callback','toLowerCase','condition','util','../../mysqldb','jayson/promise','triggers','http','Chat','ChatInteraction','closedinteraction','ChatMessage','afterCreate','newmessage','ChatOfflineMessage','SmsInteraction','newinteraction','Sms','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','afterUpdate','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','then','info','Trigger,\x20%s'];(function(_0x935c9e,_0x52a825){var _0x26c7aa=function(_0x9c9b5a){while(--_0x9c9b5a){_0x935c9e['push'](_0x935c9e['shift']());}};_0x26c7aa(++_0x52a825);}(_0x37a3,0x19a));var _0x337a=function(_0x5c4a4a,_0x2ac658){_0x5c4a4a=_0x5c4a4a-0x0;var _0x26c387=_0x37a3[_0x5c4a4a];return _0x26c387;};'use strict';var util=require(_0x337a('0x0'));var db=require(_0x337a('0x1'))['db'];var jayson=require(_0x337a('0x2'));var logger=require('../logger')(_0x337a('0x3'));var client=jayson['client'][_0x337a('0x4')]({'port':0x232a});var triggers=[{'channel':_0x337a('0x5'),'model':'ChatInteraction','event':'afterCreate','condition':'newinteraction','callback':afterCreate},{'channel':_0x337a('0x5'),'model':_0x337a('0x6'),'event':'afterUpdate','condition':_0x337a('0x7'),'callback':afterUpdate},{'channel':_0x337a('0x5'),'model':_0x337a('0x8'),'event':_0x337a('0x9'),'condition':_0x337a('0xa'),'callback':afterCreateMessage},{'channel':_0x337a('0x5'),'model':_0x337a('0xb'),'event':_0x337a('0x9'),'condition':_0x337a('0xa'),'callback':afterCreateOfflineMessage},{'channel':'Sms','model':_0x337a('0xc'),'event':_0x337a('0x9'),'condition':_0x337a('0xd'),'callback':afterCreate},{'channel':_0x337a('0xe'),'model':'SmsInteraction','event':'afterUpdate','condition':_0x337a('0x7'),'callback':afterUpdate},{'channel':_0x337a('0xe'),'model':_0x337a('0xf'),'event':_0x337a('0x9'),'condition':_0x337a('0xa'),'callback':afterCreateMessage},{'channel':_0x337a('0x10'),'model':_0x337a('0x11'),'event':_0x337a('0x9'),'condition':_0x337a('0xd'),'callback':afterCreate},{'channel':_0x337a('0x10'),'model':_0x337a('0x11'),'event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0x337a('0x10'),'model':_0x337a('0x12'),'event':'afterCreate','condition':_0x337a('0xa'),'callback':afterCreateMessage},{'channel':_0x337a('0x13'),'model':_0x337a('0x14'),'event':_0x337a('0x9'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x337a('0x13'),'model':_0x337a('0x14'),'event':_0x337a('0x15'),'condition':_0x337a('0x7'),'callback':afterUpdate},{'channel':_0x337a('0x13'),'model':_0x337a('0x16'),'event':_0x337a('0x9'),'condition':_0x337a('0xa'),'callback':afterCreateMessage},{'channel':_0x337a('0x17'),'model':_0x337a('0x18'),'event':_0x337a('0x9'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x337a('0x17'),'model':'MailInteraction','event':_0x337a('0x15'),'condition':_0x337a('0x7'),'callback':afterUpdate},{'channel':_0x337a('0x17'),'model':_0x337a('0x19'),'event':_0x337a('0x9'),'condition':_0x337a('0xa'),'callback':afterCreateMessage},{'channel':_0x337a('0x1a'),'model':_0x337a('0x1b'),'event':'afterCreate','condition':_0x337a('0xd'),'callback':afterCreate},{'channel':_0x337a('0x1a'),'model':'OpenchannelInteraction','event':_0x337a('0x15'),'condition':_0x337a('0x7'),'callback':afterUpdate},{'channel':_0x337a('0x1a'),'model':_0x337a('0x1c'),'event':'afterCreate','condition':'newmessage','callback':afterCreateMessage}];function request(_0x2199ba){return client[_0x337a('0x1d')](_0x337a('0x1e'),_0x2199ba)[_0x337a('0x1f')](function(_0x2b04d1){logger[_0x337a('0x20')](_0x337a('0x21'),_0x337a('0x1e'),_0x2b04d1);if(_0x2b04d1['error']){if(_0x2b04d1[_0x337a('0x22')][_0x337a('0x23')]===0x1f4){logger['error'](_0x337a('0x21'),_0x337a('0x1e'),_0x2b04d1[_0x337a('0x22')]);}}})[_0x337a('0x24')](function(_0x220a42){logger['error']('Trigger,\x20%s',_0x337a('0x1e'),_0x220a42);});}function afterCreateMessage(_0x13d65b){return function(_0x102995){_0x102995=_0x102995[_0x337a('0x25')]({'plain':!![]});_0x102995[_0x337a('0x26')]=_0x13d65b;_0x102995[_0x337a('0x27')]=_0x13d65b;_0x102995[_0x337a('0x28')]=_0x102995['direction'];Promise[_0x337a('0x29')]()[_0x337a('0x1f')](function(){if(typeof _0x102995[_0x337a('0x2a')]===_0x337a('0x2b'))return null;var _0x5a1dc7=_0x337a('0x2c')+_0x102995[_0x337a('0x2a')];return db[_0x337a('0x2d')]['query'](_0x5a1dc7,{'type':db['Sequelize'][_0x337a('0x2e')][_0x337a('0x2f')],'raw':!![]});})['then'](function(_0x236045){if(_0x236045){_0x102995['contact']=_0x236045[0x0];}if(typeof _0x102995[_0x337a('0x30')]===_0x337a('0x2b'))return;return getAgent(_0x102995[_0x337a('0x30')]);})[_0x337a('0x1f')](function(_0x1d993c){if(_0x1d993c){_0x102995['interface']=util[_0x337a('0x31')](_0x337a('0x32'),_0x1d993c[_0x337a('0x33')]);_0x102995[_0x337a('0x34')]=_0x1d993c;_0x102995[_0x337a('0x26')]=_0x13d65b;return request({'event':'incomingmessage','message':_0x102995});}else{return request({'event':'outgoingmessage','message':_0x102995});}})[_0x337a('0x24')](function(_0x5ab9f3){logger[_0x337a('0x22')]('Trigger,\x20%s',_0x337a('0x35'),_0x5ab9f3);});};}function afterCreateOfflineMessage(_0x1b2f9c){return function(_0x5caf62){_0x5caf62=_0x5caf62[_0x337a('0x25')]({'plain':!![]});_0x5caf62[_0x337a('0x26')]=_0x1b2f9c;_0x5caf62[_0x337a('0x27')]=_0x1b2f9c;_0x5caf62[_0x337a('0x28')]=_0x337a('0x36');return request({'event':_0x5caf62[_0x337a('0x28')],'message':_0x5caf62});};}function afterCreate(_0x1377dc,_0x4e4f95){return function(_0x5ce247){_0x5ce247=_0x5ce247[_0x337a('0x25')]({'plain':!![]});_0x5ce247[_0x337a('0x26')]=_0x1377dc;_0x5ce247[_0x337a('0x27')]=_0x1377dc;_0x5ce247[_0x337a('0x28')]=_0x337a('0x37');Promise[_0x337a('0x29')]()[_0x337a('0x1f')](function(){var _0x57919d='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x5ce247[_0x337a('0x2a')];return db[_0x337a('0x2d')]['query'](_0x57919d,{'type':db[_0x337a('0x38')][_0x337a('0x2e')][_0x337a('0x2f')],'raw':!![]});})[_0x337a('0x1f')](function(_0x8f93de){if(_0x8f93de){_0x5ce247[_0x337a('0x39')]=_0x8f93de[0x0];}if(typeof _0x5ce247[_0x337a('0x30')]==='undefined')return;return getAgent(_0x5ce247[_0x337a('0x30')]);})[_0x337a('0x1f')](function(_0x16cb23){if(_0x16cb23){_0x5ce247['interface']=util['format'](_0x337a('0x32'),_0x16cb23[_0x337a('0x33')]);_0x5ce247[_0x337a('0x34')]=_0x16cb23;}return request({'event':_0x4e4f95,'message':_0x5ce247});})[_0x337a('0x24')](function(_0x5d3aed){logger[_0x337a('0x22')]('Trigger,\x20%s',_0x337a('0x3a'),_0x5d3aed);});};}function afterUpdate(_0x3725c0){return function(_0x20e2a7){var _0x5d6a9c=_0x20e2a7[_0x337a('0x3b')](_0x337a('0x3c'))&&_0x20e2a7[_0x337a('0x3c')];var _0x5c6bfa=_0x20e2a7['changed'](_0x337a('0x3d'));if(_0x5d6a9c||_0x5c6bfa){var _0x181be6=_0x5d6a9c?'closedinteraction':_0x337a('0x3d');var _0x3e8ac9=_0x20e2a7[_0x337a('0x25')]({'plain':!![]});_0x3e8ac9[_0x337a('0x26')]=_0x3725c0;_0x3e8ac9[_0x337a('0x27')]=_0x3725c0;_0x3e8ac9[_0x337a('0x28')]=_0x5d6a9c?_0x337a('0x3c'):_0x337a('0x3d');var _0x374d2c=_0x337a('0x2c')+_0x3e8ac9[_0x337a('0x2a')];return db['sequelize'][_0x337a('0x3e')](_0x374d2c,{'type':db[_0x337a('0x38')]['QueryTypes'][_0x337a('0x2f')],'raw':!![]})[_0x337a('0x1f')](function(_0x1c8f9f){if(_0x1c8f9f){_0x3e8ac9[_0x337a('0x39')]=_0x1c8f9f[0x0];}if(typeof _0x3e8ac9[_0x337a('0x30')]===_0x337a('0x2b'))return;return getAgent(_0x3e8ac9[_0x337a('0x30')]);})[_0x337a('0x1f')](function(_0x29c45f){if(_0x29c45f){_0x3e8ac9['interface']=util['format'](_0x337a('0x32'),_0x29c45f[_0x337a('0x33')]);_0x3e8ac9['agent']=_0x29c45f;}return request({'event':_0x181be6,'message':_0x3e8ac9});})[_0x337a('0x24')](function(_0x3eacb5){logger[_0x337a('0x22')](_0x337a('0x21'),_0x337a('0x3f'),_0x3eacb5);});}};}function getAgent(_0x2000cf){return db[_0x337a('0x40')][_0x337a('0x41')]({'where':{'id':_0x2000cf},'attributes':['id',_0x337a('0x33'),'fullname',_0x337a('0x42'),_0x337a('0x43')],'raw':!![]})[_0x337a('0x1f')](function(_0x3bcedb){return _0x3bcedb;});}exports[_0x337a('0x44')]=function(){for(var _0x125f8c=0x0;_0x125f8c<triggers[_0x337a('0x45')];_0x125f8c+=0x1){if(db['hasOwnProperty'](triggers[_0x125f8c]['model'])){db[triggers[_0x125f8c][_0x337a('0x46')]]['hook'](triggers[_0x125f8c][_0x337a('0x28')],triggers[_0x125f8c][_0x337a('0x47')](triggers[_0x125f8c]['channel'][_0x337a('0x48')](),triggers[_0x125f8c][_0x337a('0x49')]));}}};