Built motion from commit ffdca78c.|2.6.24
[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 _0x95c8=['answered','unmanaged','abandoned','total','closed','disposition','UserId','MailMessage','plainBody','-id','trimStart','updateInteraction','then','Users','Tags','TagIds','catch','../../mysqldb','map','fullname','split','forEach','push','waiting','talking'];(function(_0x49321b,_0x3c0466){var _0x9f21d9=function(_0x2d4473){while(--_0x2d4473){_0x49321b['push'](_0x49321b['shift']());}};_0x9f21d9(++_0x3c0466);}(_0x95c8,0x1ec));var _0x895c=function(_0x27f1c4,_0x2cdaa1){_0x27f1c4=_0x27f1c4-0x0;var _0x242ec1=_0x95c8[_0x27f1c4];return _0x242ec1;};'use strict';var _=require('lodash');var db=require(_0x895c('0x0'))['db'];function getInteractionUsers(_0x48dae3,_0x3929ca){return new Promise(function(_0x854454,_0x33aa48){try{var _0x1bf7ff=[];if(_0x3929ca[_0x48dae3]){_0x1bf7ff=_0x3929ca[_0x48dae3][_0x895c('0x1')](function(_0x32fb6a){return{'id':_0x32fb6a['id'],'fullname':_0x32fb6a[_0x895c('0x2')]};});}return _0x854454(_0x1bf7ff);}catch(_0x51addb){_0x33aa48(_0x51addb);}});}function getInteractionTags(_0x58157e,_0x10f300){var _0x4cac04=[];if(_0x58157e){_0x58157e[_0x895c('0x3')](',')[_0x895c('0x4')](function(_0x145e80){_0x4cac04[_0x895c('0x5')](_0x10f300[_0x145e80]);});}return _0x4cac04;}function updateWaitingCounter(_0x38032b){if(_0x38032b['waiting']){_0x38032b[_0x895c('0x6')]-=0x1;}}function updateInteractionCounters(_0xad21b4){_0xad21b4[_0x895c('0x6')]=0x0;_0xad21b4[_0x895c('0x7')]=0x0;_0xad21b4[_0x895c('0x8')]=0x0;_0xad21b4[_0x895c('0x9')]=0x0;_0xad21b4[_0x895c('0xa')]=0x0;_0xad21b4[_0x895c('0xb')]=0x0;if(_0xad21b4[_0x895c('0xc')]){if(_0xad21b4[_0x895c('0xd')]===_0x895c('0xa')){_0xad21b4[_0x895c('0xa')]+=0x1;updateWaitingCounter(_0xad21b4);}if(_0xad21b4['UserId']){_0xad21b4[_0x895c('0x8')]+=0x1;if(_0xad21b4[_0x895c('0x7')]){_0xad21b4['talking']-=0x1;}}else{if(_0xad21b4['disposition']){_0xad21b4['unmanaged']+=0x1;updateWaitingCounter(_0xad21b4);}}}else{if(!_0xad21b4[_0x895c('0xe')]){_0xad21b4[_0x895c('0x6')]+=0x1;}if(_0xad21b4[_0x895c('0xe')]){_0xad21b4['talking']+=0x1;updateWaitingCounter(_0xad21b4);}}_0xad21b4['total']+=0x1;return _0xad21b4;}function getLastMessageText(_0x5d9409){return db[_0x895c('0xf')]['findOne']({'where':{'$and':[{'MailInteractionId':_0x5d9409['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':'out'},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0x895c('0x10')],'order':_0x895c('0x11'),'raw':!![]})['then'](function(_0x5413a5){if(_0x5413a5&&_0x5413a5['plainBody']){_0x5d9409['lastMsgText']=_[_0x895c('0x12')](_0x5413a5['plainBody']);}return _0x5d9409;})['catch'](function(_0x5669c7){throw _0x5669c7;});}exports[_0x895c('0x13')]=function(_0xefaf0,_0x4a2252,_0x9ecc9f,_0x2a61a3){return new Promise(function(_0x1c6dcd,_0xbc4243){return getInteractionUsers(_0xefaf0['id'],_0x9ecc9f)[_0x895c('0x14')](function(_0x2cfb77){_0xefaf0[_0x895c('0x15')]=_0x2cfb77;return getInteractionTags(_0xefaf0['TagIds'],_0x4a2252);})['then'](function(_0x266085){_0xefaf0[_0x895c('0x16')]=_0x266085;delete _0xefaf0[_0x895c('0x17')];return updateInteractionCounters(_0xefaf0);})[_0x895c('0x14')](function(_0x3d83ec){if(_0x2a61a3){return getLastMessageText(_0x3d83ec);}else{return _0x3d83ec;}})['then'](function(_0x2ecab5){_0x1c6dcd(_0x2ecab5);})[_0x895c('0x18')](function(_0x1ea4ce){_0xbc4243(_0x1ea4ce);});});};