Built motion from commit 4d4d9a88.|2.6.26
[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 _0x3a72=['abandoned','disposition','unmanaged','UserId','plainBody','trimStart','catch','updateInteraction','then','Users','TagIds','Tags','lodash','../../mysqldb','map','fullname','split','forEach','waiting','talking','answered','total'];(function(_0x16d644,_0x46545e){var _0xf808cc=function(_0x4024ef){while(--_0x4024ef){_0x16d644['push'](_0x16d644['shift']());}};_0xf808cc(++_0x46545e);}(_0x3a72,0x140));var _0x23a7=function(_0x2e759c,_0x53617e){_0x2e759c=_0x2e759c-0x0;var _0x7d6016=_0x3a72[_0x2e759c];return _0x7d6016;};'use strict';var _=require(_0x23a7('0x0'));var db=require(_0x23a7('0x1'))['db'];function getInteractionUsers(_0x3dd8d0,_0x1519d8){return new Promise(function(_0x1d5c77,_0x4cb3f3){try{var _0x3699c0=[];if(_0x1519d8[_0x3dd8d0]){_0x3699c0=_0x1519d8[_0x3dd8d0][_0x23a7('0x2')](function(_0x983654){return{'id':_0x983654['id'],'fullname':_0x983654[_0x23a7('0x3')]};});}return _0x1d5c77(_0x3699c0);}catch(_0x556896){_0x4cb3f3(_0x556896);}});}function getInteractionTags(_0x3f87ef,_0x3eeeb3){var _0x2da7ac=[];if(_0x3f87ef){_0x3f87ef[_0x23a7('0x4')](',')[_0x23a7('0x5')](function(_0x240004){_0x2da7ac['push'](_0x3eeeb3[_0x240004]);});}return _0x2da7ac;}function updateWaitingCounter(_0x277737){if(_0x277737[_0x23a7('0x6')]){_0x277737[_0x23a7('0x6')]-=0x1;}}function updateInteractionCounters(_0x338341){_0x338341[_0x23a7('0x6')]=0x0;_0x338341[_0x23a7('0x7')]=0x0;_0x338341[_0x23a7('0x8')]=0x0;_0x338341['unmanaged']=0x0;_0x338341['abandoned']=0x0;_0x338341[_0x23a7('0x9')]=0x0;if(_0x338341['closed']){if(_0x338341['disposition']==='abandoned'){_0x338341[_0x23a7('0xa')]+=0x1;updateWaitingCounter(_0x338341);}if(_0x338341['UserId']){_0x338341[_0x23a7('0x8')]+=0x1;if(_0x338341[_0x23a7('0x7')]){_0x338341['talking']-=0x1;}}else{if(_0x338341[_0x23a7('0xb')]){_0x338341[_0x23a7('0xc')]+=0x1;updateWaitingCounter(_0x338341);}}}else{if(!_0x338341['UserId']){_0x338341[_0x23a7('0x6')]+=0x1;}if(_0x338341[_0x23a7('0xd')]){_0x338341[_0x23a7('0x7')]+=0x1;updateWaitingCounter(_0x338341);}}_0x338341[_0x23a7('0x9')]+=0x1;return _0x338341;}function getLastMessageText(_0x253abb){return db['MailMessage']['findOne']({'where':{'$and':[{'MailInteractionId':_0x253abb['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':'out'},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0x23a7('0xe')],'order':'-id','raw':!![]})['then'](function(_0xb32d79){if(_0xb32d79&&_0xb32d79['plainBody']){_0x253abb['lastMsgText']=_[_0x23a7('0xf')](_0xb32d79[_0x23a7('0xe')]);}return _0x253abb;})[_0x23a7('0x10')](function(_0x5e8151){throw _0x5e8151;});}exports[_0x23a7('0x11')]=function(_0x2749b8,_0x5bf000,_0x59724b,_0x5adc01){return new Promise(function(_0x12e271,_0x5e1ed9){return getInteractionUsers(_0x2749b8['id'],_0x59724b)[_0x23a7('0x12')](function(_0x452828){_0x2749b8[_0x23a7('0x13')]=_0x452828;return getInteractionTags(_0x2749b8[_0x23a7('0x14')],_0x5bf000);})[_0x23a7('0x12')](function(_0x489ae0){_0x2749b8[_0x23a7('0x15')]=_0x489ae0;delete _0x2749b8[_0x23a7('0x14')];return updateInteractionCounters(_0x2749b8);})[_0x23a7('0x12')](function(_0x3fd223){if(_0x5adc01){return getLastMessageText(_0x3fd223);}else{return _0x3fd223;}})[_0x23a7('0x12')](function(_0x1d6a8f){_0x12e271(_0x1d6a8f);})[_0x23a7('0x10')](function(_0x445c4e){_0x5e1ed9(_0x445c4e);});});};