7f98d361015dcb473bf4a21881d4f7987169f9eb
[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 _0xd392=['Tags','catch','lodash','../../mysqldb','map','fullname','split','forEach','push','waiting','talking','unmanaged','abandoned','total','disposition','answered','UserId','MailMessage','findOne','out','plainBody','lastMsgText','trimStart','updateInteraction','Users','TagIds','then'];(function(_0x1992f1,_0x5c61f0){var _0x413dfe=function(_0x2136e5){while(--_0x2136e5){_0x1992f1['push'](_0x1992f1['shift']());}};_0x413dfe(++_0x5c61f0);}(_0xd392,0x110));var _0x2d39=function(_0xd842b0,_0x3c1a6a){_0xd842b0=_0xd842b0-0x0;var _0x2e41f7=_0xd392[_0xd842b0];return _0x2e41f7;};'use strict';var _=require(_0x2d39('0x0'));var db=require(_0x2d39('0x1'))['db'];function getInteractionUsers(_0x96bc3a,_0x4a8025){return new Promise(function(_0x3c5293,_0x4f94bf){try{var _0xdac068=[];if(_0x4a8025[_0x96bc3a]){_0xdac068=_0x4a8025[_0x96bc3a][_0x2d39('0x2')](function(_0x46ad16){return{'id':_0x46ad16['id'],'fullname':_0x46ad16[_0x2d39('0x3')]};});}return _0x3c5293(_0xdac068);}catch(_0x71a1b0){_0x4f94bf(_0x71a1b0);}});}function getInteractionTags(_0xbfd386,_0x5b308d){var _0x5cb721=[];if(_0xbfd386){_0xbfd386[_0x2d39('0x4')](',')[_0x2d39('0x5')](function(_0x4b8b47){_0x5cb721[_0x2d39('0x6')](_0x5b308d[_0x4b8b47]);});}return _0x5cb721;}function updateWaitingCounter(_0x1aeeab){if(_0x1aeeab[_0x2d39('0x7')]){_0x1aeeab[_0x2d39('0x7')]-=0x1;}}function updateInteractionCounters(_0x2fd4b6){_0x2fd4b6[_0x2d39('0x7')]=0x0;_0x2fd4b6[_0x2d39('0x8')]=0x0;_0x2fd4b6['answered']=0x0;_0x2fd4b6[_0x2d39('0x9')]=0x0;_0x2fd4b6[_0x2d39('0xa')]=0x0;_0x2fd4b6[_0x2d39('0xb')]=0x0;if(_0x2fd4b6['closed']){if(_0x2fd4b6[_0x2d39('0xc')]===_0x2d39('0xa')){_0x2fd4b6[_0x2d39('0xa')]+=0x1;updateWaitingCounter(_0x2fd4b6);}if(_0x2fd4b6['UserId']){_0x2fd4b6[_0x2d39('0xd')]+=0x1;if(_0x2fd4b6[_0x2d39('0x8')]){_0x2fd4b6[_0x2d39('0x8')]-=0x1;}}else{if(_0x2fd4b6[_0x2d39('0xc')]){_0x2fd4b6['unmanaged']+=0x1;updateWaitingCounter(_0x2fd4b6);}}}else{if(!_0x2fd4b6['UserId']){_0x2fd4b6[_0x2d39('0x7')]+=0x1;}if(_0x2fd4b6[_0x2d39('0xe')]){_0x2fd4b6[_0x2d39('0x8')]+=0x1;updateWaitingCounter(_0x2fd4b6);}}_0x2fd4b6[_0x2d39('0xb')]+=0x1;return _0x2fd4b6;}function getLastMessageText(_0x2de197){return db[_0x2d39('0xf')][_0x2d39('0x10')]({'where':{'$and':[{'MailInteractionId':_0x2de197['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0x2d39('0x11')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0x2d39('0x12')],'order':'-id','raw':!![]})['then'](function(_0x49a3bd){if(_0x49a3bd&&_0x49a3bd['plainBody']){_0x2de197[_0x2d39('0x13')]=_[_0x2d39('0x14')](_0x49a3bd[_0x2d39('0x12')]);}return _0x2de197;})['catch'](function(_0x478755){throw _0x478755;});}exports[_0x2d39('0x15')]=function(_0x5cecd8,_0xf00f78,_0x252b18,_0x148591){return new Promise(function(_0x131399,_0xecd1e){return getInteractionUsers(_0x5cecd8['id'],_0x252b18)['then'](function(_0x5d12f3){_0x5cecd8[_0x2d39('0x16')]=_0x5d12f3;return getInteractionTags(_0x5cecd8[_0x2d39('0x17')],_0xf00f78);})[_0x2d39('0x18')](function(_0x30ca28){_0x5cecd8[_0x2d39('0x19')]=_0x30ca28;delete _0x5cecd8[_0x2d39('0x17')];return updateInteractionCounters(_0x5cecd8);})['then'](function(_0x1abbec){if(_0x148591){return getLastMessageText(_0x1abbec);}else{return _0x1abbec;}})['then'](function(_0xc0241f){_0x131399(_0xc0241f);})[_0x2d39('0x1a')](function(_0x1a74dd){_0xecd1e(_0x1a74dd);});});};