Built motion from commit d1eab355.|2.6.28
[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 _0xb9c2=['SELECT','UserId','interface','format','SIP/%s','name','agent','outgoingmessage','AfterCreateMessage','channel','event','offlineMessage','opened','sequelize','QueryTypes','contact','AfterCreate','changed','closed','substatus','AfterUpdate','User','find','email','internal','length','hook','toLowerCase','condition','util','../../mysqldb','jayson/promise','../logger','triggers','http','Chat','ChatInteraction','afterCreate','afterUpdate','ChatMessage','ChatOfflineMessage','newmessage','Sms','SmsInteraction','newinteraction','closedinteraction','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','FaxInteraction','Fax','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','then','error','code','Trigger,\x20%s','catch','get','motionChannel','direction','resolve','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','Sequelize'];(function(_0x2488fb,_0x20cbc2){var _0x968a30=function(_0x282020){while(--_0x282020){_0x2488fb['push'](_0x2488fb['shift']());}};_0x968a30(++_0x20cbc2);}(_0xb9c2,0x145));var _0x2b9c=function(_0x35a329,_0x488fee){_0x35a329=_0x35a329-0x0;var _0x4cbdb1=_0xb9c2[_0x35a329];return _0x4cbdb1;};'use strict';var util=require(_0x2b9c('0x0'));var db=require(_0x2b9c('0x1'))['db'];var jayson=require(_0x2b9c('0x2'));var logger=require(_0x2b9c('0x3'))(_0x2b9c('0x4'));var client=jayson['client'][_0x2b9c('0x5')]({'port':0x232a});var triggers=[{'channel':_0x2b9c('0x6'),'model':_0x2b9c('0x7'),'event':_0x2b9c('0x8'),'condition':'newinteraction','callback':afterCreate},{'channel':'Chat','model':_0x2b9c('0x7'),'event':_0x2b9c('0x9'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Chat','model':_0x2b9c('0xa'),'event':_0x2b9c('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x2b9c('0x6'),'model':_0x2b9c('0xb'),'event':'afterCreate','condition':_0x2b9c('0xc'),'callback':afterCreateOfflineMessage},{'channel':_0x2b9c('0xd'),'model':_0x2b9c('0xe'),'event':_0x2b9c('0x8'),'condition':_0x2b9c('0xf'),'callback':afterCreate},{'channel':_0x2b9c('0xd'),'model':'SmsInteraction','event':_0x2b9c('0x9'),'condition':_0x2b9c('0x10'),'callback':afterUpdate},{'channel':_0x2b9c('0xd'),'model':_0x2b9c('0x11'),'event':_0x2b9c('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x2b9c('0x12'),'model':_0x2b9c('0x13'),'event':_0x2b9c('0x8'),'condition':_0x2b9c('0xf'),'callback':afterCreate},{'channel':'Whatsapp','model':_0x2b9c('0x13'),'event':_0x2b9c('0x9'),'condition':_0x2b9c('0x10'),'callback':afterUpdate},{'channel':_0x2b9c('0x12'),'model':_0x2b9c('0x14'),'event':_0x2b9c('0x8'),'condition':_0x2b9c('0xc'),'callback':afterCreateMessage},{'channel':'Fax','model':_0x2b9c('0x15'),'event':'afterCreate','condition':_0x2b9c('0xf'),'callback':afterCreate},{'channel':'Fax','model':_0x2b9c('0x15'),'event':'afterUpdate','condition':_0x2b9c('0x10'),'callback':afterUpdate},{'channel':_0x2b9c('0x16'),'model':_0x2b9c('0x17'),'event':_0x2b9c('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Mail','model':'MailInteraction','event':'afterCreate','condition':_0x2b9c('0xf'),'callback':afterCreate},{'channel':_0x2b9c('0x18'),'model':_0x2b9c('0x19'),'event':_0x2b9c('0x9'),'condition':_0x2b9c('0x10'),'callback':afterUpdate},{'channel':_0x2b9c('0x18'),'model':_0x2b9c('0x1a'),'event':_0x2b9c('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x2b9c('0x1b'),'model':_0x2b9c('0x1c'),'event':'afterCreate','condition':_0x2b9c('0xf'),'callback':afterCreate},{'channel':_0x2b9c('0x1b'),'model':_0x2b9c('0x1c'),'event':'afterUpdate','condition':_0x2b9c('0x10'),'callback':afterUpdate},{'channel':_0x2b9c('0x1b'),'model':_0x2b9c('0x1d'),'event':_0x2b9c('0x8'),'condition':_0x2b9c('0xc'),'callback':afterCreateMessage}];function request(_0x5a0fcc){return client[_0x2b9c('0x1e')](_0x2b9c('0x1f'),_0x5a0fcc)[_0x2b9c('0x20')](function(_0x4e9db5){logger['info']('Trigger,\x20%s',_0x2b9c('0x1f'),_0x4e9db5);if(_0x4e9db5[_0x2b9c('0x21')]){if(_0x4e9db5['error'][_0x2b9c('0x22')]===0x1f4){logger['error'](_0x2b9c('0x23'),_0x2b9c('0x1f'),_0x4e9db5[_0x2b9c('0x21')]);}}})[_0x2b9c('0x24')](function(_0x100ebc){logger[_0x2b9c('0x21')]('Trigger,\x20%s','EventManager',_0x100ebc);});}function afterCreateMessage(_0xd6e1c4){return function(_0x13410e){_0x13410e=_0x13410e[_0x2b9c('0x25')]({'plain':!![]});_0x13410e['channel']=_0xd6e1c4;_0x13410e[_0x2b9c('0x26')]=_0xd6e1c4;_0x13410e['event']=_0x13410e[_0x2b9c('0x27')];Promise[_0x2b9c('0x28')]()['then'](function(){if(typeof _0x13410e[_0x2b9c('0x29')]===_0x2b9c('0x2a'))return null;var _0x2ebf30=_0x2b9c('0x2b')+_0x13410e[_0x2b9c('0x29')];return db['sequelize']['query'](_0x2ebf30,{'type':db[_0x2b9c('0x2c')]['QueryTypes'][_0x2b9c('0x2d')],'raw':!![]});})['then'](function(_0x523c28){if(_0x523c28){_0x13410e['contact']=_0x523c28[0x0];}if(typeof _0x13410e['UserId']===_0x2b9c('0x2a'))return;return getAgent(_0x13410e[_0x2b9c('0x2e')]);})['then'](function(_0x2efacb){if(_0x2efacb){_0x13410e[_0x2b9c('0x2f')]=util[_0x2b9c('0x30')](_0x2b9c('0x31'),_0x2efacb[_0x2b9c('0x32')]);_0x13410e[_0x2b9c('0x33')]=_0x2efacb;_0x13410e['channel']=_0xd6e1c4;return request({'event':'incomingmessage','message':_0x13410e});}else{return request({'event':_0x2b9c('0x34'),'message':_0x13410e});}})[_0x2b9c('0x24')](function(_0x270a40){logger[_0x2b9c('0x21')](_0x2b9c('0x23'),_0x2b9c('0x35'),_0x270a40);});};}function afterCreateOfflineMessage(_0x6b2ca){return function(_0x2f8462){_0x2f8462=_0x2f8462['get']({'plain':!![]});_0x2f8462[_0x2b9c('0x36')]=_0x6b2ca;_0x2f8462['motionChannel']=_0x6b2ca;_0x2f8462[_0x2b9c('0x37')]=_0x2b9c('0x38');return request({'event':_0x2f8462[_0x2b9c('0x37')],'message':_0x2f8462});};}function afterCreate(_0x414647,_0x1f4a02){return function(_0x2ecc30){_0x2ecc30=_0x2ecc30[_0x2b9c('0x25')]({'plain':!![]});_0x2ecc30[_0x2b9c('0x36')]=_0x414647;_0x2ecc30[_0x2b9c('0x26')]=_0x414647;_0x2ecc30[_0x2b9c('0x37')]=_0x2b9c('0x39');Promise[_0x2b9c('0x28')]()[_0x2b9c('0x20')](function(){var _0x180f5e=_0x2b9c('0x2b')+_0x2ecc30['ContactId'];return db[_0x2b9c('0x3a')]['query'](_0x180f5e,{'type':db[_0x2b9c('0x2c')][_0x2b9c('0x3b')][_0x2b9c('0x2d')],'raw':!![]});})['then'](function(_0x59c697){if(_0x59c697){_0x2ecc30[_0x2b9c('0x3c')]=_0x59c697[0x0];}if(typeof _0x2ecc30[_0x2b9c('0x2e')]===_0x2b9c('0x2a'))return;return getAgent(_0x2ecc30[_0x2b9c('0x2e')]);})[_0x2b9c('0x20')](function(_0x4e9cb0){if(_0x4e9cb0){_0x2ecc30[_0x2b9c('0x2f')]=util[_0x2b9c('0x30')](_0x2b9c('0x31'),_0x4e9cb0['name']);_0x2ecc30[_0x2b9c('0x33')]=_0x4e9cb0;}return request({'event':_0x1f4a02,'message':_0x2ecc30});})[_0x2b9c('0x24')](function(_0xe8030c){logger['error']('Trigger,\x20%s',_0x2b9c('0x3d'),_0xe8030c);});};}function afterUpdate(_0x2c25ea){return function(_0x480af2){var _0x5ea823=_0x480af2[_0x2b9c('0x3e')]('closed')&&_0x480af2[_0x2b9c('0x3f')];var _0x1a8a2f=_0x480af2[_0x2b9c('0x3e')](_0x2b9c('0x40'));if(_0x5ea823||_0x1a8a2f){var _0x395dbb=_0x5ea823?_0x2b9c('0x10'):_0x2b9c('0x40');var _0x1335c1=_0x480af2['get']({'plain':!![]});_0x1335c1[_0x2b9c('0x36')]=_0x2c25ea;_0x1335c1[_0x2b9c('0x26')]=_0x2c25ea;_0x1335c1[_0x2b9c('0x37')]=_0x5ea823?'closed':_0x2b9c('0x40');var _0x52156c=_0x2b9c('0x2b')+_0x1335c1['ContactId'];return db[_0x2b9c('0x3a')]['query'](_0x52156c,{'type':db[_0x2b9c('0x2c')]['QueryTypes'][_0x2b9c('0x2d')],'raw':!![]})[_0x2b9c('0x20')](function(_0x472d38){if(_0x472d38){_0x1335c1['contact']=_0x472d38[0x0];}if(typeof _0x1335c1[_0x2b9c('0x2e')]===_0x2b9c('0x2a'))return;return getAgent(_0x1335c1['UserId']);})[_0x2b9c('0x20')](function(_0x5b7b9f){if(_0x5b7b9f){_0x1335c1[_0x2b9c('0x2f')]=util[_0x2b9c('0x30')](_0x2b9c('0x31'),_0x5b7b9f[_0x2b9c('0x32')]);_0x1335c1[_0x2b9c('0x33')]=_0x5b7b9f;}return request({'event':_0x395dbb,'message':_0x1335c1});})[_0x2b9c('0x24')](function(_0x4d6c51){logger['error']('Trigger,\x20%s',_0x2b9c('0x41'),_0x4d6c51);});}};}function getAgent(_0x5da247){return db[_0x2b9c('0x42')][_0x2b9c('0x43')]({'where':{'id':_0x5da247},'attributes':['id','name','fullname',_0x2b9c('0x44'),_0x2b9c('0x45')],'raw':!![]})['then'](function(_0x303d34){return _0x303d34;});}exports['default']=function(){for(var _0x87dce9=0x0;_0x87dce9<triggers[_0x2b9c('0x46')];_0x87dce9+=0x1){if(db['hasOwnProperty'](triggers[_0x87dce9]['model'])){db[triggers[_0x87dce9]['model']][_0x2b9c('0x47')](triggers[_0x87dce9][_0x2b9c('0x37')],triggers[_0x87dce9]['callback'](triggers[_0x87dce9]['channel'][_0x2b9c('0x48')](),triggers[_0x87dce9][_0x2b9c('0x49')]));}}};