Built motion from commit 449495f6.|2.6.27
[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 _0xf9ca=['answered','unmanaged','abandoned','total','closed','disposition','UserId','MailMessage','findOne','then','plainBody','trimStart','catch','Users','TagIds','Tags','lodash','fullname','split','forEach','waiting','talking'];(function(_0xe39fbd,_0x36c512){var _0x299da1=function(_0x16e31c){while(--_0x16e31c){_0xe39fbd['push'](_0xe39fbd['shift']());}};_0x299da1(++_0x36c512);}(_0xf9ca,0x144));var _0xaf9c=function(_0x44089a,_0x35a3d3){_0x44089a=_0x44089a-0x0;var _0x89c2e0=_0xf9ca[_0x44089a];return _0x89c2e0;};'use strict';var _=require(_0xaf9c('0x0'));var db=require('../../mysqldb')['db'];function getInteractionUsers(_0x1e3073,_0x57d3ae){return new Promise(function(_0x3caec0,_0x2f4412){try{var _0x58aeed=[];if(_0x57d3ae[_0x1e3073]){_0x58aeed=_0x57d3ae[_0x1e3073]['map'](function(_0x41fc23){return{'id':_0x41fc23['id'],'fullname':_0x41fc23[_0xaf9c('0x1')]};});}return _0x3caec0(_0x58aeed);}catch(_0x28d1ba){_0x2f4412(_0x28d1ba);}});}function getInteractionTags(_0x2ece8d,_0x22506d){var _0x521963=[];if(_0x2ece8d){_0x2ece8d[_0xaf9c('0x2')](',')[_0xaf9c('0x3')](function(_0x3eea66){_0x521963['push'](_0x22506d[_0x3eea66]);});}return _0x521963;}function updateWaitingCounter(_0x1c2e95){if(_0x1c2e95[_0xaf9c('0x4')]){_0x1c2e95['waiting']-=0x1;}}function updateInteractionCounters(_0x1f54d4){_0x1f54d4[_0xaf9c('0x4')]=0x0;_0x1f54d4[_0xaf9c('0x5')]=0x0;_0x1f54d4[_0xaf9c('0x6')]=0x0;_0x1f54d4[_0xaf9c('0x7')]=0x0;_0x1f54d4[_0xaf9c('0x8')]=0x0;_0x1f54d4[_0xaf9c('0x9')]=0x0;if(_0x1f54d4[_0xaf9c('0xa')]){if(_0x1f54d4[_0xaf9c('0xb')]===_0xaf9c('0x8')){_0x1f54d4[_0xaf9c('0x8')]+=0x1;updateWaitingCounter(_0x1f54d4);}if(_0x1f54d4[_0xaf9c('0xc')]){_0x1f54d4[_0xaf9c('0x6')]+=0x1;if(_0x1f54d4[_0xaf9c('0x5')]){_0x1f54d4[_0xaf9c('0x5')]-=0x1;}}else{if(_0x1f54d4[_0xaf9c('0xb')]){_0x1f54d4[_0xaf9c('0x7')]+=0x1;updateWaitingCounter(_0x1f54d4);}}}else{if(!_0x1f54d4[_0xaf9c('0xc')]){_0x1f54d4[_0xaf9c('0x4')]+=0x1;}if(_0x1f54d4['UserId']){_0x1f54d4[_0xaf9c('0x5')]+=0x1;updateWaitingCounter(_0x1f54d4);}}_0x1f54d4['total']+=0x1;return _0x1f54d4;}function getLastMessageText(_0x5b726c){return db[_0xaf9c('0xd')][_0xaf9c('0xe')]({'where':{'$and':[{'MailInteractionId':_0x5b726c['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':'out'},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':['plainBody'],'order':'-id','raw':!![]})[_0xaf9c('0xf')](function(_0x4d736d){if(_0x4d736d&&_0x4d736d[_0xaf9c('0x10')]){_0x5b726c['lastMsgText']=_[_0xaf9c('0x11')](_0x4d736d[_0xaf9c('0x10')]);}return _0x5b726c;})[_0xaf9c('0x12')](function(_0x574dad){throw _0x574dad;});}exports['updateInteraction']=function(_0x1a2515,_0x496306,_0x624e31,_0x344725){return new Promise(function(_0x2928f2,_0x2ed453){return getInteractionUsers(_0x1a2515['id'],_0x624e31)['then'](function(_0x4231b1){_0x1a2515[_0xaf9c('0x13')]=_0x4231b1;return getInteractionTags(_0x1a2515[_0xaf9c('0x14')],_0x496306);})[_0xaf9c('0xf')](function(_0x1cf373){_0x1a2515[_0xaf9c('0x15')]=_0x1cf373;delete _0x1a2515[_0xaf9c('0x14')];return updateInteractionCounters(_0x1a2515);})['then'](function(_0x558fc3){if(_0x344725){return getLastMessageText(_0x558fc3);}else{return _0x558fc3;}})[_0xaf9c('0xf')](function(_0x7da9e1){_0x2928f2(_0x7da9e1);})[_0xaf9c('0x12')](function(_0x138ea0){_0x2ed453(_0x138ea0);});});};