Built motion from commit 13c3002c.|2.6.9
[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 _0x7117=['map','forEach','waiting','talking','answered','unmanaged','closed','disposition','abandoned','UserId','total','MailMessage','findOne','out','plainBody','-id','lastMsgText','trimStart','catch','updateInteraction','then','Users','Tags','TagIds','../../mysqldb'];(function(_0x57daa4,_0x4b29f7){var _0x49d253=function(_0x2995a8){while(--_0x2995a8){_0x57daa4['push'](_0x57daa4['shift']());}};_0x49d253(++_0x4b29f7);}(_0x7117,0x176));var _0x7711=function(_0x2f91b8,_0x86a258){_0x2f91b8=_0x2f91b8-0x0;var _0x2a7dd3=_0x7117[_0x2f91b8];return _0x2a7dd3;};'use strict';var _=require('lodash');var db=require(_0x7711('0x0'))['db'];function getInteractionUsers(_0x261eb6,_0x5f445f){return new Promise(function(_0x55ba1e,_0x51a54b){try{var _0x5affd2=[];if(_0x5f445f[_0x261eb6]){_0x5affd2=_0x5f445f[_0x261eb6][_0x7711('0x1')](function(_0x4562ec){return{'id':_0x4562ec['id'],'fullname':_0x4562ec['fullname']};});}return _0x55ba1e(_0x5affd2);}catch(_0x31f33a){_0x51a54b(_0x31f33a);}});}function getInteractionTags(_0x4e8f33,_0x4af9af){var _0x2d3b5d=[];if(_0x4e8f33){_0x4e8f33['split'](',')[_0x7711('0x2')](function(_0x52a646){_0x2d3b5d['push'](_0x4af9af[_0x52a646]);});}return _0x2d3b5d;}function updateWaitingCounter(_0x257cb8){if(_0x257cb8[_0x7711('0x3')]){_0x257cb8[_0x7711('0x3')]-=0x1;}}function updateInteractionCounters(_0x1c15d6){_0x1c15d6['waiting']=0x0;_0x1c15d6[_0x7711('0x4')]=0x0;_0x1c15d6[_0x7711('0x5')]=0x0;_0x1c15d6[_0x7711('0x6')]=0x0;_0x1c15d6['abandoned']=0x0;_0x1c15d6['total']=0x0;if(_0x1c15d6[_0x7711('0x7')]){if(_0x1c15d6[_0x7711('0x8')]===_0x7711('0x9')){_0x1c15d6[_0x7711('0x9')]+=0x1;updateWaitingCounter(_0x1c15d6);}if(_0x1c15d6[_0x7711('0xa')]){_0x1c15d6['answered']+=0x1;if(_0x1c15d6['talking']){_0x1c15d6['talking']-=0x1;}}else{if(_0x1c15d6[_0x7711('0x8')]){_0x1c15d6[_0x7711('0x6')]+=0x1;updateWaitingCounter(_0x1c15d6);}}}else{if(!_0x1c15d6[_0x7711('0xa')]){_0x1c15d6[_0x7711('0x3')]+=0x1;}if(_0x1c15d6['UserId']){_0x1c15d6[_0x7711('0x4')]+=0x1;updateWaitingCounter(_0x1c15d6);}}_0x1c15d6[_0x7711('0xb')]+=0x1;return _0x1c15d6;}function getLastMessageText(_0x58c7bc){return db[_0x7711('0xc')][_0x7711('0xd')]({'where':{'$and':[{'MailInteractionId':_0x58c7bc['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0x7711('0xe')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0x7711('0xf')],'order':_0x7711('0x10'),'raw':!![]})['then'](function(_0xcfde6f){if(_0xcfde6f&&_0xcfde6f[_0x7711('0xf')]){_0x58c7bc[_0x7711('0x11')]=_[_0x7711('0x12')](_0xcfde6f[_0x7711('0xf')]);}return _0x58c7bc;})[_0x7711('0x13')](function(_0x8f72b4){throw _0x8f72b4;});}exports[_0x7711('0x14')]=function(_0x3f7144,_0x4e8da4,_0x2073c9,_0x2652ec){return new Promise(function(_0x5e682b,_0x259f0a){return getInteractionUsers(_0x3f7144['id'],_0x2073c9)[_0x7711('0x15')](function(_0x4c7cbf){_0x3f7144[_0x7711('0x16')]=_0x4c7cbf;return getInteractionTags(_0x3f7144['TagIds'],_0x4e8da4);})[_0x7711('0x15')](function(_0x27855d){_0x3f7144[_0x7711('0x17')]=_0x27855d;delete _0x3f7144[_0x7711('0x18')];return updateInteractionCounters(_0x3f7144);})[_0x7711('0x15')](function(_0x9883bd){if(_0x2652ec){return getLastMessageText(_0x9883bd);}else{return _0x9883bd;}})['then'](function(_0x2879ac){_0x5e682b(_0x2879ac);})[_0x7711('0x13')](function(_0x2ef156){_0x259f0a(_0x2ef156);});});};