Built motion from commit 47436d59.|2.6.7
[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 _0x906c=['lodash','../../mysqldb','fullname','split','forEach','push','waiting','talking','abandoned','total','disposition','answered','unmanaged','UserId','MailMessage','findOne','out','plainBody','-id','then','lastMsgText','trimStart','catch','updateInteraction'];(function(_0x23853b,_0x558011){var _0x4f9002=function(_0x5a6db9){while(--_0x5a6db9){_0x23853b['push'](_0x23853b['shift']());}};_0x4f9002(++_0x558011);}(_0x906c,0x90));var _0xc906=function(_0x218b8b,_0x375a01){_0x218b8b=_0x218b8b-0x0;var _0x1f4056=_0x906c[_0x218b8b];return _0x1f4056;};'use strict';var _=require(_0xc906('0x0'));var db=require(_0xc906('0x1'))['db'];function getInteractionUsers(_0x4e686e,_0x2d5391){return new Promise(function(_0x36d6e4,_0x686caa){try{var _0x260e45=[];if(_0x2d5391[_0x4e686e]){_0x260e45=_0x2d5391[_0x4e686e]['map'](function(_0x592a5b){return{'id':_0x592a5b['id'],'fullname':_0x592a5b[_0xc906('0x2')]};});}return _0x36d6e4(_0x260e45);}catch(_0x32967e){_0x686caa(_0x32967e);}});}function getInteractionTags(_0x5778f1,_0x1f8e39){var _0x36a0a7=[];if(_0x5778f1){_0x5778f1[_0xc906('0x3')](',')[_0xc906('0x4')](function(_0x200b67){_0x36a0a7[_0xc906('0x5')](_0x1f8e39[_0x200b67]);});}return _0x36a0a7;}function updateWaitingCounter(_0x2c7e31){if(_0x2c7e31[_0xc906('0x6')]){_0x2c7e31[_0xc906('0x6')]-=0x1;}}function updateInteractionCounters(_0x205d70){_0x205d70['waiting']=0x0;_0x205d70[_0xc906('0x7')]=0x0;_0x205d70['answered']=0x0;_0x205d70['unmanaged']=0x0;_0x205d70[_0xc906('0x8')]=0x0;_0x205d70[_0xc906('0x9')]=0x0;if(_0x205d70['closed']){if(_0x205d70[_0xc906('0xa')]===_0xc906('0x8')){_0x205d70['abandoned']+=0x1;updateWaitingCounter(_0x205d70);}if(_0x205d70['UserId']){_0x205d70[_0xc906('0xb')]+=0x1;if(_0x205d70[_0xc906('0x7')]){_0x205d70['talking']-=0x1;}}else{if(_0x205d70['disposition']){_0x205d70[_0xc906('0xc')]+=0x1;updateWaitingCounter(_0x205d70);}}}else{if(!_0x205d70[_0xc906('0xd')]){_0x205d70[_0xc906('0x6')]+=0x1;}if(_0x205d70['UserId']){_0x205d70[_0xc906('0x7')]+=0x1;updateWaitingCounter(_0x205d70);}}_0x205d70['total']+=0x1;return _0x205d70;}function getLastMessageText(_0x4af88a){return db[_0xc906('0xe')][_0xc906('0xf')]({'where':{'$and':[{'MailInteractionId':_0x4af88a['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0xc906('0x10')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0xc906('0x11')],'order':_0xc906('0x12'),'raw':!![]})[_0xc906('0x13')](function(_0x29855d){if(_0x29855d&&_0x29855d[_0xc906('0x11')]){_0x4af88a[_0xc906('0x14')]=_[_0xc906('0x15')](_0x29855d['plainBody']);}return _0x4af88a;})[_0xc906('0x16')](function(_0x208405){throw _0x208405;});}exports[_0xc906('0x17')]=function(_0x1f0849,_0x38c0e0,_0x5879bb,_0x426735){return new Promise(function(_0x2a81bf,_0x2567fb){return getInteractionUsers(_0x1f0849['id'],_0x5879bb)[_0xc906('0x13')](function(_0x3182d3){_0x1f0849['Users']=_0x3182d3;return getInteractionTags(_0x1f0849['TagIds'],_0x38c0e0);})[_0xc906('0x13')](function(_0x54fb23){_0x1f0849['Tags']=_0x54fb23;delete _0x1f0849['TagIds'];return updateInteractionCounters(_0x1f0849);})[_0xc906('0x13')](function(_0x424804){if(_0x426735){return getLastMessageText(_0x424804);}else{return _0x424804;}})[_0xc906('0x13')](function(_0x35e128){_0x2a81bf(_0x35e128);})['catch'](function(_0x511db6){_0x2567fb(_0x511db6);});});};