Built motion from commit d32f51f5.|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 _0x8374=['length','hasOwnProperty','sort','where','filters','pick','VIRTUAL','filter','merge','options','VoiceCallReport','fullname','alias','User','then','rows','catch','show','params','keys','intersection','find','create','describe','user','body','uniqueid','updateWithRetry','No\x20such\x20report','update','lodash','../../components/parsers/qs','../../config/logger','api','../../mysqldb','promise-retry','status','json','offset','limit','undefined','count','set','destroy','end','sendStatus','error','stack','name','index','rawAttributes','fieldName','type','model','query','attributes','fields'];(function(_0x61f0e0,_0x44467b){var _0x168cc7=function(_0x15e567){while(--_0x15e567){_0x61f0e0['push'](_0x61f0e0['shift']());}};_0x168cc7(++_0x44467b);}(_0x8374,0x174));var _0x4837=function(_0x18805d,_0x51517b){_0x18805d=_0x18805d-0x0;var _0x69b856=_0x8374[_0x18805d];return _0x69b856;};'use strict';var _=require(_0x4837('0x0'));var qs=require(_0x4837('0x1'));var logger=require(_0x4837('0x2'))(_0x4837('0x3'));var db=require(_0x4837('0x4'))['db'];const promiseRetry=require(_0x4837('0x5'));function respondWithResult(_0x395198,_0x1d4017){_0x1d4017=_0x1d4017||0xc8;return function(_0x149f91){if(_0x149f91){return _0x395198[_0x4837('0x6')](_0x1d4017)[_0x4837('0x7')](_0x149f91);}};}function respondWithFilteredResult(_0x24d98e,_0x2bd5a7){return function(_0x425c07){if(_0x425c07){var _0x4e0e60=typeof _0x2bd5a7[_0x4837('0x8')]==='undefined'&&typeof _0x2bd5a7[_0x4837('0x9')]===_0x4837('0xa');var _0x2046c1=_0x425c07[_0x4837('0xb')];var _0x2f0ca6=_0x4e0e60?0x0:_0x2bd5a7[_0x4837('0x8')];var _0x7c34dd=_0x4e0e60?_0x425c07[_0x4837('0xb')]:_0x2bd5a7[_0x4837('0x8')]+_0x2bd5a7[_0x4837('0x9')];var _0x5c2cb7;if(_0x7c34dd>=_0x2046c1){_0x7c34dd=_0x2046c1;_0x5c2cb7=0xc8;}else{_0x5c2cb7=0xce;}_0x24d98e['status'](_0x5c2cb7);return _0x24d98e[_0x4837('0xc')]('Content-Range',_0x2f0ca6+'-'+_0x7c34dd+'/'+_0x2046c1)[_0x4837('0x7')](_0x425c07);}return null;};}function saveUpdates(_0x1a33ab){return function(_0x5338cf){if(_0x5338cf){return _0x5338cf['update'](_0x1a33ab)['then'](function(_0xcdf448){return _0xcdf448;});}return null;};}function removeEntity(_0x3ff1a1){return function(_0x1c01a9){if(_0x1c01a9){return _0x1c01a9[_0x4837('0xd')]()['then'](function(){_0x3ff1a1[_0x4837('0x6')](0xcc)[_0x4837('0xe')]();});}};}function handleEntityNotFound(_0x39e5f6){return function(_0x52a82c){if(!_0x52a82c){_0x39e5f6[_0x4837('0xf')](0x194);}return _0x52a82c;};}function handleError(_0xae4f01,_0x5d49b6){_0x5d49b6=_0x5d49b6||0x1f4;return function(_0x216899){logger[_0x4837('0x10')](_0x216899[_0x4837('0x11')]);if(_0x216899[_0x4837('0x12')]){delete _0x216899[_0x4837('0x12')];}_0xae4f01[_0x4837('0x6')](_0x5d49b6)['send'](_0x216899);};}exports[_0x4837('0x13')]=function(_0x1cb24a,_0x427171){var _0x3c4d53={},_0x41f86c={},_0x2c1ddf={'count':0x0,'rows':[]};var _0x3af7e0=_['map'](db['VoiceCallReport'][_0x4837('0x14')],function(_0x133e9d){return{'name':_0x133e9d[_0x4837('0x15')],'type':_0x133e9d[_0x4837('0x16')]['key']};});_0x41f86c[_0x4837('0x17')]=_['map'](_0x3af7e0,_0x4837('0x12'));_0x41f86c['query']=_['keys'](_0x1cb24a[_0x4837('0x18')]);_0x41f86c['filters']=_['intersection'](_0x41f86c['model'],_0x41f86c[_0x4837('0x18')]);_0x3c4d53[_0x4837('0x19')]=_['intersection'](_0x41f86c[_0x4837('0x17')],qs[_0x4837('0x1a')](_0x1cb24a['query'][_0x4837('0x1a')]));_0x3c4d53[_0x4837('0x19')]=_0x3c4d53['attributes'][_0x4837('0x1b')]?_0x3c4d53[_0x4837('0x19')]:_0x41f86c[_0x4837('0x17')];if(!_0x1cb24a[_0x4837('0x18')][_0x4837('0x1c')]('nolimit')){_0x3c4d53[_0x4837('0x9')]=qs[_0x4837('0x9')](_0x1cb24a[_0x4837('0x18')][_0x4837('0x9')]);_0x3c4d53[_0x4837('0x8')]=qs[_0x4837('0x8')](_0x1cb24a[_0x4837('0x18')][_0x4837('0x8')]);}_0x3c4d53['order']=qs[_0x4837('0x1d')](_0x1cb24a[_0x4837('0x18')][_0x4837('0x1d')]);_0x3c4d53[_0x4837('0x1e')]=qs[_0x4837('0x1f')](_[_0x4837('0x20')](_0x1cb24a[_0x4837('0x18')],_0x41f86c[_0x4837('0x1f')]),_0x3af7e0);if(_0x1cb24a[_0x4837('0x18')]['filter']){_0x3c4d53[_0x4837('0x1e')]=_['merge'](_0x3c4d53[_0x4837('0x1e')],{'$or':_['map'](_0x3af7e0,function(_0x24c300){if(_0x24c300[_0x4837('0x16')]!==_0x4837('0x21')){var _0x540248={};_0x540248[_0x24c300['name']]={'$like':'%'+_0x1cb24a[_0x4837('0x18')][_0x4837('0x22')]+'%'};return _0x540248;}})});}_0x3c4d53=_[_0x4837('0x23')]({},_0x3c4d53,_0x1cb24a[_0x4837('0x24')]);var _0x6bb833={'where':_0x3c4d53['where']};return db[_0x4837('0x25')][_0x4837('0xb')](_0x6bb833)['then'](function(_0x611a87){_0x2c1ddf['count']=_0x611a87;if(_0x1cb24a[_0x4837('0x18')]['includeAll']){_0x3c4d53['include']=[{'attributes':['id',_0x4837('0x12'),_0x4837('0x26'),_0x4837('0x27')],'model':db['User'],'as':_0x4837('0x28')}];}return db[_0x4837('0x25')]['findAll'](_0x3c4d53);})[_0x4837('0x29')](function(_0x57d0e5){_0x2c1ddf[_0x4837('0x2a')]=_0x57d0e5;return _0x2c1ddf;})[_0x4837('0x29')](respondWithFilteredResult(_0x427171,_0x3c4d53))[_0x4837('0x2b')](handleError(_0x427171,null));};exports[_0x4837('0x2c')]=function(_0x4a9413,_0x361d06){var _0x124abf={'raw':!![],'where':{'id':_0x4a9413[_0x4837('0x2d')]['id']}},_0x33a455={};_0x33a455[_0x4837('0x17')]=_[_0x4837('0x2e')](db['VoiceCallReport'][_0x4837('0x14')]);_0x33a455['query']=_[_0x4837('0x2e')](_0x4a9413[_0x4837('0x18')]);_0x33a455['filters']=_['intersection'](_0x33a455[_0x4837('0x17')],_0x33a455[_0x4837('0x18')]);_0x124abf[_0x4837('0x19')]=_[_0x4837('0x2f')](_0x33a455[_0x4837('0x17')],qs[_0x4837('0x1a')](_0x4a9413[_0x4837('0x18')][_0x4837('0x1a')]));_0x124abf[_0x4837('0x19')]=_0x124abf[_0x4837('0x19')][_0x4837('0x1b')]?_0x124abf[_0x4837('0x19')]:_0x33a455[_0x4837('0x17')];if(_0x4a9413[_0x4837('0x18')]['includeAll']){_0x124abf['include']=[{'all':!![]}];}_0x124abf=_[_0x4837('0x23')]({},_0x124abf,_0x4a9413[_0x4837('0x24')]);return db[_0x4837('0x25')][_0x4837('0x30')](_0x124abf)['then'](handleEntityNotFound(_0x361d06,null))['then'](respondWithResult(_0x361d06,null))[_0x4837('0x2b')](handleError(_0x361d06,null));};exports['create']=function(_0x5409e4,_0x11a818){return db[_0x4837('0x25')][_0x4837('0x31')](_0x5409e4['body'],{})[_0x4837('0x29')](respondWithResult(_0x11a818,0xc9))[_0x4837('0x2b')](handleError(_0x11a818,null));};exports['destroy']=function(_0x16fc81,_0x41e653){return db[_0x4837('0x25')][_0x4837('0x30')]({'where':{'id':_0x16fc81[_0x4837('0x2d')]['id']}})[_0x4837('0x29')](handleEntityNotFound(_0x41e653,null))[_0x4837('0x29')](removeEntity(_0x41e653,null))[_0x4837('0x2b')](handleError(_0x41e653,null));};exports[_0x4837('0x32')]=function(_0xa309fa,_0x2ce6bc){return db[_0x4837('0x25')][_0x4837('0x32')]()[_0x4837('0x29')](respondWithResult(_0x2ce6bc,null))[_0x4837('0x2b')](handleError(_0x2ce6bc,null));};function findForUpdate(_0x569806){return db[_0x4837('0x25')][_0x4837('0x30')]({'where':{'uniqueid':_0x569806[_0x4837('0x2d')]['id'],'UserId':{'$or':[null,_0x569806[_0x4837('0x33')]['id']]}}});}exports['update']=function(_0x11d384,_0x3f2995){if(_0x11d384['body']['uniqueid']){delete _0x11d384[_0x4837('0x34')][_0x4837('0x35')];}return findForUpdate(_0x11d384)[_0x4837('0x29')](handleEntityNotFound(_0x3f2995,null))['then'](saveUpdates(_0x11d384[_0x4837('0x34')],null))[_0x4837('0x29')](respondWithResult(_0x3f2995,null))[_0x4837('0x2b')](handleError(_0x3f2995,null));};exports[_0x4837('0x36')]=function(_0x1ae0f8,_0x3a7ede,_0x1dc143){if(_0x1ae0f8[_0x4837('0x34')][_0x4837('0x35')]){delete _0x1ae0f8['body']['uniqueid'];}promiseRetry(function(_0x33d74a){return findForUpdate(_0x1ae0f8)['then'](function(_0x215c71){if(_0x215c71!==null){return _0x215c71;}else{_0x33d74a(new Error(_0x4837('0x37')));}});},{'retries':0x4,'minTimeout':0xfa})[_0x4837('0x29')](function(_0x2ff7de){if(!_0x2ff7de){return new Promise(function(_0x32384d){_0x32384d(handleEntityNotFound(_0x3a7ede)());});}else{return _0x2ff7de[_0x4837('0x38')](_0x1ae0f8['body'])[_0x4837('0x29')](function(_0x1be48b){return respondWithResult(_0x3a7ede)(_0x1be48b);});}},function(){handleEntityNotFound(_0x3a7ede)();});};