Built motion from commit da617fac.|2.6.6
[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 _0x3a9e=['closedinteraction','newmessage','ChatOfflineMessage','Sms','SmsInteraction','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','then','info','EventManager','error','catch','Trigger,\x20%s','get','motionChannel','event','resolve','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','query','Sequelize','QueryTypes','contact','UserId','interface','format','SIP/%s','name','channel','outgoingmessage','AfterCreateMessage','offlineMessage','AfterCreate','closed','changed','substatus','SELECT','agent','AfterUpdate','User','find','fullname','default','length','hasOwnProperty','model','hook','callback','condition','../../mysqldb','jayson/promise','triggers','client','http','Chat','ChatInteraction','afterCreate','newinteraction','afterUpdate'];(function(_0x3c26cb,_0x2f0bd5){var _0xf5ef93=function(_0x2b58fb){while(--_0x2b58fb){_0x3c26cb['push'](_0x3c26cb['shift']());}};_0xf5ef93(++_0x2f0bd5);}(_0x3a9e,0x19a));var _0xe3a9=function(_0xdf56aa,_0x4d9c15){_0xdf56aa=_0xdf56aa-0x0;var _0x82768=_0x3a9e[_0xdf56aa];return _0x82768;};'use strict';var util=require('util');var db=require(_0xe3a9('0x0'))['db'];var jayson=require(_0xe3a9('0x1'));var logger=require('../logger')(_0xe3a9('0x2'));var client=jayson[_0xe3a9('0x3')][_0xe3a9('0x4')]({'port':0x232a});var triggers=[{'channel':_0xe3a9('0x5'),'model':_0xe3a9('0x6'),'event':_0xe3a9('0x7'),'condition':_0xe3a9('0x8'),'callback':afterCreate},{'channel':_0xe3a9('0x5'),'model':_0xe3a9('0x6'),'event':_0xe3a9('0x9'),'condition':_0xe3a9('0xa'),'callback':afterUpdate},{'channel':_0xe3a9('0x5'),'model':'ChatMessage','event':_0xe3a9('0x7'),'condition':_0xe3a9('0xb'),'callback':afterCreateMessage},{'channel':_0xe3a9('0x5'),'model':_0xe3a9('0xc'),'event':_0xe3a9('0x7'),'condition':_0xe3a9('0xb'),'callback':afterCreateOfflineMessage},{'channel':_0xe3a9('0xd'),'model':_0xe3a9('0xe'),'event':_0xe3a9('0x7'),'condition':_0xe3a9('0x8'),'callback':afterCreate},{'channel':_0xe3a9('0xd'),'model':_0xe3a9('0xe'),'event':_0xe3a9('0x9'),'condition':_0xe3a9('0xa'),'callback':afterUpdate},{'channel':_0xe3a9('0xd'),'model':'SmsMessage','event':_0xe3a9('0x7'),'condition':_0xe3a9('0xb'),'callback':afterCreateMessage},{'channel':_0xe3a9('0xf'),'model':_0xe3a9('0x10'),'event':_0xe3a9('0x7'),'condition':_0xe3a9('0x8'),'callback':afterCreate},{'channel':_0xe3a9('0xf'),'model':_0xe3a9('0x10'),'event':'afterUpdate','condition':_0xe3a9('0xa'),'callback':afterUpdate},{'channel':_0xe3a9('0xf'),'model':_0xe3a9('0x11'),'event':_0xe3a9('0x7'),'condition':_0xe3a9('0xb'),'callback':afterCreateMessage},{'channel':_0xe3a9('0x12'),'model':_0xe3a9('0x13'),'event':_0xe3a9('0x7'),'condition':_0xe3a9('0x8'),'callback':afterCreate},{'channel':_0xe3a9('0x12'),'model':_0xe3a9('0x13'),'event':_0xe3a9('0x9'),'condition':_0xe3a9('0xa'),'callback':afterUpdate},{'channel':_0xe3a9('0x12'),'model':_0xe3a9('0x14'),'event':_0xe3a9('0x7'),'condition':_0xe3a9('0xb'),'callback':afterCreateMessage},{'channel':_0xe3a9('0x15'),'model':_0xe3a9('0x16'),'event':_0xe3a9('0x7'),'condition':_0xe3a9('0x8'),'callback':afterCreate},{'channel':_0xe3a9('0x15'),'model':'MailInteraction','event':_0xe3a9('0x9'),'condition':_0xe3a9('0xa'),'callback':afterUpdate},{'channel':_0xe3a9('0x15'),'model':_0xe3a9('0x17'),'event':_0xe3a9('0x7'),'condition':_0xe3a9('0xb'),'callback':afterCreateMessage},{'channel':_0xe3a9('0x18'),'model':_0xe3a9('0x19'),'event':_0xe3a9('0x7'),'condition':_0xe3a9('0x8'),'callback':afterCreate},{'channel':_0xe3a9('0x18'),'model':_0xe3a9('0x19'),'event':_0xe3a9('0x9'),'condition':_0xe3a9('0xa'),'callback':afterUpdate},{'channel':_0xe3a9('0x18'),'model':'OpenchannelMessage','event':_0xe3a9('0x7'),'condition':_0xe3a9('0xb'),'callback':afterCreateMessage}];function request(_0x408cb8){return client['request']('EventManager',_0x408cb8)[_0xe3a9('0x1a')](function(_0x2999d0){logger[_0xe3a9('0x1b')]('Trigger,\x20%s',_0xe3a9('0x1c'),_0x2999d0);if(_0x2999d0[_0xe3a9('0x1d')]){if(_0x2999d0[_0xe3a9('0x1d')]['code']===0x1f4){logger[_0xe3a9('0x1d')]('Trigger,\x20%s',_0xe3a9('0x1c'),_0x2999d0[_0xe3a9('0x1d')]);}}})[_0xe3a9('0x1e')](function(_0xe43046){logger['error'](_0xe3a9('0x1f'),'EventManager',_0xe43046);});}function afterCreateMessage(_0x30f02d){return function(_0x15cba0){_0x15cba0=_0x15cba0[_0xe3a9('0x20')]({'plain':!![]});_0x15cba0['channel']=_0x30f02d;_0x15cba0[_0xe3a9('0x21')]=_0x30f02d;_0x15cba0[_0xe3a9('0x22')]=_0x15cba0['direction'];Promise[_0xe3a9('0x23')]()[_0xe3a9('0x1a')](function(){if(typeof _0x15cba0[_0xe3a9('0x24')]===_0xe3a9('0x25'))return null;var _0x22fe4d=_0xe3a9('0x26')+_0x15cba0[_0xe3a9('0x24')];return db[_0xe3a9('0x27')][_0xe3a9('0x28')](_0x22fe4d,{'type':db[_0xe3a9('0x29')][_0xe3a9('0x2a')]['SELECT'],'raw':!![]});})[_0xe3a9('0x1a')](function(_0x2b0b12){if(_0x2b0b12){_0x15cba0[_0xe3a9('0x2b')]=_0x2b0b12[0x0];}if(typeof _0x15cba0['UserId']===_0xe3a9('0x25'))return;return getAgent(_0x15cba0[_0xe3a9('0x2c')]);})[_0xe3a9('0x1a')](function(_0x3f2958){if(_0x3f2958){_0x15cba0[_0xe3a9('0x2d')]=util[_0xe3a9('0x2e')](_0xe3a9('0x2f'),_0x3f2958[_0xe3a9('0x30')]);_0x15cba0['agent']=_0x3f2958;_0x15cba0[_0xe3a9('0x31')]=_0x30f02d;return request({'event':'incomingmessage','message':_0x15cba0});}else{return request({'event':_0xe3a9('0x32'),'message':_0x15cba0});}})['catch'](function(_0x4c8c91){logger[_0xe3a9('0x1d')](_0xe3a9('0x1f'),_0xe3a9('0x33'),_0x4c8c91);});};}function afterCreateOfflineMessage(_0x2f42bd){return function(_0x3827b0){_0x3827b0=_0x3827b0[_0xe3a9('0x20')]({'plain':!![]});_0x3827b0[_0xe3a9('0x31')]=_0x2f42bd;_0x3827b0['motionChannel']=_0x2f42bd;_0x3827b0[_0xe3a9('0x22')]=_0xe3a9('0x34');return request({'event':_0x3827b0[_0xe3a9('0x22')],'message':_0x3827b0});};}function afterCreate(_0x30efdb,_0x309739){return function(_0x5c9b28){_0x5c9b28=_0x5c9b28[_0xe3a9('0x20')]({'plain':!![]});_0x5c9b28[_0xe3a9('0x31')]=_0x30efdb;_0x5c9b28[_0xe3a9('0x21')]=_0x30efdb;_0x5c9b28[_0xe3a9('0x22')]='opened';Promise[_0xe3a9('0x23')]()['then'](function(){var _0x34e0e2=_0xe3a9('0x26')+_0x5c9b28[_0xe3a9('0x24')];return db[_0xe3a9('0x27')][_0xe3a9('0x28')](_0x34e0e2,{'type':db['Sequelize'][_0xe3a9('0x2a')]['SELECT'],'raw':!![]});})['then'](function(_0x30f03d){if(_0x30f03d){_0x5c9b28[_0xe3a9('0x2b')]=_0x30f03d[0x0];}if(typeof _0x5c9b28[_0xe3a9('0x2c')]===_0xe3a9('0x25'))return;return getAgent(_0x5c9b28[_0xe3a9('0x2c')]);})[_0xe3a9('0x1a')](function(_0x4d8d46){if(_0x4d8d46){_0x5c9b28[_0xe3a9('0x2d')]=util[_0xe3a9('0x2e')]('SIP/%s',_0x4d8d46[_0xe3a9('0x30')]);_0x5c9b28['agent']=_0x4d8d46;}return request({'event':_0x309739,'message':_0x5c9b28});})[_0xe3a9('0x1e')](function(_0x55a0f3){logger[_0xe3a9('0x1d')](_0xe3a9('0x1f'),_0xe3a9('0x35'),_0x55a0f3);});};}function afterUpdate(_0x1275a0){return function(_0x4507f3){var _0x3c4e14=_0x4507f3['changed'](_0xe3a9('0x36'))&&_0x4507f3[_0xe3a9('0x36')];var _0xb5f7c6=_0x4507f3[_0xe3a9('0x37')](_0xe3a9('0x38'));if(_0x3c4e14||_0xb5f7c6){var _0x88e380=_0x3c4e14?_0xe3a9('0xa'):_0xe3a9('0x38');var _0x140417=_0x4507f3[_0xe3a9('0x20')]({'plain':!![]});_0x140417[_0xe3a9('0x31')]=_0x1275a0;_0x140417[_0xe3a9('0x21')]=_0x1275a0;_0x140417[_0xe3a9('0x22')]=_0x3c4e14?_0xe3a9('0x36'):_0xe3a9('0x38');var _0x19a19b=_0xe3a9('0x26')+_0x140417[_0xe3a9('0x24')];return db[_0xe3a9('0x27')][_0xe3a9('0x28')](_0x19a19b,{'type':db['Sequelize'][_0xe3a9('0x2a')][_0xe3a9('0x39')],'raw':!![]})[_0xe3a9('0x1a')](function(_0x470c5f){if(_0x470c5f){_0x140417['contact']=_0x470c5f[0x0];}if(typeof _0x140417[_0xe3a9('0x2c')]===_0xe3a9('0x25'))return;return getAgent(_0x140417[_0xe3a9('0x2c')]);})[_0xe3a9('0x1a')](function(_0x57719d){if(_0x57719d){_0x140417['interface']=util[_0xe3a9('0x2e')](_0xe3a9('0x2f'),_0x57719d[_0xe3a9('0x30')]);_0x140417[_0xe3a9('0x3a')]=_0x57719d;}return request({'event':_0x88e380,'message':_0x140417});})[_0xe3a9('0x1e')](function(_0x2791a0){logger[_0xe3a9('0x1d')](_0xe3a9('0x1f'),_0xe3a9('0x3b'),_0x2791a0);});}};}function getAgent(_0x125e6f){return db[_0xe3a9('0x3c')][_0xe3a9('0x3d')]({'where':{'id':_0x125e6f},'attributes':['id',_0xe3a9('0x30'),_0xe3a9('0x3e'),'email','internal'],'raw':!![]})[_0xe3a9('0x1a')](function(_0x52dee9){return _0x52dee9;});}exports[_0xe3a9('0x3f')]=function(){for(var _0x1e79f2=0x0;_0x1e79f2<triggers[_0xe3a9('0x40')];_0x1e79f2+=0x1){if(db[_0xe3a9('0x41')](triggers[_0x1e79f2][_0xe3a9('0x42')])){db[triggers[_0x1e79f2][_0xe3a9('0x42')]][_0xe3a9('0x43')](triggers[_0x1e79f2][_0xe3a9('0x22')],triggers[_0x1e79f2][_0xe3a9('0x44')](triggers[_0x1e79f2]['channel']['toLowerCase'](),triggers[_0x1e79f2][_0xe3a9('0x45')]));}}};