Built motion from commit c738b9ac.|2.6.25
[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 _0x0f8a=['fullname','split','forEach','push','waiting','answered','unmanaged','total','closed','disposition','abandoned','UserId','talking','MailMessage','findOne','plainBody','-id','lastMsgText','trimStart','catch','updateInteraction','TagIds','Tags','then','../../mysqldb'];(function(_0x311f44,_0x1d7f5b){var _0x46f1e6=function(_0x27342a){while(--_0x27342a){_0x311f44['push'](_0x311f44['shift']());}};_0x46f1e6(++_0x1d7f5b);}(_0x0f8a,0x144));var _0xa0f8=function(_0x43eec0,_0x2ff3c4){_0x43eec0=_0x43eec0-0x0;var _0x1f6772=_0x0f8a[_0x43eec0];return _0x1f6772;};'use strict';var _=require('lodash');var db=require(_0xa0f8('0x0'))['db'];function getInteractionUsers(_0x99851e,_0x2df492){return new Promise(function(_0x39edc2,_0x9a5457){try{var _0x126d92=[];if(_0x2df492[_0x99851e]){_0x126d92=_0x2df492[_0x99851e]['map'](function(_0x45baa4){return{'id':_0x45baa4['id'],'fullname':_0x45baa4[_0xa0f8('0x1')]};});}return _0x39edc2(_0x126d92);}catch(_0x40215a){_0x9a5457(_0x40215a);}});}function getInteractionTags(_0x310345,_0xc75b92){var _0x54659d=[];if(_0x310345){_0x310345[_0xa0f8('0x2')](',')[_0xa0f8('0x3')](function(_0x5f2966){_0x54659d[_0xa0f8('0x4')](_0xc75b92[_0x5f2966]);});}return _0x54659d;}function updateWaitingCounter(_0x358b1a){if(_0x358b1a[_0xa0f8('0x5')]){_0x358b1a[_0xa0f8('0x5')]-=0x1;}}function updateInteractionCounters(_0x3f4afb){_0x3f4afb[_0xa0f8('0x5')]=0x0;_0x3f4afb['talking']=0x0;_0x3f4afb[_0xa0f8('0x6')]=0x0;_0x3f4afb[_0xa0f8('0x7')]=0x0;_0x3f4afb['abandoned']=0x0;_0x3f4afb[_0xa0f8('0x8')]=0x0;if(_0x3f4afb[_0xa0f8('0x9')]){if(_0x3f4afb[_0xa0f8('0xa')]==='abandoned'){_0x3f4afb[_0xa0f8('0xb')]+=0x1;updateWaitingCounter(_0x3f4afb);}if(_0x3f4afb[_0xa0f8('0xc')]){_0x3f4afb['answered']+=0x1;if(_0x3f4afb[_0xa0f8('0xd')]){_0x3f4afb['talking']-=0x1;}}else{if(_0x3f4afb[_0xa0f8('0xa')]){_0x3f4afb[_0xa0f8('0x7')]+=0x1;updateWaitingCounter(_0x3f4afb);}}}else{if(!_0x3f4afb[_0xa0f8('0xc')]){_0x3f4afb['waiting']+=0x1;}if(_0x3f4afb[_0xa0f8('0xc')]){_0x3f4afb[_0xa0f8('0xd')]+=0x1;updateWaitingCounter(_0x3f4afb);}}_0x3f4afb[_0xa0f8('0x8')]+=0x1;return _0x3f4afb;}function getLastMessageText(_0x17add9){return db[_0xa0f8('0xe')][_0xa0f8('0xf')]({'where':{'$and':[{'MailInteractionId':_0x17add9['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':'out'},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0xa0f8('0x10')],'order':_0xa0f8('0x11'),'raw':!![]})['then'](function(_0x24d692){if(_0x24d692&&_0x24d692[_0xa0f8('0x10')]){_0x17add9[_0xa0f8('0x12')]=_[_0xa0f8('0x13')](_0x24d692[_0xa0f8('0x10')]);}return _0x17add9;})[_0xa0f8('0x14')](function(_0x469a2f){throw _0x469a2f;});}exports[_0xa0f8('0x15')]=function(_0x58fbe8,_0x261e30,_0x3be0d3,_0x34a3d8){return new Promise(function(_0x143ddb,_0x3b78bc){return getInteractionUsers(_0x58fbe8['id'],_0x3be0d3)['then'](function(_0xef8c82){_0x58fbe8['Users']=_0xef8c82;return getInteractionTags(_0x58fbe8[_0xa0f8('0x16')],_0x261e30);})['then'](function(_0x46091f){_0x58fbe8[_0xa0f8('0x17')]=_0x46091f;delete _0x58fbe8[_0xa0f8('0x16')];return updateInteractionCounters(_0x58fbe8);})[_0xa0f8('0x18')](function(_0x169681){if(_0x34a3d8){return getLastMessageText(_0x169681);}else{return _0x169681;}})[_0xa0f8('0x18')](function(_0xafed6){_0x143ddb(_0xafed6);})[_0xa0f8('0x14')](function(_0xc41809){_0x3b78bc(_0xc41809);});});};