1763e2a5a06678f9f9281017e79655dd29d8ee79
[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 _0x86bc=['waiting','findOne','out','plainBody','-id','then','lastMsgText','Users','TagIds','Tags','catch','lodash','../../mysqldb','fullname','split','unmanaged','total','closed','disposition','abandoned','UserId','talking'];(function(_0x2faab7,_0x233aab){var _0xf25c4c=function(_0x2cfe7c){while(--_0x2cfe7c){_0x2faab7['push'](_0x2faab7['shift']());}};_0xf25c4c(++_0x233aab);}(_0x86bc,0x155));var _0xc86b=function(_0x2bf9dd,_0x5157e2){_0x2bf9dd=_0x2bf9dd-0x0;var _0x229d6e=_0x86bc[_0x2bf9dd];return _0x229d6e;};'use strict';var _=require(_0xc86b('0x0'));var db=require(_0xc86b('0x1'))['db'];function getInteractionUsers(_0x5b964f,_0x500844){return new Promise(function(_0x4eaf3f,_0xd3243f){try{var _0x4b58ba=[];if(_0x500844[_0x5b964f]){_0x4b58ba=_0x500844[_0x5b964f]['map'](function(_0x5d735f){return{'id':_0x5d735f['id'],'fullname':_0x5d735f[_0xc86b('0x2')]};});}return _0x4eaf3f(_0x4b58ba);}catch(_0x5c1268){_0xd3243f(_0x5c1268);}});}function getInteractionTags(_0x484902,_0xeca958){var _0x519a91=[];if(_0x484902){_0x484902[_0xc86b('0x3')](',')['forEach'](function(_0x1ebb3f){_0x519a91['push'](_0xeca958[_0x1ebb3f]);});}return _0x519a91;}function updateWaitingCounter(_0x10ad8b){if(_0x10ad8b['waiting']){_0x10ad8b['waiting']-=0x1;}}function updateInteractionCounters(_0x5b5ab0){_0x5b5ab0['waiting']=0x0;_0x5b5ab0['talking']=0x0;_0x5b5ab0['answered']=0x0;_0x5b5ab0[_0xc86b('0x4')]=0x0;_0x5b5ab0['abandoned']=0x0;_0x5b5ab0[_0xc86b('0x5')]=0x0;if(_0x5b5ab0[_0xc86b('0x6')]){if(_0x5b5ab0[_0xc86b('0x7')]===_0xc86b('0x8')){_0x5b5ab0[_0xc86b('0x8')]+=0x1;updateWaitingCounter(_0x5b5ab0);}if(_0x5b5ab0[_0xc86b('0x9')]){_0x5b5ab0['answered']+=0x1;if(_0x5b5ab0[_0xc86b('0xa')]){_0x5b5ab0[_0xc86b('0xa')]-=0x1;}}else{if(_0x5b5ab0[_0xc86b('0x7')]){_0x5b5ab0[_0xc86b('0x4')]+=0x1;updateWaitingCounter(_0x5b5ab0);}}}else{if(!_0x5b5ab0[_0xc86b('0x9')]){_0x5b5ab0[_0xc86b('0xb')]+=0x1;}if(_0x5b5ab0[_0xc86b('0x9')]){_0x5b5ab0[_0xc86b('0xa')]+=0x1;updateWaitingCounter(_0x5b5ab0);}}_0x5b5ab0[_0xc86b('0x5')]+=0x1;return _0x5b5ab0;}function getLastMessageText(_0x5db1be){return db['MailMessage'][_0xc86b('0xc')]({'where':{'$and':[{'MailInteractionId':_0x5db1be['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0xc86b('0xd')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0xc86b('0xe')],'order':_0xc86b('0xf'),'raw':!![]})[_0xc86b('0x10')](function(_0x276f12){if(_0x276f12&&_0x276f12[_0xc86b('0xe')]){_0x5db1be[_0xc86b('0x11')]=_['trimStart'](_0x276f12[_0xc86b('0xe')]);}return _0x5db1be;})['catch'](function(_0x532789){throw _0x532789;});}exports['updateInteraction']=function(_0xc225d,_0x3a8d35,_0x42270d,_0x207fa3){return new Promise(function(_0x1f75cb,_0x4f37e1){return getInteractionUsers(_0xc225d['id'],_0x42270d)[_0xc86b('0x10')](function(_0x307042){_0xc225d[_0xc86b('0x12')]=_0x307042;return getInteractionTags(_0xc225d[_0xc86b('0x13')],_0x3a8d35);})[_0xc86b('0x10')](function(_0x58e963){_0xc225d[_0xc86b('0x14')]=_0x58e963;delete _0xc225d[_0xc86b('0x13')];return updateInteractionCounters(_0xc225d);})[_0xc86b('0x10')](function(_0x4b7fa0){if(_0x207fa3){return getLastMessageText(_0x4b7fa0);}else{return _0x4b7fa0;}})[_0xc86b('0x10')](function(_0x46bbf2){_0x1f75cb(_0x46bbf2);})[_0xc86b('0x15')](function(_0x10542b){_0x4f37e1(_0x10542b);});});};