149e4705f8b998786498e99386b466ef7eae98b7
[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 _0xe989=['interface','format','SIP/%s','channel','outgoingmessage','event','opened','changed','closed','User','default','length','hasOwnProperty','model','hook','toLowerCase','util','jayson/promise','../logger','triggers','client','http','Chat','ChatInteraction','afterCreate','newinteraction','afterUpdate','newmessage','Sms','SmsInteraction','closedinteraction','SmsMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','then','info','error','code','Trigger,\x20%s','catch','get','direction','UserId','find','name'];(function(_0x2f4113,_0x425631){var _0x31b67a=function(_0x39fc88){while(--_0x39fc88){_0x2f4113['push'](_0x2f4113['shift']());}};_0x31b67a(++_0x425631);}(_0xe989,0x11e));var _0x9e98=function(_0x526f94,_0x22f5c2){_0x526f94=_0x526f94-0x0;var _0x5025da=_0xe989[_0x526f94];return _0x5025da;};'use strict';var util=require(_0x9e98('0x0'));var db=require('../../mysqldb')['db'];var jayson=require(_0x9e98('0x1'));var logger=require(_0x9e98('0x2'))(_0x9e98('0x3'));var client=jayson[_0x9e98('0x4')][_0x9e98('0x5')]({'port':0x232a});var triggers=[{'channel':_0x9e98('0x6'),'model':_0x9e98('0x7'),'event':_0x9e98('0x8'),'condition':_0x9e98('0x9'),'callback':afterCreate},{'channel':_0x9e98('0x6'),'model':_0x9e98('0x7'),'event':_0x9e98('0xa'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x9e98('0x6'),'model':'ChatMessage','event':_0x9e98('0x8'),'condition':_0x9e98('0xb'),'callback':afterCreateMessage},{'channel':_0x9e98('0xc'),'model':_0x9e98('0xd'),'event':_0x9e98('0x8'),'condition':_0x9e98('0x9'),'callback':afterCreate},{'channel':'Sms','model':'SmsInteraction','event':_0x9e98('0xa'),'condition':_0x9e98('0xe'),'callback':afterUpdate},{'channel':_0x9e98('0xc'),'model':_0x9e98('0xf'),'event':_0x9e98('0x8'),'condition':_0x9e98('0xb'),'callback':afterCreateMessage},{'channel':'Fax','model':'FaxInteraction','event':_0x9e98('0x8'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x9e98('0x10'),'model':_0x9e98('0x11'),'event':_0x9e98('0xa'),'condition':_0x9e98('0xe'),'callback':afterUpdate},{'channel':_0x9e98('0x10'),'model':_0x9e98('0x12'),'event':_0x9e98('0x8'),'condition':_0x9e98('0xb'),'callback':afterCreateMessage},{'channel':_0x9e98('0x13'),'model':_0x9e98('0x14'),'event':_0x9e98('0x8'),'condition':_0x9e98('0x9'),'callback':afterCreate},{'channel':_0x9e98('0x13'),'model':_0x9e98('0x14'),'event':_0x9e98('0xa'),'condition':_0x9e98('0xe'),'callback':afterUpdate},{'channel':_0x9e98('0x13'),'model':_0x9e98('0x15'),'event':_0x9e98('0x8'),'condition':_0x9e98('0xb'),'callback':afterCreateMessage},{'channel':_0x9e98('0x16'),'model':_0x9e98('0x17'),'event':_0x9e98('0x8'),'condition':_0x9e98('0x9'),'callback':afterCreate},{'channel':_0x9e98('0x16'),'model':_0x9e98('0x17'),'event':'afterUpdate','condition':_0x9e98('0xe'),'callback':afterUpdate},{'channel':_0x9e98('0x16'),'model':_0x9e98('0x18'),'event':_0x9e98('0x8'),'condition':'newmessage','callback':afterCreateMessage}];function request(_0x1fb15a){return client[_0x9e98('0x19')](_0x9e98('0x1a'),_0x1fb15a)[_0x9e98('0x1b')](function(_0x4abd06){logger[_0x9e98('0x1c')]('Trigger,\x20%s',_0x9e98('0x1a'),_0x4abd06);if(_0x4abd06[_0x9e98('0x1d')]){if(_0x4abd06['error'][_0x9e98('0x1e')]===0x1f4){logger[_0x9e98('0x1d')](_0x9e98('0x1f'),_0x9e98('0x1a'),_0x4abd06['error']);}}})[_0x9e98('0x20')](function(_0x2815b9){logger[_0x9e98('0x1d')]('Trigger,\x20%s','EventManager',_0x2815b9);});}function afterCreateMessage(_0x4733e9,_0x51c785){return function(_0x4b1a7a,_0x2ad27a){_0x4b1a7a=_0x4b1a7a[_0x9e98('0x21')]({'plain':!![]});_0x4b1a7a['channel']=_0x4733e9;_0x4b1a7a['event']=_0x4b1a7a[_0x9e98('0x22')];if(_0x4b1a7a[_0x9e98('0x23')]){return db['User'][_0x9e98('0x24')]({'where':{'id':_0x4b1a7a[_0x9e98('0x23')]},'attributes':['id',_0x9e98('0x25')],'raw':!![]})['then'](function(_0x470a21){_0x4b1a7a[_0x9e98('0x26')]=util[_0x9e98('0x27')](_0x9e98('0x28'),_0x470a21['name']);_0x4b1a7a[_0x9e98('0x29')]=_0x4733e9;return request({'event':'incomingmessage','message':_0x4b1a7a});})[_0x9e98('0x20')](function(_0x2bb9e5){console[_0x9e98('0x1d')](_0x2bb9e5);});}else{return request({'event':_0x9e98('0x2a'),'message':_0x4b1a7a});}};}function afterCreate(_0x2843dc,_0x2c10da){return function(_0xfee9d1,_0x4f1bfd){_0xfee9d1=_0xfee9d1[_0x9e98('0x21')]({'plain':!![]});_0xfee9d1[_0x9e98('0x29')]=_0x2843dc;_0xfee9d1[_0x9e98('0x2b')]=_0x9e98('0x2c');return request({'event':_0x2c10da,'message':_0xfee9d1});};}function afterUpdate(_0x2f4671,_0x17b2ab){return function(_0x1953a3,_0x1cfaed){if(_0x1953a3[_0x9e98('0x2d')](_0x9e98('0x2e'))&&_0x1953a3[_0x9e98('0x2e')]){_0x1953a3=_0x1953a3[_0x9e98('0x21')]({'plain':!![]});_0x1953a3['channel']=_0x2f4671;_0x1953a3[_0x9e98('0x2b')]='closed';if(_0x1953a3[_0x9e98('0x23')]){return db[_0x9e98('0x2f')][_0x9e98('0x24')]({'where':{'id':_0x1953a3[_0x9e98('0x23')]},'attributes':['id',_0x9e98('0x25')],'raw':!![]})[_0x9e98('0x1b')](function(_0x14386e){_0x1953a3[_0x9e98('0x26')]=util[_0x9e98('0x27')](_0x9e98('0x28'),_0x14386e['name']);return request({'event':_0x17b2ab,'message':_0x1953a3});})[_0x9e98('0x20')](function(_0x5e46ed){console[_0x9e98('0x1d')](_0x5e46ed);});}else{return request({'event':_0x17b2ab,'message':_0x1953a3});}}};}exports[_0x9e98('0x30')]=function(){for(var _0x31928b=0x0;_0x31928b<triggers[_0x9e98('0x31')];_0x31928b+=0x1){if(db[_0x9e98('0x32')](triggers[_0x31928b][_0x9e98('0x33')])){db[triggers[_0x31928b]['model']][_0x9e98('0x34')](triggers[_0x31928b]['event'],triggers[_0x31928b]['callback'](triggers[_0x31928b][_0x9e98('0x29')][_0x9e98('0x35')](),triggers[_0x31928b]['condition']));}}};