644630d0873171437e8d3b51f22250a7c83486af
[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 _0xba57=['OpenchannelInteraction','then','Trigger,\x20%s','EventManager','error','catch','get','channel','motionChannel','direction','resolve','ContactId','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','query','Sequelize','QueryTypes','contact','UserId','User','find','fullname','email','interface','format','SIP/%s','name','agent','incomingmessage','outgoingmessage','event','opened','sequelize','closed','substatus','SELECT','length','model','hook','util','../../mysqldb','client','http','Chat','ChatInteraction','afterCreate','newinteraction','afterUpdate','closedinteraction','ChatMessage','Sms','SmsInteraction','SmsMessage','newmessage','Whatsapp','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel'];(function(_0x3495b7,_0x3054fd){var _0x55eff5=function(_0x401d35){while(--_0x401d35){_0x3495b7['push'](_0x3495b7['shift']());}};_0x55eff5(++_0x3054fd);}(_0xba57,0x1d1));var _0x7ba5=function(_0x565cfa,_0x2f6ac3){_0x565cfa=_0x565cfa-0x0;var _0x207b63=_0xba57[_0x565cfa];return _0x207b63;};'use strict';var util=require(_0x7ba5('0x0'));var db=require(_0x7ba5('0x1'))['db'];var jayson=require('jayson/promise');var logger=require('../logger')('triggers');var client=jayson[_0x7ba5('0x2')][_0x7ba5('0x3')]({'port':0x232a});var triggers=[{'channel':_0x7ba5('0x4'),'model':_0x7ba5('0x5'),'event':_0x7ba5('0x6'),'condition':_0x7ba5('0x7'),'callback':afterCreate},{'channel':_0x7ba5('0x4'),'model':'ChatInteraction','event':_0x7ba5('0x8'),'condition':_0x7ba5('0x9'),'callback':afterUpdate},{'channel':_0x7ba5('0x4'),'model':_0x7ba5('0xa'),'event':'afterCreate','condition':'newmessage','callback':afterCreateMessage},{'channel':_0x7ba5('0xb'),'model':_0x7ba5('0xc'),'event':_0x7ba5('0x6'),'condition':_0x7ba5('0x7'),'callback':afterCreate},{'channel':'Sms','model':_0x7ba5('0xc'),'event':_0x7ba5('0x8'),'condition':_0x7ba5('0x9'),'callback':afterUpdate},{'channel':'Sms','model':_0x7ba5('0xd'),'event':_0x7ba5('0x6'),'condition':_0x7ba5('0xe'),'callback':afterCreateMessage},{'channel':_0x7ba5('0xf'),'model':'WhatsappInteraction','event':_0x7ba5('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':'Whatsapp','model':'WhatsappInteraction','event':_0x7ba5('0x8'),'condition':_0x7ba5('0x9'),'callback':afterUpdate},{'channel':_0x7ba5('0xf'),'model':'WhatsappMessage','event':_0x7ba5('0x6'),'condition':_0x7ba5('0xe'),'callback':afterCreateMessage},{'channel':_0x7ba5('0x10'),'model':_0x7ba5('0x11'),'event':_0x7ba5('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x7ba5('0x10'),'model':_0x7ba5('0x11'),'event':'afterUpdate','condition':_0x7ba5('0x9'),'callback':afterUpdate},{'channel':'Fax','model':_0x7ba5('0x12'),'event':_0x7ba5('0x6'),'condition':_0x7ba5('0xe'),'callback':afterCreateMessage},{'channel':_0x7ba5('0x13'),'model':_0x7ba5('0x14'),'event':_0x7ba5('0x6'),'condition':_0x7ba5('0x7'),'callback':afterCreate},{'channel':_0x7ba5('0x13'),'model':_0x7ba5('0x14'),'event':_0x7ba5('0x8'),'condition':_0x7ba5('0x9'),'callback':afterUpdate},{'channel':_0x7ba5('0x13'),'model':_0x7ba5('0x15'),'event':_0x7ba5('0x6'),'condition':_0x7ba5('0xe'),'callback':afterCreateMessage},{'channel':_0x7ba5('0x16'),'model':_0x7ba5('0x17'),'event':_0x7ba5('0x6'),'condition':_0x7ba5('0x7'),'callback':afterCreate},{'channel':_0x7ba5('0x16'),'model':_0x7ba5('0x17'),'event':_0x7ba5('0x8'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Openchannel','model':'OpenchannelMessage','event':_0x7ba5('0x6'),'condition':'newmessage','callback':afterCreateMessage}];function request(_0xa33230){return client['request']('EventManager',_0xa33230)[_0x7ba5('0x18')](function(_0x40e0aa){logger['info'](_0x7ba5('0x19'),_0x7ba5('0x1a'),_0x40e0aa);if(_0x40e0aa['error']){if(_0x40e0aa[_0x7ba5('0x1b')]['code']===0x1f4){logger[_0x7ba5('0x1b')](_0x7ba5('0x19'),'EventManager',_0x40e0aa['error']);}}})[_0x7ba5('0x1c')](function(_0x33d3af){logger[_0x7ba5('0x1b')]('Trigger,\x20%s',_0x7ba5('0x1a'),_0x33d3af);});}function afterCreateMessage(_0x340695){return function(_0x12d665){_0x12d665=_0x12d665[_0x7ba5('0x1d')]({'plain':!![]});_0x12d665[_0x7ba5('0x1e')]=_0x340695;_0x12d665[_0x7ba5('0x1f')]=_0x340695;_0x12d665['event']=_0x12d665[_0x7ba5('0x20')];Promise[_0x7ba5('0x21')]()[_0x7ba5('0x18')](function(){if(typeof _0x12d665[_0x7ba5('0x22')]==='undefined')return null;var _0x4c493b=_0x7ba5('0x23')+_0x12d665['ContactId'];return db['sequelize'][_0x7ba5('0x24')](_0x4c493b,{'type':db[_0x7ba5('0x25')][_0x7ba5('0x26')]['SELECT'],'raw':!![]});})['then'](function(_0x297bd2){if(_0x297bd2){_0x12d665[_0x7ba5('0x27')]=_0x297bd2[0x0];}if(_0x12d665[_0x7ba5('0x28')]){return db[_0x7ba5('0x29')][_0x7ba5('0x2a')]({'where':{'id':_0x12d665[_0x7ba5('0x28')]},'attributes':['id','name',_0x7ba5('0x2b'),_0x7ba5('0x2c'),'internal'],'raw':!![]})['then'](function(_0x2e56ba){_0x12d665[_0x7ba5('0x2d')]=util[_0x7ba5('0x2e')](_0x7ba5('0x2f'),_0x2e56ba[_0x7ba5('0x30')]);_0x12d665[_0x7ba5('0x1e')]=_0x340695;_0x12d665[_0x7ba5('0x31')]=_0x2e56ba;return request({'event':_0x7ba5('0x32'),'message':_0x12d665});})[_0x7ba5('0x1c')](function(_0x1a668b){logger['error'](_0x7ba5('0x19'),'AfterCreateMessage',_0x1a668b);});}else{return request({'event':_0x7ba5('0x33'),'message':_0x12d665});}});};}function afterCreate(_0x4d5e85,_0x37e8e4){return function(_0x459502){_0x459502=_0x459502[_0x7ba5('0x1d')]({'plain':!![]});_0x459502[_0x7ba5('0x1e')]=_0x4d5e85;_0x459502[_0x7ba5('0x1f')]=_0x4d5e85;_0x459502[_0x7ba5('0x34')]=_0x7ba5('0x35');var _0x368558=_0x7ba5('0x23')+_0x459502[_0x7ba5('0x22')];return db[_0x7ba5('0x36')][_0x7ba5('0x24')](_0x368558,{'type':db['Sequelize'][_0x7ba5('0x26')]['SELECT'],'raw':!![]})['then'](function(_0x32bddf){return _0x32bddf;})[_0x7ba5('0x18')](function(_0x2e5511){if(_0x2e5511){_0x459502[_0x7ba5('0x27')]=_0x2e5511[0x0];}return request({'event':_0x37e8e4,'message':_0x459502});});};}function afterUpdate(_0x202507){return function(_0xd6b07e){var _0x188718=_0xd6b07e['changed'](_0x7ba5('0x37'))&&_0xd6b07e[_0x7ba5('0x37')];var _0x206247=_0xd6b07e['changed']('substatus');if(_0x188718||_0x206247){var _0x381de0=_0x188718?'closedinteraction':_0x7ba5('0x38');var _0x414a2a=_0xd6b07e[_0x7ba5('0x1d')]({'plain':!![]});_0x414a2a[_0x7ba5('0x1e')]=_0x202507;_0x414a2a['motionChannel']=_0x202507;_0x414a2a[_0x7ba5('0x34')]=_0x188718?_0x7ba5('0x37'):_0x7ba5('0x38');var _0x1ee701=_0x7ba5('0x23')+_0x414a2a[_0x7ba5('0x22')];return db['sequelize']['query'](_0x1ee701,{'type':db[_0x7ba5('0x25')][_0x7ba5('0x26')][_0x7ba5('0x39')],'raw':!![]})[_0x7ba5('0x18')](function(_0x50b150){if(_0x50b150){_0x414a2a['contact']=_0x50b150[0x0];}if(_0x414a2a[_0x7ba5('0x28')]){return db[_0x7ba5('0x29')][_0x7ba5('0x2a')]({'where':{'id':_0x414a2a['UserId']},'attributes':['id','name',_0x7ba5('0x2b'),'email','internal'],'raw':!![]})['then'](function(_0x4fce70){_0x414a2a['interface']=util[_0x7ba5('0x2e')](_0x7ba5('0x2f'),_0x4fce70[_0x7ba5('0x30')]);_0x414a2a[_0x7ba5('0x31')]=_0x4fce70;return request({'event':_0x381de0,'message':_0x414a2a});})[_0x7ba5('0x1c')](function(_0x54c901){logger[_0x7ba5('0x1b')](_0x7ba5('0x19'),'AfterUpdate',_0x54c901);});}else{return request({'event':_0x381de0,'message':_0x414a2a});}});}};}exports['default']=function(){for(var _0xed270e=0x0;_0xed270e<triggers[_0x7ba5('0x3a')];_0xed270e+=0x1){if(db['hasOwnProperty'](triggers[_0xed270e]['model'])){db[triggers[_0xed270e][_0x7ba5('0x3b')]][_0x7ba5('0x3c')](triggers[_0xed270e][_0x7ba5('0x34')],triggers[_0xed270e]['callback'](triggers[_0xed270e][_0x7ba5('0x1e')]['toLowerCase'](),triggers[_0xed270e]['condition']));}}};