Built motion from commit 9d0783e6.|2.6.13
[motion2.git] / server / components / interaction / update-interaction.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 _0x4e0e=['split','forEach','push','waiting','talking','answered','unmanaged','abandoned','closed','UserId','disposition','MailMessage','findOne','out','plainBody','-id','catch','updateInteraction','then','Users','TagIds','../../mysqldb','fullname'];(function(_0x13235f,_0x2d6a35){var _0x5c8694=function(_0x3b25f4){while(--_0x3b25f4){_0x13235f['push'](_0x13235f['shift']());}};_0x5c8694(++_0x2d6a35);}(_0x4e0e,0x1ca));var _0xe4e0=function(_0x29a45f,_0x1a3548){_0x29a45f=_0x29a45f-0x0;var _0x1d0145=_0x4e0e[_0x29a45f];return _0x1d0145;};'use strict';var _=require('lodash');var db=require(_0xe4e0('0x0'))['db'];function getInteractionUsers(_0x13acd4,_0x29ba6e){return new Promise(function(_0x57945b,_0x4f5415){try{var _0x563423=[];if(_0x29ba6e[_0x13acd4]){_0x563423=_0x29ba6e[_0x13acd4]['map'](function(_0x2186f2){return{'id':_0x2186f2['id'],'fullname':_0x2186f2[_0xe4e0('0x1')]};});}return _0x57945b(_0x563423);}catch(_0x1d0efb){_0x4f5415(_0x1d0efb);}});}function getInteractionTags(_0x5605a2,_0x112dc6){var _0x2a6a60=[];if(_0x5605a2){_0x5605a2[_0xe4e0('0x2')](',')[_0xe4e0('0x3')](function(_0x37bb67){_0x2a6a60[_0xe4e0('0x4')](_0x112dc6[_0x37bb67]);});}return _0x2a6a60;}function updateWaitingCounter(_0x32b7a9){if(_0x32b7a9[_0xe4e0('0x5')]){_0x32b7a9[_0xe4e0('0x5')]-=0x1;}}function updateInteractionCounters(_0x2c2934){_0x2c2934[_0xe4e0('0x5')]=0x0;_0x2c2934[_0xe4e0('0x6')]=0x0;_0x2c2934[_0xe4e0('0x7')]=0x0;_0x2c2934[_0xe4e0('0x8')]=0x0;_0x2c2934[_0xe4e0('0x9')]=0x0;_0x2c2934['total']=0x0;if(_0x2c2934[_0xe4e0('0xa')]){if(_0x2c2934['disposition']==='abandoned'){_0x2c2934[_0xe4e0('0x9')]+=0x1;updateWaitingCounter(_0x2c2934);}if(_0x2c2934[_0xe4e0('0xb')]){_0x2c2934[_0xe4e0('0x7')]+=0x1;if(_0x2c2934[_0xe4e0('0x6')]){_0x2c2934[_0xe4e0('0x6')]-=0x1;}}else{if(_0x2c2934[_0xe4e0('0xc')]){_0x2c2934[_0xe4e0('0x8')]+=0x1;updateWaitingCounter(_0x2c2934);}}}else{if(!_0x2c2934[_0xe4e0('0xb')]){_0x2c2934[_0xe4e0('0x5')]+=0x1;}if(_0x2c2934['UserId']){_0x2c2934[_0xe4e0('0x6')]+=0x1;updateWaitingCounter(_0x2c2934);}}_0x2c2934['total']+=0x1;return _0x2c2934;}function getLastMessageText(_0x138e86){return db[_0xe4e0('0xd')][_0xe4e0('0xe')]({'where':{'$and':[{'MailInteractionId':_0x138e86['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0xe4e0('0xf')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0xe4e0('0x10')],'order':_0xe4e0('0x11'),'raw':!![]})['then'](function(_0x23180f){if(_0x23180f&&_0x23180f[_0xe4e0('0x10')]){_0x138e86['lastMsgText']=_['trimStart'](_0x23180f[_0xe4e0('0x10')]);}return _0x138e86;})[_0xe4e0('0x12')](function(_0x39386a){throw _0x39386a;});}exports[_0xe4e0('0x13')]=function(_0xcbe363,_0x1e505b,_0x26b52e,_0x1eaae2){return new Promise(function(_0x42007d,_0x4b66cc){return getInteractionUsers(_0xcbe363['id'],_0x26b52e)[_0xe4e0('0x14')](function(_0x2dbdf8){_0xcbe363[_0xe4e0('0x15')]=_0x2dbdf8;return getInteractionTags(_0xcbe363['TagIds'],_0x1e505b);})[_0xe4e0('0x14')](function(_0x5a0ee2){_0xcbe363['Tags']=_0x5a0ee2;delete _0xcbe363[_0xe4e0('0x16')];return updateInteractionCounters(_0xcbe363);})[_0xe4e0('0x14')](function(_0x5aa39d){if(_0x1eaae2){return getLastMessageText(_0x5aa39d);}else{return _0x5aa39d;}})[_0xe4e0('0x14')](function(_0x12483d){_0x42007d(_0x12483d);})[_0xe4e0('0x12')](function(_0x2871e2){_0x4b66cc(_0x2871e2);});});};