Built motion from commit 3c2ce842.|2.6.31
[motion2.git] / server / api / voiceCallReport / voiceCallReport.controller.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 _0xbd8e=['then','end','sendStatus','error','stack','name','send','index','map','VoiceCallReport','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','nolimit','order','where','filter','merge','options','includeAll','include','fullname','User','findAll','rows','show','params','find','catch','destroy','describe','user','body','uniqueid','updateWithRetry','No\x20such\x20report','lodash','../../components/parsers/qs','../../mysqldb','status','json','offset','undefined','count','limit','set','update'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xbd8e,0x1b5));var _0xebd8=function(_0x17d9e3,_0x1f969c){_0x17d9e3=_0x17d9e3-0x0;var _0x14192d=_0xbd8e[_0x17d9e3];return _0x14192d;};'use strict';var _=require(_0xebd8('0x0'));var qs=require(_0xebd8('0x1'));var logger=require('../../config/logger')('api');var db=require(_0xebd8('0x2'))['db'];const promiseRetry=require('promise-retry');function respondWithResult(_0x20cbfb,_0x377073){_0x377073=_0x377073||0xc8;return function(_0x4dbd60){if(_0x4dbd60){return _0x20cbfb[_0xebd8('0x3')](_0x377073)[_0xebd8('0x4')](_0x4dbd60);}};}function respondWithFilteredResult(_0x4c86ea,_0x225b6e){return function(_0x1ef9d9){if(_0x1ef9d9){var _0x3f2b2e=typeof _0x225b6e[_0xebd8('0x5')]===_0xebd8('0x6')&&typeof _0x225b6e['limit']===_0xebd8('0x6');var _0x3405f6=_0x1ef9d9[_0xebd8('0x7')];var _0x13afa5=_0x3f2b2e?0x0:_0x225b6e['offset'];var _0x5e4640=_0x3f2b2e?_0x1ef9d9['count']:_0x225b6e[_0xebd8('0x5')]+_0x225b6e[_0xebd8('0x8')];var _0x25976d;if(_0x5e4640>=_0x3405f6){_0x5e4640=_0x3405f6;_0x25976d=0xc8;}else{_0x25976d=0xce;}_0x4c86ea[_0xebd8('0x3')](_0x25976d);return _0x4c86ea[_0xebd8('0x9')]('Content-Range',_0x13afa5+'-'+_0x5e4640+'/'+_0x3405f6)[_0xebd8('0x4')](_0x1ef9d9);}return null;};}function saveUpdates(_0x549218){return function(_0x247d34){if(_0x247d34){return _0x247d34[_0xebd8('0xa')](_0x549218)['then'](function(_0x1f5e36){return _0x1f5e36;});}return null;};}function removeEntity(_0x29c7c3){return function(_0x296ee9){if(_0x296ee9){return _0x296ee9['destroy']()[_0xebd8('0xb')](function(){_0x29c7c3['status'](0xcc)[_0xebd8('0xc')]();});}};}function handleEntityNotFound(_0x5dd513){return function(_0x598f71){if(!_0x598f71){_0x5dd513[_0xebd8('0xd')](0x194);}return _0x598f71;};}function handleError(_0x10d4eb,_0x2162ad){_0x2162ad=_0x2162ad||0x1f4;return function(_0x358651){logger[_0xebd8('0xe')](_0x358651[_0xebd8('0xf')]);if(_0x358651[_0xebd8('0x10')]){delete _0x358651[_0xebd8('0x10')];}_0x10d4eb[_0xebd8('0x3')](_0x2162ad)[_0xebd8('0x11')](_0x358651);};}exports[_0xebd8('0x12')]=function(_0x46a956,_0x204593){var _0x474806={},_0x4e8ebc={},_0x158940={'count':0x0,'rows':[]};var _0x4577a9=_[_0xebd8('0x13')](db[_0xebd8('0x14')][_0xebd8('0x15')],function(_0x24be02){return{'name':_0x24be02[_0xebd8('0x16')],'type':_0x24be02[_0xebd8('0x17')][_0xebd8('0x18')]};});_0x4e8ebc['model']=_[_0xebd8('0x13')](_0x4577a9,_0xebd8('0x10'));_0x4e8ebc[_0xebd8('0x19')]=_[_0xebd8('0x1a')](_0x46a956[_0xebd8('0x19')]);_0x4e8ebc[_0xebd8('0x1b')]=_[_0xebd8('0x1c')](_0x4e8ebc[_0xebd8('0x1d')],_0x4e8ebc[_0xebd8('0x19')]);_0x474806[_0xebd8('0x1e')]=_[_0xebd8('0x1c')](_0x4e8ebc[_0xebd8('0x1d')],qs[_0xebd8('0x1f')](_0x46a956['query'][_0xebd8('0x1f')]));_0x474806['attributes']=_0x474806[_0xebd8('0x1e')][_0xebd8('0x20')]?_0x474806[_0xebd8('0x1e')]:_0x4e8ebc[_0xebd8('0x1d')];if(!_0x46a956['query']['hasOwnProperty'](_0xebd8('0x21'))){_0x474806[_0xebd8('0x8')]=qs[_0xebd8('0x8')](_0x46a956[_0xebd8('0x19')][_0xebd8('0x8')]);_0x474806[_0xebd8('0x5')]=qs[_0xebd8('0x5')](_0x46a956['query']['offset']);}_0x474806[_0xebd8('0x22')]=qs['sort'](_0x46a956[_0xebd8('0x19')]['sort']);_0x474806[_0xebd8('0x23')]=qs[_0xebd8('0x1b')](_['pick'](_0x46a956[_0xebd8('0x19')],_0x4e8ebc['filters']),_0x4577a9);if(_0x46a956[_0xebd8('0x19')][_0xebd8('0x24')]){_0x474806[_0xebd8('0x23')]=_['merge'](_0x474806['where'],{'$or':_[_0xebd8('0x13')](_0x4577a9,function(_0x2d6205){if(_0x2d6205[_0xebd8('0x17')]!=='VIRTUAL'){var _0x101e00={};_0x101e00[_0x2d6205[_0xebd8('0x10')]]={'$like':'%'+_0x46a956[_0xebd8('0x19')][_0xebd8('0x24')]+'%'};return _0x101e00;}})});}_0x474806=_[_0xebd8('0x25')]({},_0x474806,_0x46a956[_0xebd8('0x26')]);var _0x40a9ae={'where':_0x474806[_0xebd8('0x23')]};return db[_0xebd8('0x14')][_0xebd8('0x7')](_0x40a9ae)[_0xebd8('0xb')](function(_0x12e56b){_0x158940[_0xebd8('0x7')]=_0x12e56b;if(_0x46a956[_0xebd8('0x19')][_0xebd8('0x27')]){_0x474806[_0xebd8('0x28')]=[{'attributes':['id',_0xebd8('0x10'),_0xebd8('0x29'),'alias'],'model':db[_0xebd8('0x2a')],'as':_0xebd8('0x2a')}];}return db['VoiceCallReport'][_0xebd8('0x2b')](_0x474806);})[_0xebd8('0xb')](function(_0x2cd4a0){_0x158940[_0xebd8('0x2c')]=_0x2cd4a0;return _0x158940;})[_0xebd8('0xb')](respondWithFilteredResult(_0x204593,_0x474806))['catch'](handleError(_0x204593,null));};exports[_0xebd8('0x2d')]=function(_0x58af8d,_0x380812){var _0x2db571={'raw':!![],'where':{'id':_0x58af8d[_0xebd8('0x2e')]['id']}},_0x348bb7={};_0x348bb7[_0xebd8('0x1d')]=_[_0xebd8('0x1a')](db['VoiceCallReport'][_0xebd8('0x15')]);_0x348bb7[_0xebd8('0x19')]=_['keys'](_0x58af8d[_0xebd8('0x19')]);_0x348bb7['filters']=_[_0xebd8('0x1c')](_0x348bb7[_0xebd8('0x1d')],_0x348bb7[_0xebd8('0x19')]);_0x2db571[_0xebd8('0x1e')]=_['intersection'](_0x348bb7[_0xebd8('0x1d')],qs[_0xebd8('0x1f')](_0x58af8d[_0xebd8('0x19')]['fields']));_0x2db571[_0xebd8('0x1e')]=_0x2db571[_0xebd8('0x1e')][_0xebd8('0x20')]?_0x2db571[_0xebd8('0x1e')]:_0x348bb7[_0xebd8('0x1d')];if(_0x58af8d[_0xebd8('0x19')][_0xebd8('0x27')]){_0x2db571[_0xebd8('0x28')]=[{'all':!![]}];}_0x2db571=_[_0xebd8('0x25')]({},_0x2db571,_0x58af8d[_0xebd8('0x26')]);return db[_0xebd8('0x14')][_0xebd8('0x2f')](_0x2db571)['then'](handleEntityNotFound(_0x380812,null))[_0xebd8('0xb')](respondWithResult(_0x380812,null))[_0xebd8('0x30')](handleError(_0x380812,null));};exports['create']=function(_0x1ea255,_0x32b470){return db[_0xebd8('0x14')]['create'](_0x1ea255['body'],{})['then'](respondWithResult(_0x32b470,0xc9))[_0xebd8('0x30')](handleError(_0x32b470,null));};exports[_0xebd8('0x31')]=function(_0x3b205a,_0x2c6f08){return db['VoiceCallReport']['find']({'where':{'id':_0x3b205a[_0xebd8('0x2e')]['id']}})['then'](handleEntityNotFound(_0x2c6f08,null))['then'](removeEntity(_0x2c6f08,null))[_0xebd8('0x30')](handleError(_0x2c6f08,null));};exports[_0xebd8('0x32')]=function(_0x42de4e,_0x495280){return db[_0xebd8('0x14')][_0xebd8('0x32')]()[_0xebd8('0xb')](respondWithResult(_0x495280,null))[_0xebd8('0x30')](handleError(_0x495280,null));};function findForUpdate(_0x447937){return db['VoiceCallReport']['find']({'where':{'uniqueid':_0x447937['params']['id'],'UserId':{'$or':[null,_0x447937[_0xebd8('0x33')]['id']]}}});}exports[_0xebd8('0xa')]=function(_0x566dcd,_0x13bd63){if(_0x566dcd[_0xebd8('0x34')][_0xebd8('0x35')]){delete _0x566dcd[_0xebd8('0x34')]['uniqueid'];}return findForUpdate(_0x566dcd)[_0xebd8('0xb')](handleEntityNotFound(_0x13bd63,null))['then'](saveUpdates(_0x566dcd[_0xebd8('0x34')],null))[_0xebd8('0xb')](respondWithResult(_0x13bd63,null))[_0xebd8('0x30')](handleError(_0x13bd63,null));};exports[_0xebd8('0x36')]=function(_0x29f10f,_0x22a336,_0x123ed8){if(_0x29f10f['body'][_0xebd8('0x35')]){delete _0x29f10f[_0xebd8('0x34')][_0xebd8('0x35')];}promiseRetry(function(_0x25b10d){return findForUpdate(_0x29f10f)[_0xebd8('0xb')](function(_0x541a4e){if(_0x541a4e!==null){return _0x541a4e;}else{_0x25b10d(new Error(_0xebd8('0x37')));}});},{'retries':0x4,'minTimeout':0xfa})[_0xebd8('0xb')](function(_0x3713b7){if(!_0x3713b7){return new Promise(function(_0x3d6f60){_0x3d6f60(handleEntityNotFound(_0x22a336)());});}else{return _0x3713b7[_0xebd8('0xa')](_0x29f10f['body'])[_0xebd8('0xb')](function(_0x16d43a){return respondWithResult(_0x22a336)(_0x16d43a);});}},function(){handleEntityNotFound(_0x22a336)();});};