982f95aa5a0e857446765e1835bf2cc05fbee1f0
[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 _0xed13=['SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','query','Sequelize','QueryTypes','SELECT','UserId','interface','name','agent','channel','incomingmessage','outgoingmessage','AfterCreateMessage','offlineMessage','opened','contact','SIP/%s','changed','closed','substatus','format','AfterUpdate','User','find','email','internal','default','model','hook','callback','toLowerCase','condition','../../mysqldb','jayson/promise','triggers','client','http','Chat','afterCreate','newinteraction','ChatInteraction','afterUpdate','closedinteraction','ChatMessage','ChatOfflineMessage','newmessage','Sms','SmsInteraction','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','then','Trigger,\x20%s','error','catch','EventManager','get','motionChannel','event','direction','resolve','ContactId','undefined'];(function(_0x3be793,_0x592814){var _0x41b54f=function(_0xed1820){while(--_0xed1820){_0x3be793['push'](_0x3be793['shift']());}};_0x41b54f(++_0x592814);}(_0xed13,0x198));var _0x3ed1=function(_0x427f7e,_0x4088bc){_0x427f7e=_0x427f7e-0x0;var _0x55cab0=_0xed13[_0x427f7e];return _0x55cab0;};'use strict';var util=require('util');var db=require(_0x3ed1('0x0'))['db'];var jayson=require(_0x3ed1('0x1'));var logger=require('../logger')(_0x3ed1('0x2'));var client=jayson[_0x3ed1('0x3')][_0x3ed1('0x4')]({'port':0x232a});var triggers=[{'channel':_0x3ed1('0x5'),'model':'ChatInteraction','event':_0x3ed1('0x6'),'condition':_0x3ed1('0x7'),'callback':afterCreate},{'channel':'Chat','model':_0x3ed1('0x8'),'event':_0x3ed1('0x9'),'condition':_0x3ed1('0xa'),'callback':afterUpdate},{'channel':'Chat','model':_0x3ed1('0xb'),'event':_0x3ed1('0x6'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x3ed1('0x5'),'model':_0x3ed1('0xc'),'event':_0x3ed1('0x6'),'condition':_0x3ed1('0xd'),'callback':afterCreateOfflineMessage},{'channel':_0x3ed1('0xe'),'model':_0x3ed1('0xf'),'event':_0x3ed1('0x6'),'condition':_0x3ed1('0x7'),'callback':afterCreate},{'channel':_0x3ed1('0xe'),'model':_0x3ed1('0xf'),'event':_0x3ed1('0x9'),'condition':_0x3ed1('0xa'),'callback':afterUpdate},{'channel':_0x3ed1('0xe'),'model':_0x3ed1('0x10'),'event':_0x3ed1('0x6'),'condition':_0x3ed1('0xd'),'callback':afterCreateMessage},{'channel':_0x3ed1('0x11'),'model':_0x3ed1('0x12'),'event':'afterCreate','condition':_0x3ed1('0x7'),'callback':afterCreate},{'channel':_0x3ed1('0x11'),'model':_0x3ed1('0x12'),'event':_0x3ed1('0x9'),'condition':_0x3ed1('0xa'),'callback':afterUpdate},{'channel':_0x3ed1('0x11'),'model':_0x3ed1('0x13'),'event':'afterCreate','condition':_0x3ed1('0xd'),'callback':afterCreateMessage},{'channel':_0x3ed1('0x14'),'model':_0x3ed1('0x15'),'event':_0x3ed1('0x6'),'condition':_0x3ed1('0x7'),'callback':afterCreate},{'channel':'Fax','model':'FaxInteraction','event':'afterUpdate','condition':_0x3ed1('0xa'),'callback':afterUpdate},{'channel':_0x3ed1('0x14'),'model':_0x3ed1('0x16'),'event':_0x3ed1('0x6'),'condition':_0x3ed1('0xd'),'callback':afterCreateMessage},{'channel':_0x3ed1('0x17'),'model':_0x3ed1('0x18'),'event':'afterCreate','condition':_0x3ed1('0x7'),'callback':afterCreate},{'channel':_0x3ed1('0x17'),'model':_0x3ed1('0x18'),'event':'afterUpdate','condition':_0x3ed1('0xa'),'callback':afterUpdate},{'channel':_0x3ed1('0x17'),'model':_0x3ed1('0x19'),'event':_0x3ed1('0x6'),'condition':_0x3ed1('0xd'),'callback':afterCreateMessage},{'channel':_0x3ed1('0x1a'),'model':_0x3ed1('0x1b'),'event':_0x3ed1('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':'Openchannel','model':_0x3ed1('0x1b'),'event':_0x3ed1('0x9'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x3ed1('0x1a'),'model':_0x3ed1('0x1c'),'event':_0x3ed1('0x6'),'condition':_0x3ed1('0xd'),'callback':afterCreateMessage}];function request(_0x4ff43d){return client[_0x3ed1('0x1d')]('EventManager',_0x4ff43d)[_0x3ed1('0x1e')](function(_0x309f1d){logger['info'](_0x3ed1('0x1f'),'EventManager',_0x309f1d);if(_0x309f1d[_0x3ed1('0x20')]){if(_0x309f1d[_0x3ed1('0x20')]['code']===0x1f4){logger[_0x3ed1('0x20')](_0x3ed1('0x1f'),'EventManager',_0x309f1d[_0x3ed1('0x20')]);}}})[_0x3ed1('0x21')](function(_0x5b4ca5){logger[_0x3ed1('0x20')](_0x3ed1('0x1f'),_0x3ed1('0x22'),_0x5b4ca5);});}function afterCreateMessage(_0x27a851){return function(_0x6e8a58){_0x6e8a58=_0x6e8a58[_0x3ed1('0x23')]({'plain':!![]});_0x6e8a58['channel']=_0x27a851;_0x6e8a58[_0x3ed1('0x24')]=_0x27a851;_0x6e8a58[_0x3ed1('0x25')]=_0x6e8a58[_0x3ed1('0x26')];Promise[_0x3ed1('0x27')]()[_0x3ed1('0x1e')](function(){if(typeof _0x6e8a58[_0x3ed1('0x28')]===_0x3ed1('0x29'))return null;var _0x5bcc8d=_0x3ed1('0x2a')+_0x6e8a58[_0x3ed1('0x28')];return db[_0x3ed1('0x2b')][_0x3ed1('0x2c')](_0x5bcc8d,{'type':db[_0x3ed1('0x2d')][_0x3ed1('0x2e')][_0x3ed1('0x2f')],'raw':!![]});})[_0x3ed1('0x1e')](function(_0x5df67b){if(_0x5df67b){_0x6e8a58['contact']=_0x5df67b[0x0];}if(typeof _0x6e8a58['UserId']===_0x3ed1('0x29'))return;return getAgent(_0x6e8a58[_0x3ed1('0x30')]);})[_0x3ed1('0x1e')](function(_0x2ceb9f){if(_0x2ceb9f){_0x6e8a58[_0x3ed1('0x31')]=util['format']('SIP/%s',_0x2ceb9f[_0x3ed1('0x32')]);_0x6e8a58[_0x3ed1('0x33')]=_0x2ceb9f;_0x6e8a58[_0x3ed1('0x34')]=_0x27a851;return request({'event':_0x3ed1('0x35'),'message':_0x6e8a58});}else{return request({'event':_0x3ed1('0x36'),'message':_0x6e8a58});}})[_0x3ed1('0x21')](function(_0x5d33d2){logger[_0x3ed1('0x20')](_0x3ed1('0x1f'),_0x3ed1('0x37'),_0x5d33d2);});};}function afterCreateOfflineMessage(_0x272537){return function(_0x5bf423){_0x5bf423=_0x5bf423[_0x3ed1('0x23')]({'plain':!![]});_0x5bf423[_0x3ed1('0x34')]=_0x272537;_0x5bf423[_0x3ed1('0x24')]=_0x272537;_0x5bf423[_0x3ed1('0x25')]=_0x3ed1('0x38');return request({'event':_0x5bf423[_0x3ed1('0x25')],'message':_0x5bf423});};}function afterCreate(_0x16900b,_0x733aea){return function(_0x255fe1){_0x255fe1=_0x255fe1[_0x3ed1('0x23')]({'plain':!![]});_0x255fe1[_0x3ed1('0x34')]=_0x16900b;_0x255fe1['motionChannel']=_0x16900b;_0x255fe1['event']=_0x3ed1('0x39');Promise[_0x3ed1('0x27')]()[_0x3ed1('0x1e')](function(){var _0x2f7ec9=_0x3ed1('0x2a')+_0x255fe1[_0x3ed1('0x28')];return db[_0x3ed1('0x2b')][_0x3ed1('0x2c')](_0x2f7ec9,{'type':db['Sequelize'][_0x3ed1('0x2e')][_0x3ed1('0x2f')],'raw':!![]});})[_0x3ed1('0x1e')](function(_0x5e272){if(_0x5e272){_0x255fe1[_0x3ed1('0x3a')]=_0x5e272[0x0];}if(typeof _0x255fe1[_0x3ed1('0x30')]===_0x3ed1('0x29'))return;return getAgent(_0x255fe1[_0x3ed1('0x30')]);})[_0x3ed1('0x1e')](function(_0x5cbf7e){if(_0x5cbf7e){_0x255fe1[_0x3ed1('0x31')]=util['format'](_0x3ed1('0x3b'),_0x5cbf7e[_0x3ed1('0x32')]);_0x255fe1['agent']=_0x5cbf7e;}return request({'event':_0x733aea,'message':_0x255fe1});})[_0x3ed1('0x21')](function(_0x57c2d0){logger[_0x3ed1('0x20')]('Trigger,\x20%s','AfterCreate',_0x57c2d0);});};}function afterUpdate(_0x517a11){return function(_0x337b28){var _0x47f462=_0x337b28[_0x3ed1('0x3c')]('closed')&&_0x337b28[_0x3ed1('0x3d')];var _0x5709c9=_0x337b28[_0x3ed1('0x3c')]('substatus');if(_0x47f462||_0x5709c9){var _0x89e8c=_0x47f462?_0x3ed1('0xa'):'substatus';var _0x3fb136=_0x337b28[_0x3ed1('0x23')]({'plain':!![]});_0x3fb136[_0x3ed1('0x34')]=_0x517a11;_0x3fb136[_0x3ed1('0x24')]=_0x517a11;_0x3fb136['event']=_0x47f462?'closed':_0x3ed1('0x3e');var _0x6f10d=_0x3ed1('0x2a')+_0x3fb136[_0x3ed1('0x28')];return db['sequelize']['query'](_0x6f10d,{'type':db[_0x3ed1('0x2d')][_0x3ed1('0x2e')][_0x3ed1('0x2f')],'raw':!![]})[_0x3ed1('0x1e')](function(_0x51dc71){if(_0x51dc71){_0x3fb136[_0x3ed1('0x3a')]=_0x51dc71[0x0];}if(typeof _0x3fb136[_0x3ed1('0x30')]===_0x3ed1('0x29'))return;return getAgent(_0x3fb136[_0x3ed1('0x30')]);})[_0x3ed1('0x1e')](function(_0x4803eb){if(_0x4803eb){_0x3fb136[_0x3ed1('0x31')]=util[_0x3ed1('0x3f')]('SIP/%s',_0x4803eb['name']);_0x3fb136[_0x3ed1('0x33')]=_0x4803eb;}return request({'event':_0x89e8c,'message':_0x3fb136});})[_0x3ed1('0x21')](function(_0x487970){logger['error'](_0x3ed1('0x1f'),_0x3ed1('0x40'),_0x487970);});}};}function getAgent(_0xae0e10){return db[_0x3ed1('0x41')][_0x3ed1('0x42')]({'where':{'id':_0xae0e10},'attributes':['id',_0x3ed1('0x32'),'fullname',_0x3ed1('0x43'),_0x3ed1('0x44')],'raw':!![]})['then'](function(_0x54b793){return _0x54b793;});}exports[_0x3ed1('0x45')]=function(){for(var _0x30e6e4=0x0;_0x30e6e4<triggers['length'];_0x30e6e4+=0x1){if(db['hasOwnProperty'](triggers[_0x30e6e4][_0x3ed1('0x46')])){db[triggers[_0x30e6e4]['model']][_0x3ed1('0x47')](triggers[_0x30e6e4][_0x3ed1('0x25')],triggers[_0x30e6e4][_0x3ed1('0x48')](triggers[_0x30e6e4][_0x3ed1('0x34')][_0x3ed1('0x49')](),triggers[_0x30e6e4][_0x3ed1('0x4a')]));}}};