Built motion from commit 00bf23f6.|2.6.16
[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 _0x3af5=['talking','disposition','MailMessage','findOne','out','plainBody','-id','then','lastMsgText','catch','updateInteraction','TagIds','Tags','lodash','map','fullname','split','forEach','push','waiting','answered','unmanaged','abandoned','total','UserId'];(function(_0x139a3c,_0x4fc883){var _0x2b375b=function(_0x525dbf){while(--_0x525dbf){_0x139a3c['push'](_0x139a3c['shift']());}};_0x2b375b(++_0x4fc883);}(_0x3af5,0x8a));var _0x53af=function(_0xa711b,_0x81a280){_0xa711b=_0xa711b-0x0;var _0x1f061d=_0x3af5[_0xa711b];return _0x1f061d;};'use strict';var _=require(_0x53af('0x0'));var db=require('../../mysqldb')['db'];function getInteractionUsers(_0x161b56,_0x16631f){return new Promise(function(_0x3d9633,_0x12cd40){try{var _0x106d24=[];if(_0x16631f[_0x161b56]){_0x106d24=_0x16631f[_0x161b56][_0x53af('0x1')](function(_0x81513e){return{'id':_0x81513e['id'],'fullname':_0x81513e[_0x53af('0x2')]};});}return _0x3d9633(_0x106d24);}catch(_0x4a0bd4){_0x12cd40(_0x4a0bd4);}});}function getInteractionTags(_0x5d0ec5,_0x44b039){var _0x23dc12=[];if(_0x5d0ec5){_0x5d0ec5[_0x53af('0x3')](',')[_0x53af('0x4')](function(_0x54eb82){_0x23dc12[_0x53af('0x5')](_0x44b039[_0x54eb82]);});}return _0x23dc12;}function updateWaitingCounter(_0x8cb9ae){if(_0x8cb9ae[_0x53af('0x6')]){_0x8cb9ae[_0x53af('0x6')]-=0x1;}}function updateInteractionCounters(_0x2f7d71){_0x2f7d71[_0x53af('0x6')]=0x0;_0x2f7d71['talking']=0x0;_0x2f7d71[_0x53af('0x7')]=0x0;_0x2f7d71[_0x53af('0x8')]=0x0;_0x2f7d71[_0x53af('0x9')]=0x0;_0x2f7d71[_0x53af('0xa')]=0x0;if(_0x2f7d71['closed']){if(_0x2f7d71['disposition']===_0x53af('0x9')){_0x2f7d71[_0x53af('0x9')]+=0x1;updateWaitingCounter(_0x2f7d71);}if(_0x2f7d71[_0x53af('0xb')]){_0x2f7d71[_0x53af('0x7')]+=0x1;if(_0x2f7d71['talking']){_0x2f7d71[_0x53af('0xc')]-=0x1;}}else{if(_0x2f7d71[_0x53af('0xd')]){_0x2f7d71[_0x53af('0x8')]+=0x1;updateWaitingCounter(_0x2f7d71);}}}else{if(!_0x2f7d71[_0x53af('0xb')]){_0x2f7d71[_0x53af('0x6')]+=0x1;}if(_0x2f7d71['UserId']){_0x2f7d71[_0x53af('0xc')]+=0x1;updateWaitingCounter(_0x2f7d71);}}_0x2f7d71[_0x53af('0xa')]+=0x1;return _0x2f7d71;}function getLastMessageText(_0x19c3d7){return db[_0x53af('0xe')][_0x53af('0xf')]({'where':{'$and':[{'MailInteractionId':_0x19c3d7['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0x53af('0x10')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0x53af('0x11')],'order':_0x53af('0x12'),'raw':!![]})[_0x53af('0x13')](function(_0x357c6b){if(_0x357c6b&&_0x357c6b[_0x53af('0x11')]){_0x19c3d7[_0x53af('0x14')]=_['trimStart'](_0x357c6b['plainBody']);}return _0x19c3d7;})[_0x53af('0x15')](function(_0x17ce47){throw _0x17ce47;});}exports[_0x53af('0x16')]=function(_0x5d9210,_0x294f15,_0x1fa7b9,_0x23b8e2){return new Promise(function(_0x1e54c4,_0x1a0b3c){return getInteractionUsers(_0x5d9210['id'],_0x1fa7b9)[_0x53af('0x13')](function(_0x36288a){_0x5d9210['Users']=_0x36288a;return getInteractionTags(_0x5d9210[_0x53af('0x17')],_0x294f15);})['then'](function(_0x3e82e6){_0x5d9210[_0x53af('0x18')]=_0x3e82e6;delete _0x5d9210['TagIds'];return updateInteractionCounters(_0x5d9210);})[_0x53af('0x13')](function(_0x2ca615){if(_0x23b8e2){return getLastMessageText(_0x2ca615);}else{return _0x2ca615;}})[_0x53af('0x13')](function(_0x56aadb){_0x1e54c4(_0x56aadb);})[_0x53af('0x15')](function(_0x1f4ce0){_0x1a0b3c(_0x1f4ce0);});});};