Built motion from commit 52c8a02d.|2.6.29
[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 _0xf2ba=['total','MailMessage','findOne','plainBody','-id','lastMsgText','trimStart','updateInteraction','then','TagIds','lodash','../../mysqldb','map','forEach','waiting','talking','answered','unmanaged','abandoned','disposition','UserId'];(function(_0x2f468d,_0x58ba8f){var _0xd4eb3f=function(_0x218c1e){while(--_0x218c1e){_0x2f468d['push'](_0x2f468d['shift']());}};_0xd4eb3f(++_0x58ba8f);}(_0xf2ba,0x199));var _0xaf2b=function(_0x191f9d,_0x21976f){_0x191f9d=_0x191f9d-0x0;var _0x58e60d=_0xf2ba[_0x191f9d];return _0x58e60d;};'use strict';var _=require(_0xaf2b('0x0'));var db=require(_0xaf2b('0x1'))['db'];function getInteractionUsers(_0x4343c6,_0x198739){return new Promise(function(_0x12e851,_0x3e8810){try{var _0x4b9c85=[];if(_0x198739[_0x4343c6]){_0x4b9c85=_0x198739[_0x4343c6][_0xaf2b('0x2')](function(_0x5d2b1b){return{'id':_0x5d2b1b['id'],'fullname':_0x5d2b1b['fullname']};});}return _0x12e851(_0x4b9c85);}catch(_0x150de1){_0x3e8810(_0x150de1);}});}function getInteractionTags(_0x29f1ea,_0xc7f71f){var _0x1553e7=[];if(_0x29f1ea){_0x29f1ea['split'](',')[_0xaf2b('0x3')](function(_0x3fd60a){_0x1553e7['push'](_0xc7f71f[_0x3fd60a]);});}return _0x1553e7;}function updateWaitingCounter(_0x573663){if(_0x573663[_0xaf2b('0x4')]){_0x573663[_0xaf2b('0x4')]-=0x1;}}function updateInteractionCounters(_0x1fb89c){_0x1fb89c['waiting']=0x0;_0x1fb89c[_0xaf2b('0x5')]=0x0;_0x1fb89c[_0xaf2b('0x6')]=0x0;_0x1fb89c[_0xaf2b('0x7')]=0x0;_0x1fb89c[_0xaf2b('0x8')]=0x0;_0x1fb89c['total']=0x0;if(_0x1fb89c['closed']){if(_0x1fb89c[_0xaf2b('0x9')]===_0xaf2b('0x8')){_0x1fb89c['abandoned']+=0x1;updateWaitingCounter(_0x1fb89c);}if(_0x1fb89c['UserId']){_0x1fb89c['answered']+=0x1;if(_0x1fb89c[_0xaf2b('0x5')]){_0x1fb89c['talking']-=0x1;}}else{if(_0x1fb89c[_0xaf2b('0x9')]){_0x1fb89c[_0xaf2b('0x7')]+=0x1;updateWaitingCounter(_0x1fb89c);}}}else{if(!_0x1fb89c[_0xaf2b('0xa')]){_0x1fb89c['waiting']+=0x1;}if(_0x1fb89c[_0xaf2b('0xa')]){_0x1fb89c['talking']+=0x1;updateWaitingCounter(_0x1fb89c);}}_0x1fb89c[_0xaf2b('0xb')]+=0x1;return _0x1fb89c;}function getLastMessageText(_0x29685c){return db[_0xaf2b('0xc')][_0xaf2b('0xd')]({'where':{'$and':[{'MailInteractionId':_0x29685c['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':'out'},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0xaf2b('0xe')],'order':_0xaf2b('0xf'),'raw':!![]})['then'](function(_0x11618a){if(_0x11618a&&_0x11618a[_0xaf2b('0xe')]){_0x29685c[_0xaf2b('0x10')]=_[_0xaf2b('0x11')](_0x11618a[_0xaf2b('0xe')]);}return _0x29685c;})['catch'](function(_0x39b362){throw _0x39b362;});}exports[_0xaf2b('0x12')]=function(_0x587b93,_0x5f1ad3,_0xe39b57,_0x2ecad5){return new Promise(function(_0x44a09c,_0x4e7ea4){return getInteractionUsers(_0x587b93['id'],_0xe39b57)[_0xaf2b('0x13')](function(_0x43ad6a){_0x587b93['Users']=_0x43ad6a;return getInteractionTags(_0x587b93[_0xaf2b('0x14')],_0x5f1ad3);})[_0xaf2b('0x13')](function(_0x4b1812){_0x587b93['Tags']=_0x4b1812;delete _0x587b93[_0xaf2b('0x14')];return updateInteractionCounters(_0x587b93);})[_0xaf2b('0x13')](function(_0x4e81fd){if(_0x2ecad5){return getLastMessageText(_0x4e81fd);}else{return _0x4e81fd;}})['then'](function(_0x889f85){_0x44a09c(_0x889f85);})['catch'](function(_0x45b9ae){_0x4e7ea4(_0x45b9ae);});});};