Built motion from commit 43538d75.|2.5.35
[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 _0x2869=['QueryTypes','changed','closed','substatus','get','User','fullname','SIP/%s','length','model','callback','toLowerCase','condition','util','../../mysqldb','jayson/promise','triggers','lodash','client','http','Chat','afterCreate','newinteraction','ChatInteraction','afterUpdate','closedinteraction','ChatMessage','newmessage','Sms','SmsInteraction','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','FaxInteraction','Fax','FaxMessage','MailInteraction','Mail','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','then','info','error','Trigger,\x20%s','catch','channel','motionChannel','event','direction','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','query','Sequelize','SELECT','contact','find','UserId','email','internal','interface','format','name','agent','incomingmessage','opened'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0x2869,0xe2));var _0x9286=function(_0x40afa6,_0x4b6231){_0x40afa6=_0x40afa6-0x0;var _0x3299db=_0x2869[_0x40afa6];return _0x3299db;};'use strict';var util=require(_0x9286('0x0'));var db=require(_0x9286('0x1'))['db'];var jayson=require(_0x9286('0x2'));var logger=require('../logger')(_0x9286('0x3'));var _=require(_0x9286('0x4'));var client=jayson[_0x9286('0x5')][_0x9286('0x6')]({'port':0x232a});var triggers=[{'channel':_0x9286('0x7'),'model':'ChatInteraction','event':_0x9286('0x8'),'condition':_0x9286('0x9'),'callback':afterCreate},{'channel':_0x9286('0x7'),'model':_0x9286('0xa'),'event':_0x9286('0xb'),'condition':_0x9286('0xc'),'callback':afterUpdate},{'channel':_0x9286('0x7'),'model':_0x9286('0xd'),'event':'afterCreate','condition':_0x9286('0xe'),'callback':afterCreateMessage},{'channel':_0x9286('0xf'),'model':_0x9286('0x10'),'event':_0x9286('0x8'),'condition':_0x9286('0x9'),'callback':afterCreate},{'channel':_0x9286('0xf'),'model':_0x9286('0x10'),'event':'afterUpdate','condition':_0x9286('0xc'),'callback':afterUpdate},{'channel':'Sms','model':_0x9286('0x11'),'event':_0x9286('0x8'),'condition':_0x9286('0xe'),'callback':afterCreateMessage},{'channel':_0x9286('0x12'),'model':'WhatsappInteraction','event':_0x9286('0x8'),'condition':_0x9286('0x9'),'callback':afterCreate},{'channel':_0x9286('0x12'),'model':_0x9286('0x13'),'event':_0x9286('0xb'),'condition':_0x9286('0xc'),'callback':afterUpdate},{'channel':_0x9286('0x12'),'model':_0x9286('0x14'),'event':_0x9286('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Fax','model':_0x9286('0x15'),'event':'afterCreate','condition':'newinteraction','callback':afterCreate},{'channel':_0x9286('0x16'),'model':_0x9286('0x15'),'event':'afterUpdate','condition':_0x9286('0xc'),'callback':afterUpdate},{'channel':_0x9286('0x16'),'model':_0x9286('0x17'),'event':'afterCreate','condition':_0x9286('0xe'),'callback':afterCreateMessage},{'channel':'Mail','model':_0x9286('0x18'),'event':'afterCreate','condition':_0x9286('0x9'),'callback':afterCreate},{'channel':_0x9286('0x19'),'model':_0x9286('0x18'),'event':_0x9286('0xb'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x9286('0x19'),'model':_0x9286('0x1a'),'event':_0x9286('0x8'),'condition':_0x9286('0xe'),'callback':afterCreateMessage},{'channel':_0x9286('0x1b'),'model':'OpenchannelInteraction','event':_0x9286('0x8'),'condition':_0x9286('0x9'),'callback':afterCreate},{'channel':_0x9286('0x1b'),'model':_0x9286('0x1c'),'event':_0x9286('0xb'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x9286('0x1b'),'model':_0x9286('0x1d'),'event':_0x9286('0x8'),'condition':_0x9286('0xe'),'callback':afterCreateMessage}];function request(_0x5e20c9){return client[_0x9286('0x1e')](_0x9286('0x1f'),_0x5e20c9)[_0x9286('0x20')](function(_0x156ab2){logger[_0x9286('0x21')]('Trigger,\x20%s',_0x9286('0x1f'),_0x156ab2);if(_0x156ab2[_0x9286('0x22')]){if(_0x156ab2['error']['code']===0x1f4){logger[_0x9286('0x22')](_0x9286('0x23'),_0x9286('0x1f'),_0x156ab2['error']);}}})[_0x9286('0x24')](function(_0x590cad){logger[_0x9286('0x22')](_0x9286('0x23'),_0x9286('0x1f'),_0x590cad);});}function afterCreateMessage(_0x19bb9f,_0x5ebd52){return function(_0x31e3c0,_0x1d0e73){_0x31e3c0=_0x31e3c0['get']({'plain':!![]});_0x31e3c0[_0x9286('0x25')]=_0x19bb9f;_0x31e3c0[_0x9286('0x26')]=_0x19bb9f;_0x31e3c0[_0x9286('0x27')]=_0x31e3c0[_0x9286('0x28')];var _0x4b46e3=_0x9286('0x29')+_0x31e3c0[_0x9286('0x2a')];return db[_0x9286('0x2b')][_0x9286('0x2c')](_0x4b46e3,{'type':db[_0x9286('0x2d')]['QueryTypes'][_0x9286('0x2e')],'raw':!![]})[_0x9286('0x20')](function(_0x3a6bf1){return _0x3a6bf1;})[_0x9286('0x20')](function(_0x4e93be){if(_0x4e93be){_0x31e3c0[_0x9286('0x2f')]=_0x4e93be[0x0];}if(_0x31e3c0['UserId']){return db['User'][_0x9286('0x30')]({'where':{'id':_0x31e3c0[_0x9286('0x31')]},'attributes':['id','name','fullname',_0x9286('0x32'),_0x9286('0x33')],'raw':!![]})[_0x9286('0x20')](function(_0x462b9f){_0x31e3c0[_0x9286('0x34')]=util[_0x9286('0x35')]('SIP/%s',_0x462b9f[_0x9286('0x36')]);_0x31e3c0[_0x9286('0x25')]=_0x19bb9f;_0x31e3c0[_0x9286('0x37')]=_0x462b9f;return request({'event':_0x9286('0x38'),'message':_0x31e3c0});})[_0x9286('0x24')](function(_0xef465b){console[_0x9286('0x22')](_0xef465b);});}else{return request({'event':'outgoingmessage','message':_0x31e3c0});}});};}function afterCreate(_0x277c79,_0x2585fe){return function(_0x2ec8f2,_0x1dfb9a){_0x2ec8f2=_0x2ec8f2['get']({'plain':!![]});_0x2ec8f2[_0x9286('0x25')]=_0x277c79;_0x2ec8f2[_0x9286('0x26')]=_0x277c79;_0x2ec8f2['event']=_0x9286('0x39');var _0x237426=_0x9286('0x29')+_0x2ec8f2[_0x9286('0x2a')];return db[_0x9286('0x2b')][_0x9286('0x2c')](_0x237426,{'type':db[_0x9286('0x2d')][_0x9286('0x3a')][_0x9286('0x2e')],'raw':!![]})[_0x9286('0x20')](function(_0x344848){return _0x344848;})[_0x9286('0x20')](function(_0x5a03e6){if(_0x5a03e6){_0x2ec8f2[_0x9286('0x2f')]=_0x5a03e6[0x0];}return request({'event':_0x2585fe,'message':_0x2ec8f2});});};}function afterUpdate(_0x182123){return function(_0x3f4c51){var _0x194e07=_0x3f4c51[_0x9286('0x3b')](_0x9286('0x3c'))&&_0x3f4c51[_0x9286('0x3c')];var _0x271b64=_0x3f4c51[_0x9286('0x3b')](_0x9286('0x3d'));if(_0x194e07||_0x271b64){var _0x427cf1=_0x194e07?_0x9286('0xc'):_0x9286('0x3d');var _0x35a61f=_0x3f4c51[_0x9286('0x3e')]({'plain':!![]});_0x35a61f['channel']=_0x182123;_0x35a61f['motionChannel']=_0x182123;_0x35a61f['event']=_0x194e07?_0x9286('0x3c'):'substatus';var _0x15df10=_0x9286('0x29')+_0x35a61f[_0x9286('0x2a')];return db['sequelize']['query'](_0x15df10,{'type':db[_0x9286('0x2d')]['QueryTypes'][_0x9286('0x2e')],'raw':!![]})[_0x9286('0x20')](function(_0x5c7c70){if(_0x5c7c70){_0x35a61f[_0x9286('0x2f')]=_0x5c7c70[0x0];}if(_0x35a61f['UserId']){return db[_0x9286('0x3f')][_0x9286('0x30')]({'where':{'id':_0x35a61f[_0x9286('0x31')]},'attributes':['id',_0x9286('0x36'),_0x9286('0x40'),_0x9286('0x32'),'internal'],'raw':!![]})[_0x9286('0x20')](function(_0xe06ad8){_0x35a61f[_0x9286('0x34')]=util['format'](_0x9286('0x41'),_0xe06ad8[_0x9286('0x36')]);_0x35a61f['agent']=_0xe06ad8;return request({'event':_0x427cf1,'message':_0x35a61f});})[_0x9286('0x24')](function(_0x53fc38){console['error'](_0x53fc38);});}else{return request({'event':_0x427cf1,'message':_0x35a61f});}});}};}exports['default']=function(){for(var _0x4b4aca=0x0;_0x4b4aca<triggers[_0x9286('0x42')];_0x4b4aca+=0x1){if(db['hasOwnProperty'](triggers[_0x4b4aca][_0x9286('0x43')])){db[triggers[_0x4b4aca][_0x9286('0x43')]]['hook'](triggers[_0x4b4aca]['event'],triggers[_0x4b4aca][_0x9286('0x44')](triggers[_0x4b4aca][_0x9286('0x25')][_0x9286('0x45')](),triggers[_0x4b4aca][_0x9286('0x46')]));}}};