762897ab2e5fecb473029df62fee186510582b4f
[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 _0xdb5a=['../../mysqldb','fullname','forEach','push','waiting','talking','answered','unmanaged','abandoned','total','closed','disposition','UserId','MailMessage','findOne','-id','then','lastMsgText','trimStart','updateInteraction','Users','TagIds'];(function(_0x53ccf2,_0x13cb67){var _0x5a2964=function(_0x3b0514){while(--_0x3b0514){_0x53ccf2['push'](_0x53ccf2['shift']());}};_0x5a2964(++_0x13cb67);}(_0xdb5a,0x176));var _0xadb5=function(_0x1209d3,_0x2435d5){_0x1209d3=_0x1209d3-0x0;var _0x35339e=_0xdb5a[_0x1209d3];return _0x35339e;};'use strict';var _=require('lodash');var db=require(_0xadb5('0x0'))['db'];function getInteractionUsers(_0x3dfa39,_0x403635){return new Promise(function(_0x243092,_0x52d5eb){try{var _0x27caef=[];if(_0x403635[_0x3dfa39]){_0x27caef=_0x403635[_0x3dfa39]['map'](function(_0x174adb){return{'id':_0x174adb['id'],'fullname':_0x174adb[_0xadb5('0x1')]};});}return _0x243092(_0x27caef);}catch(_0xa02cd6){_0x52d5eb(_0xa02cd6);}});}function getInteractionTags(_0x553320,_0x423ecb){var _0x20fe87=[];if(_0x553320){_0x553320['split'](',')[_0xadb5('0x2')](function(_0x51c12f){_0x20fe87[_0xadb5('0x3')](_0x423ecb[_0x51c12f]);});}return _0x20fe87;}function updateWaitingCounter(_0x5ca23e){if(_0x5ca23e['waiting']){_0x5ca23e[_0xadb5('0x4')]-=0x1;}}function updateInteractionCounters(_0x1606ef){_0x1606ef[_0xadb5('0x4')]=0x0;_0x1606ef[_0xadb5('0x5')]=0x0;_0x1606ef[_0xadb5('0x6')]=0x0;_0x1606ef[_0xadb5('0x7')]=0x0;_0x1606ef[_0xadb5('0x8')]=0x0;_0x1606ef[_0xadb5('0x9')]=0x0;if(_0x1606ef[_0xadb5('0xa')]){if(_0x1606ef[_0xadb5('0xb')]===_0xadb5('0x8')){_0x1606ef[_0xadb5('0x8')]+=0x1;updateWaitingCounter(_0x1606ef);}if(_0x1606ef['UserId']){_0x1606ef[_0xadb5('0x6')]+=0x1;if(_0x1606ef[_0xadb5('0x5')]){_0x1606ef[_0xadb5('0x5')]-=0x1;}}else{if(_0x1606ef[_0xadb5('0xb')]){_0x1606ef[_0xadb5('0x7')]+=0x1;updateWaitingCounter(_0x1606ef);}}}else{if(!_0x1606ef['UserId']){_0x1606ef[_0xadb5('0x4')]+=0x1;}if(_0x1606ef[_0xadb5('0xc')]){_0x1606ef[_0xadb5('0x5')]+=0x1;updateWaitingCounter(_0x1606ef);}}_0x1606ef[_0xadb5('0x9')]+=0x1;return _0x1606ef;}function getLastMessageText(_0x58184f){return db[_0xadb5('0xd')][_0xadb5('0xe')]({'where':{'$and':[{'MailInteractionId':_0x58184f['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':'out'},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':['plainBody'],'order':_0xadb5('0xf'),'raw':!![]})[_0xadb5('0x10')](function(_0x491fdf){if(_0x491fdf&&_0x491fdf['plainBody']){_0x58184f[_0xadb5('0x11')]=_[_0xadb5('0x12')](_0x491fdf['plainBody']);}return _0x58184f;})['catch'](function(_0x8f8a83){throw _0x8f8a83;});}exports[_0xadb5('0x13')]=function(_0x58cf19,_0x5aaa83,_0xf60f7e,_0x3e62cc){return new Promise(function(_0x14cd86,_0x258c43){return getInteractionUsers(_0x58cf19['id'],_0xf60f7e)['then'](function(_0x24b6e2){_0x58cf19[_0xadb5('0x14')]=_0x24b6e2;return getInteractionTags(_0x58cf19[_0xadb5('0x15')],_0x5aaa83);})[_0xadb5('0x10')](function(_0x3e7df7){_0x58cf19['Tags']=_0x3e7df7;delete _0x58cf19['TagIds'];return updateInteractionCounters(_0x58cf19);})['then'](function(_0x523c29){if(_0x3e62cc){return getLastMessageText(_0x523c29);}else{return _0x523c29;}})[_0xadb5('0x10')](function(_0x5b94d9){_0x14cd86(_0x5b94d9);})['catch'](function(_0x1a8c7a){_0x258c43(_0x1a8c7a);});});};