9fbda9977f70c8a2bffad3bb25a928ec7ded5bbc
[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 _0x77c4=['updateInteraction','Users','TagIds','Tags','../../mysqldb','fullname','push','waiting','talking','answered','unmanaged','abandoned','total','closed','disposition','UserId','MailMessage','findOne','out','plainBody','-id','then','trimStart','catch'];(function(_0x4b4154,_0x38a122){var _0x340ed7=function(_0x1250b9){while(--_0x1250b9){_0x4b4154['push'](_0x4b4154['shift']());}};_0x340ed7(++_0x38a122);}(_0x77c4,0x1e4));var _0x477c=function(_0x7223be,_0x364cde){_0x7223be=_0x7223be-0x0;var _0x3b7e8e=_0x77c4[_0x7223be];return _0x3b7e8e;};'use strict';var _=require('lodash');var db=require(_0x477c('0x0'))['db'];function getInteractionUsers(_0x2e2d32,_0x34f93a){return new Promise(function(_0x1f86e4,_0x2e267f){try{var _0x214601=[];if(_0x34f93a[_0x2e2d32]){_0x214601=_0x34f93a[_0x2e2d32]['map'](function(_0x426f22){return{'id':_0x426f22['id'],'fullname':_0x426f22[_0x477c('0x1')]};});}return _0x1f86e4(_0x214601);}catch(_0x2c4382){_0x2e267f(_0x2c4382);}});}function getInteractionTags(_0xe6df6f,_0x4da5b6){var _0x76bd12=[];if(_0xe6df6f){_0xe6df6f['split'](',')['forEach'](function(_0x5db68e){_0x76bd12[_0x477c('0x2')](_0x4da5b6[_0x5db68e]);});}return _0x76bd12;}function updateWaitingCounter(_0x992af1){if(_0x992af1[_0x477c('0x3')]){_0x992af1[_0x477c('0x3')]-=0x1;}}function updateInteractionCounters(_0x1c3b78){_0x1c3b78[_0x477c('0x3')]=0x0;_0x1c3b78[_0x477c('0x4')]=0x0;_0x1c3b78[_0x477c('0x5')]=0x0;_0x1c3b78[_0x477c('0x6')]=0x0;_0x1c3b78[_0x477c('0x7')]=0x0;_0x1c3b78[_0x477c('0x8')]=0x0;if(_0x1c3b78[_0x477c('0x9')]){if(_0x1c3b78[_0x477c('0xa')]===_0x477c('0x7')){_0x1c3b78[_0x477c('0x7')]+=0x1;updateWaitingCounter(_0x1c3b78);}if(_0x1c3b78['UserId']){_0x1c3b78[_0x477c('0x5')]+=0x1;if(_0x1c3b78[_0x477c('0x4')]){_0x1c3b78[_0x477c('0x4')]-=0x1;}}else{if(_0x1c3b78[_0x477c('0xa')]){_0x1c3b78['unmanaged']+=0x1;updateWaitingCounter(_0x1c3b78);}}}else{if(!_0x1c3b78[_0x477c('0xb')]){_0x1c3b78[_0x477c('0x3')]+=0x1;}if(_0x1c3b78[_0x477c('0xb')]){_0x1c3b78['talking']+=0x1;updateWaitingCounter(_0x1c3b78);}}_0x1c3b78['total']+=0x1;return _0x1c3b78;}function getLastMessageText(_0x4c4892){return db[_0x477c('0xc')][_0x477c('0xd')]({'where':{'$and':[{'MailInteractionId':_0x4c4892['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0x477c('0xe')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0x477c('0xf')],'order':_0x477c('0x10'),'raw':!![]})[_0x477c('0x11')](function(_0x1d42f3){if(_0x1d42f3&&_0x1d42f3['plainBody']){_0x4c4892['lastMsgText']=_[_0x477c('0x12')](_0x1d42f3[_0x477c('0xf')]);}return _0x4c4892;})[_0x477c('0x13')](function(_0x13f339){throw _0x13f339;});}exports[_0x477c('0x14')]=function(_0x5f4a8f,_0x4ab072,_0x5a7d14,_0x2db897){return new Promise(function(_0x59e3e1,_0x5a05ba){return getInteractionUsers(_0x5f4a8f['id'],_0x5a7d14)[_0x477c('0x11')](function(_0xd7abf5){_0x5f4a8f[_0x477c('0x15')]=_0xd7abf5;return getInteractionTags(_0x5f4a8f[_0x477c('0x16')],_0x4ab072);})[_0x477c('0x11')](function(_0x5a2405){_0x5f4a8f[_0x477c('0x17')]=_0x5a2405;delete _0x5f4a8f[_0x477c('0x16')];return updateInteractionCounters(_0x5f4a8f);})['then'](function(_0x40b3c1){if(_0x2db897){return getLastMessageText(_0x40b3c1);}else{return _0x40b3c1;}})['then'](function(_0x4cccc0){_0x59e3e1(_0x4cccc0);})[_0x477c('0x13')](function(_0x22a960){_0x5a05ba(_0x22a960);});});};