Built motion from commit 953226e6.|2.6.32
[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 _0x73a1=['fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','filter','merge','options','includeAll','include','name','fullname','alias','User','findAll','catch','show','params','find','create','describe','update','body','uniqueid','updateWithRetry','No\x20such\x20report','../../config/logger','api','promise-retry','status','offset','undefined','limit','count','set','json','then','destroy','end','sendStatus','error','map','VoiceCallReport','rawAttributes','fieldName','type','model','query','keys','intersection','attributes'];(function(_0x33bf2f,_0x25ba1f){var _0x1ff548=function(_0x3a40e6){while(--_0x3a40e6){_0x33bf2f['push'](_0x33bf2f['shift']());}};_0x1ff548(++_0x25ba1f);}(_0x73a1,0x161));var _0x173a=function(_0x337748,_0x402b05){_0x337748=_0x337748-0x0;var _0x3bb03f=_0x73a1[_0x337748];return _0x3bb03f;};'use strict';var _=require('lodash');var qs=require('../../components/parsers/qs');var logger=require(_0x173a('0x0'))(_0x173a('0x1'));var db=require('../../mysqldb')['db'];const promiseRetry=require(_0x173a('0x2'));function respondWithResult(_0x279349,_0xeec920){_0xeec920=_0xeec920||0xc8;return function(_0xf2a2c8){if(_0xf2a2c8){return _0x279349[_0x173a('0x3')](_0xeec920)['json'](_0xf2a2c8);}};}function respondWithFilteredResult(_0x417ec0,_0x1a8b94){return function(_0xac84a){if(_0xac84a){var _0xbd8757=typeof _0x1a8b94[_0x173a('0x4')]===_0x173a('0x5')&&typeof _0x1a8b94[_0x173a('0x6')]===_0x173a('0x5');var _0x3f06d5=_0xac84a[_0x173a('0x7')];var _0x30ffef=_0xbd8757?0x0:_0x1a8b94[_0x173a('0x4')];var _0x4d6b80=_0xbd8757?_0xac84a[_0x173a('0x7')]:_0x1a8b94['offset']+_0x1a8b94[_0x173a('0x6')];var _0x101aeb;if(_0x4d6b80>=_0x3f06d5){_0x4d6b80=_0x3f06d5;_0x101aeb=0xc8;}else{_0x101aeb=0xce;}_0x417ec0[_0x173a('0x3')](_0x101aeb);return _0x417ec0[_0x173a('0x8')]('Content-Range',_0x30ffef+'-'+_0x4d6b80+'/'+_0x3f06d5)[_0x173a('0x9')](_0xac84a);}return null;};}function saveUpdates(_0x53bfd0){return function(_0x28b560){if(_0x28b560){return _0x28b560['update'](_0x53bfd0)[_0x173a('0xa')](function(_0x21534e){return _0x21534e;});}return null;};}function removeEntity(_0x578f77){return function(_0x1cbfdc){if(_0x1cbfdc){return _0x1cbfdc[_0x173a('0xb')]()[_0x173a('0xa')](function(){_0x578f77[_0x173a('0x3')](0xcc)[_0x173a('0xc')]();});}};}function handleEntityNotFound(_0x410dfc){return function(_0x69fe68){if(!_0x69fe68){_0x410dfc[_0x173a('0xd')](0x194);}return _0x69fe68;};}function handleError(_0x5e4252,_0xb8e6b){_0xb8e6b=_0xb8e6b||0x1f4;return function(_0x3bcc3a){logger[_0x173a('0xe')](_0x3bcc3a['stack']);if(_0x3bcc3a['name']){delete _0x3bcc3a['name'];}_0x5e4252[_0x173a('0x3')](_0xb8e6b)['send'](_0x3bcc3a);};}exports['index']=function(_0xd84224,_0x2d3b17){var _0x54985d={},_0x2d1a42={},_0x3d6897={'count':0x0,'rows':[]};var _0x44eec5=_[_0x173a('0xf')](db[_0x173a('0x10')][_0x173a('0x11')],function(_0x47b362){return{'name':_0x47b362[_0x173a('0x12')],'type':_0x47b362[_0x173a('0x13')]['key']};});_0x2d1a42[_0x173a('0x14')]=_['map'](_0x44eec5,'name');_0x2d1a42[_0x173a('0x15')]=_[_0x173a('0x16')](_0xd84224[_0x173a('0x15')]);_0x2d1a42['filters']=_[_0x173a('0x17')](_0x2d1a42[_0x173a('0x14')],_0x2d1a42[_0x173a('0x15')]);_0x54985d[_0x173a('0x18')]=_[_0x173a('0x17')](_0x2d1a42[_0x173a('0x14')],qs['fields'](_0xd84224['query'][_0x173a('0x19')]));_0x54985d[_0x173a('0x18')]=_0x54985d[_0x173a('0x18')][_0x173a('0x1a')]?_0x54985d[_0x173a('0x18')]:_0x2d1a42[_0x173a('0x14')];if(!_0xd84224['query'][_0x173a('0x1b')](_0x173a('0x1c'))){_0x54985d[_0x173a('0x6')]=qs[_0x173a('0x6')](_0xd84224[_0x173a('0x15')][_0x173a('0x6')]);_0x54985d[_0x173a('0x4')]=qs[_0x173a('0x4')](_0xd84224[_0x173a('0x15')][_0x173a('0x4')]);}_0x54985d['order']=qs['sort'](_0xd84224['query'][_0x173a('0x1d')]);_0x54985d[_0x173a('0x1e')]=qs[_0x173a('0x1f')](_[_0x173a('0x20')](_0xd84224[_0x173a('0x15')],_0x2d1a42['filters']),_0x44eec5);if(_0xd84224[_0x173a('0x15')][_0x173a('0x21')]){_0x54985d['where']=_[_0x173a('0x22')](_0x54985d[_0x173a('0x1e')],{'$or':_[_0x173a('0xf')](_0x44eec5,function(_0x546e80){if(_0x546e80[_0x173a('0x13')]!=='VIRTUAL'){var _0xdab384={};_0xdab384[_0x546e80['name']]={'$like':'%'+_0xd84224['query'][_0x173a('0x21')]+'%'};return _0xdab384;}})});}_0x54985d=_[_0x173a('0x22')]({},_0x54985d,_0xd84224[_0x173a('0x23')]);var _0x41c181={'where':_0x54985d['where']};return db[_0x173a('0x10')][_0x173a('0x7')](_0x41c181)['then'](function(_0xe2a0a1){_0x3d6897['count']=_0xe2a0a1;if(_0xd84224[_0x173a('0x15')][_0x173a('0x24')]){_0x54985d[_0x173a('0x25')]=[{'attributes':['id',_0x173a('0x26'),_0x173a('0x27'),_0x173a('0x28')],'model':db[_0x173a('0x29')],'as':'User'}];}return db[_0x173a('0x10')][_0x173a('0x2a')](_0x54985d);})[_0x173a('0xa')](function(_0x5c1a69){_0x3d6897['rows']=_0x5c1a69;return _0x3d6897;})[_0x173a('0xa')](respondWithFilteredResult(_0x2d3b17,_0x54985d))[_0x173a('0x2b')](handleError(_0x2d3b17,null));};exports[_0x173a('0x2c')]=function(_0x4e4a02,_0x1a87c7){var _0x3d7c8c={'raw':!![],'where':{'id':_0x4e4a02[_0x173a('0x2d')]['id']}},_0x141d3f={};_0x141d3f['model']=_['keys'](db[_0x173a('0x10')][_0x173a('0x11')]);_0x141d3f[_0x173a('0x15')]=_[_0x173a('0x16')](_0x4e4a02[_0x173a('0x15')]);_0x141d3f[_0x173a('0x1f')]=_[_0x173a('0x17')](_0x141d3f[_0x173a('0x14')],_0x141d3f['query']);_0x3d7c8c[_0x173a('0x18')]=_[_0x173a('0x17')](_0x141d3f[_0x173a('0x14')],qs[_0x173a('0x19')](_0x4e4a02[_0x173a('0x15')][_0x173a('0x19')]));_0x3d7c8c[_0x173a('0x18')]=_0x3d7c8c[_0x173a('0x18')][_0x173a('0x1a')]?_0x3d7c8c[_0x173a('0x18')]:_0x141d3f[_0x173a('0x14')];if(_0x4e4a02[_0x173a('0x15')][_0x173a('0x24')]){_0x3d7c8c[_0x173a('0x25')]=[{'all':!![]}];}_0x3d7c8c=_['merge']({},_0x3d7c8c,_0x4e4a02[_0x173a('0x23')]);return db['VoiceCallReport'][_0x173a('0x2e')](_0x3d7c8c)[_0x173a('0xa')](handleEntityNotFound(_0x1a87c7,null))['then'](respondWithResult(_0x1a87c7,null))['catch'](handleError(_0x1a87c7,null));};exports[_0x173a('0x2f')]=function(_0x524420,_0x1c036f){return db[_0x173a('0x10')][_0x173a('0x2f')](_0x524420['body'],{})[_0x173a('0xa')](respondWithResult(_0x1c036f,0xc9))[_0x173a('0x2b')](handleError(_0x1c036f,null));};exports[_0x173a('0xb')]=function(_0x55649b,_0x21ffa5){return db[_0x173a('0x10')][_0x173a('0x2e')]({'where':{'id':_0x55649b['params']['id']}})[_0x173a('0xa')](handleEntityNotFound(_0x21ffa5,null))[_0x173a('0xa')](removeEntity(_0x21ffa5,null))['catch'](handleError(_0x21ffa5,null));};exports[_0x173a('0x30')]=function(_0x2d5a8c,_0x577778){return db[_0x173a('0x10')]['describe']()[_0x173a('0xa')](respondWithResult(_0x577778,null))['catch'](handleError(_0x577778,null));};function findForUpdate(_0x626942){return db[_0x173a('0x10')][_0x173a('0x2e')]({'where':{'uniqueid':_0x626942[_0x173a('0x2d')]['id'],'UserId':{'$or':[null,_0x626942['user']['id']]}}});}exports[_0x173a('0x31')]=function(_0xbda804,_0x1958b8){if(_0xbda804[_0x173a('0x32')][_0x173a('0x33')]){delete _0xbda804[_0x173a('0x32')][_0x173a('0x33')];}return findForUpdate(_0xbda804)['then'](handleEntityNotFound(_0x1958b8,null))[_0x173a('0xa')](saveUpdates(_0xbda804['body'],null))[_0x173a('0xa')](respondWithResult(_0x1958b8,null))[_0x173a('0x2b')](handleError(_0x1958b8,null));};exports[_0x173a('0x34')]=function(_0x43969f,_0x49dd52,_0x57de6a){if(_0x43969f[_0x173a('0x32')][_0x173a('0x33')]){delete _0x43969f[_0x173a('0x32')][_0x173a('0x33')];}promiseRetry(function(_0x299bd7){return findForUpdate(_0x43969f)[_0x173a('0xa')](function(_0x2e6d04){if(_0x2e6d04!==null){return _0x2e6d04;}else{_0x299bd7(new Error(_0x173a('0x35')));}});},{'retries':0x4,'minTimeout':0xfa})[_0x173a('0xa')](function(_0x3b19b1){if(!_0x3b19b1){return new Promise(function(_0x8ed463){_0x8ed463(handleEntityNotFound(_0x49dd52)());});}else{return _0x3b19b1[_0x173a('0x31')](_0x43969f[_0x173a('0x32')])['then'](function(_0x4f9d5c){return respondWithResult(_0x49dd52)(_0x4f9d5c);});}},function(){handleEntityNotFound(_0x49dd52)();});};