Built motion from commit 3c2ce842.|2.6.31
[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 _0x924f=['triggers','http','Chat','ChatInteraction','afterCreate','newinteraction','afterUpdate','closedinteraction','ChatMessage','ChatOfflineMessage','newmessage','SmsInteraction','Sms','WhatsappInteraction','Whatsapp','WhatsappMessage','Fax','FaxInteraction','Mail','MailInteraction','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','then','info','error','code','Trigger,\x20%s','catch','get','channel','event','direction','resolve','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','query','QueryTypes','SELECT','contact','UserId','interface','format','SIP/%s','name','agent','incomingmessage','outgoingmessage','motionChannel','offlineMessage','Sequelize','AfterCreate','changed','closed','substatus','AfterUpdate','User','find','email','internal','default','length','model','hook','callback','toLowerCase','condition','util','../../mysqldb'];(function(_0x22c684,_0x753309){var _0x39fcbb=function(_0x38b631){while(--_0x38b631){_0x22c684['push'](_0x22c684['shift']());}};_0x39fcbb(++_0x753309);}(_0x924f,0x90));var _0xf924=function(_0x4fa97c,_0x4aa6ab){_0x4fa97c=_0x4fa97c-0x0;var _0x518c7f=_0x924f[_0x4fa97c];return _0x518c7f;};'use strict';var util=require(_0xf924('0x0'));var db=require(_0xf924('0x1'))['db'];var jayson=require('jayson/promise');var logger=require('../logger')(_0xf924('0x2'));var client=jayson['client'][_0xf924('0x3')]({'port':0x232a});var triggers=[{'channel':_0xf924('0x4'),'model':_0xf924('0x5'),'event':_0xf924('0x6'),'condition':_0xf924('0x7'),'callback':afterCreate},{'channel':'Chat','model':_0xf924('0x5'),'event':_0xf924('0x8'),'condition':_0xf924('0x9'),'callback':afterUpdate},{'channel':_0xf924('0x4'),'model':_0xf924('0xa'),'event':_0xf924('0x6'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xf924('0x4'),'model':_0xf924('0xb'),'event':_0xf924('0x6'),'condition':_0xf924('0xc'),'callback':afterCreateOfflineMessage},{'channel':'Sms','model':_0xf924('0xd'),'event':_0xf924('0x6'),'condition':_0xf924('0x7'),'callback':afterCreate},{'channel':_0xf924('0xe'),'model':'SmsInteraction','event':_0xf924('0x8'),'condition':_0xf924('0x9'),'callback':afterUpdate},{'channel':_0xf924('0xe'),'model':'SmsMessage','event':_0xf924('0x6'),'condition':_0xf924('0xc'),'callback':afterCreateMessage},{'channel':'Whatsapp','model':_0xf924('0xf'),'event':'afterCreate','condition':_0xf924('0x7'),'callback':afterCreate},{'channel':_0xf924('0x10'),'model':'WhatsappInteraction','event':_0xf924('0x8'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0xf924('0x10'),'model':_0xf924('0x11'),'event':'afterCreate','condition':_0xf924('0xc'),'callback':afterCreateMessage},{'channel':_0xf924('0x12'),'model':_0xf924('0x13'),'event':_0xf924('0x6'),'condition':_0xf924('0x7'),'callback':afterCreate},{'channel':_0xf924('0x12'),'model':_0xf924('0x13'),'event':_0xf924('0x8'),'condition':_0xf924('0x9'),'callback':afterUpdate},{'channel':'Fax','model':'FaxMessage','event':_0xf924('0x6'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xf924('0x14'),'model':'MailInteraction','event':_0xf924('0x6'),'condition':_0xf924('0x7'),'callback':afterCreate},{'channel':_0xf924('0x14'),'model':_0xf924('0x15'),'event':'afterUpdate','condition':_0xf924('0x9'),'callback':afterUpdate},{'channel':_0xf924('0x14'),'model':'MailMessage','event':_0xf924('0x6'),'condition':_0xf924('0xc'),'callback':afterCreateMessage},{'channel':_0xf924('0x16'),'model':'OpenchannelInteraction','event':_0xf924('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':_0xf924('0x16'),'model':_0xf924('0x17'),'event':_0xf924('0x8'),'condition':_0xf924('0x9'),'callback':afterUpdate},{'channel':_0xf924('0x16'),'model':_0xf924('0x18'),'event':'afterCreate','condition':_0xf924('0xc'),'callback':afterCreateMessage}];function request(_0x1a1871){return client[_0xf924('0x19')](_0xf924('0x1a'),_0x1a1871)[_0xf924('0x1b')](function(_0x10df8e){logger[_0xf924('0x1c')]('Trigger,\x20%s',_0xf924('0x1a'),_0x10df8e);if(_0x10df8e[_0xf924('0x1d')]){if(_0x10df8e[_0xf924('0x1d')][_0xf924('0x1e')]===0x1f4){logger[_0xf924('0x1d')](_0xf924('0x1f'),_0xf924('0x1a'),_0x10df8e['error']);}}})[_0xf924('0x20')](function(_0x29fd41){logger[_0xf924('0x1d')]('Trigger,\x20%s',_0xf924('0x1a'),_0x29fd41);});}function afterCreateMessage(_0x481a02){return function(_0x244738){_0x244738=_0x244738[_0xf924('0x21')]({'plain':!![]});_0x244738[_0xf924('0x22')]=_0x481a02;_0x244738['motionChannel']=_0x481a02;_0x244738[_0xf924('0x23')]=_0x244738[_0xf924('0x24')];Promise[_0xf924('0x25')]()['then'](function(){if(typeof _0x244738[_0xf924('0x26')]===_0xf924('0x27'))return null;var _0x2bfb56=_0xf924('0x28')+_0x244738[_0xf924('0x26')];return db[_0xf924('0x29')][_0xf924('0x2a')](_0x2bfb56,{'type':db['Sequelize'][_0xf924('0x2b')][_0xf924('0x2c')],'raw':!![]});})[_0xf924('0x1b')](function(_0x2faeac){if(_0x2faeac){_0x244738[_0xf924('0x2d')]=_0x2faeac[0x0];}if(typeof _0x244738['UserId']===_0xf924('0x27'))return;return getAgent(_0x244738[_0xf924('0x2e')]);})['then'](function(_0x576cd9){if(_0x576cd9){_0x244738[_0xf924('0x2f')]=util[_0xf924('0x30')](_0xf924('0x31'),_0x576cd9[_0xf924('0x32')]);_0x244738[_0xf924('0x33')]=_0x576cd9;_0x244738[_0xf924('0x22')]=_0x481a02;return request({'event':_0xf924('0x34'),'message':_0x244738});}else{return request({'event':_0xf924('0x35'),'message':_0x244738});}})[_0xf924('0x20')](function(_0x2e0dbe){logger[_0xf924('0x1d')](_0xf924('0x1f'),'AfterCreateMessage',_0x2e0dbe);});};}function afterCreateOfflineMessage(_0x82db66){return function(_0x53e79c){_0x53e79c=_0x53e79c[_0xf924('0x21')]({'plain':!![]});_0x53e79c['channel']=_0x82db66;_0x53e79c[_0xf924('0x36')]=_0x82db66;_0x53e79c[_0xf924('0x23')]=_0xf924('0x37');return request({'event':_0x53e79c[_0xf924('0x23')],'message':_0x53e79c});};}function afterCreate(_0x72f301,_0x4d1d25){return function(_0x4b019b){var _0x352e62=_0x4b019b[_0xf924('0x21')]({'plain':!![]});_0x352e62['channel']=_0x72f301;_0x352e62[_0xf924('0x36')]=_0x72f301;_0x352e62[_0xf924('0x23')]='opened';Promise['resolve']()[_0xf924('0x1b')](function(){var _0xa8a37a=_0xf924('0x28')+_0x352e62[_0xf924('0x26')];return db['sequelize'][_0xf924('0x2a')](_0xa8a37a,{'type':db[_0xf924('0x38')][_0xf924('0x2b')][_0xf924('0x2c')],'raw':!![]});})[_0xf924('0x1b')](function(_0x5b98e6){if(_0x5b98e6){_0x352e62[_0xf924('0x2d')]=_0x5b98e6[0x0];}if(_0x352e62[_0xf924('0x2e')]){return getAgent(_0x352e62[_0xf924('0x2e')]);}return;})['then'](function(_0x310598){if(_0x310598){_0x352e62[_0xf924('0x2f')]=util[_0xf924('0x30')](_0xf924('0x31'),_0x310598[_0xf924('0x32')]);_0x352e62[_0xf924('0x33')]=_0x310598;}return request({'event':_0x4d1d25,'message':_0x352e62});})[_0xf924('0x20')](function(_0x34abd8){logger[_0xf924('0x1d')]('Trigger,\x20%s',_0xf924('0x39'),_0x34abd8);});};}function afterUpdate(_0x26a89b){return function(_0x49755a){var _0xb94828=_0x49755a[_0xf924('0x3a')](_0xf924('0x3b'))&&_0x49755a[_0xf924('0x3b')];var _0x663978=_0x49755a[_0xf924('0x3a')](_0xf924('0x3c'));if(_0xb94828||_0x663978){var _0x39d2cb=_0xb94828?_0xf924('0x9'):_0xf924('0x3c');var _0x5966cb=_0x49755a[_0xf924('0x21')]({'plain':!![]});_0x5966cb[_0xf924('0x22')]=_0x26a89b;_0x5966cb['motionChannel']=_0x26a89b;_0x5966cb[_0xf924('0x23')]=_0xb94828?_0xf924('0x3b'):'substatus';var _0x5b58c3=_0xf924('0x28')+_0x5966cb[_0xf924('0x26')];return db[_0xf924('0x29')][_0xf924('0x2a')](_0x5b58c3,{'type':db[_0xf924('0x38')]['QueryTypes']['SELECT'],'raw':!![]})[_0xf924('0x1b')](function(_0x4889c1){if(_0x4889c1){_0x5966cb['contact']=_0x4889c1[0x0];}if(typeof _0x5966cb[_0xf924('0x2e')]===_0xf924('0x27'))return;return getAgent(_0x5966cb['UserId']);})[_0xf924('0x1b')](function(_0x3ab0b0){if(_0x3ab0b0){_0x5966cb['interface']=util['format'](_0xf924('0x31'),_0x3ab0b0['name']);_0x5966cb[_0xf924('0x33')]=_0x3ab0b0;}return request({'event':_0x39d2cb,'message':_0x5966cb});})['catch'](function(_0x320300){logger[_0xf924('0x1d')](_0xf924('0x1f'),_0xf924('0x3d'),_0x320300);});}};}function getAgent(_0x52488d){return db[_0xf924('0x3e')][_0xf924('0x3f')]({'where':{'id':_0x52488d},'attributes':['id',_0xf924('0x32'),'fullname',_0xf924('0x40'),_0xf924('0x41')],'raw':!![]})[_0xf924('0x1b')](function(_0x891bdf){return _0x891bdf;});}exports[_0xf924('0x42')]=function(){for(var _0x570a7b=0x0;_0x570a7b<triggers[_0xf924('0x43')];_0x570a7b+=0x1){if(db['hasOwnProperty'](triggers[_0x570a7b][_0xf924('0x44')])){db[triggers[_0x570a7b][_0xf924('0x44')]][_0xf924('0x45')](triggers[_0x570a7b][_0xf924('0x23')],triggers[_0x570a7b][_0xf924('0x46')](triggers[_0x570a7b][_0xf924('0x22')][_0xf924('0x47')](),triggers[_0x570a7b][_0xf924('0x48')]));}}};