Built motion from commit b0a9a629.|2.6.33
[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 _0x7880=['No\x20such\x20report','lodash','../../config/logger','api','../../mysqldb','promise-retry','status','offset','undefined','count','limit','Content-Range','update','then','sendStatus','stack','name','index','map','VoiceCallReport','rawAttributes','type','key','model','query','keys','filters','intersection','fields','attributes','length','nolimit','sort','where','merge','VIRTUAL','options','includeAll','include','fullname','alias','User','rows','catch','show','params','create','body','destroy','find','describe','user','uniqueid','updateWithRetry'];(function(_0x4c32f4,_0x54e978){var _0x378354=function(_0x5962df){while(--_0x5962df){_0x4c32f4['push'](_0x4c32f4['shift']());}};_0x378354(++_0x54e978);}(_0x7880,0x10f));var _0x0788=function(_0x1233d1,_0x15cf04){_0x1233d1=_0x1233d1-0x0;var _0x56ee5e=_0x7880[_0x1233d1];return _0x56ee5e;};'use strict';var _=require(_0x0788('0x0'));var qs=require('../../components/parsers/qs');var logger=require(_0x0788('0x1'))(_0x0788('0x2'));var db=require(_0x0788('0x3'))['db'];const promiseRetry=require(_0x0788('0x4'));function respondWithResult(_0x2caf5c,_0x509799){_0x509799=_0x509799||0xc8;return function(_0x563529){if(_0x563529){return _0x2caf5c[_0x0788('0x5')](_0x509799)['json'](_0x563529);}};}function respondWithFilteredResult(_0x74c6b2,_0x2deca2){return function(_0x34f9f1){if(_0x34f9f1){var _0x5ece1c=typeof _0x2deca2[_0x0788('0x6')]===_0x0788('0x7')&&typeof _0x2deca2['limit']===_0x0788('0x7');var _0x466e68=_0x34f9f1[_0x0788('0x8')];var _0x95ebe3=_0x5ece1c?0x0:_0x2deca2[_0x0788('0x6')];var _0x14552f=_0x5ece1c?_0x34f9f1[_0x0788('0x8')]:_0x2deca2[_0x0788('0x6')]+_0x2deca2[_0x0788('0x9')];var _0x49aac3;if(_0x14552f>=_0x466e68){_0x14552f=_0x466e68;_0x49aac3=0xc8;}else{_0x49aac3=0xce;}_0x74c6b2[_0x0788('0x5')](_0x49aac3);return _0x74c6b2['set'](_0x0788('0xa'),_0x95ebe3+'-'+_0x14552f+'/'+_0x466e68)['json'](_0x34f9f1);}return null;};}function saveUpdates(_0x423e99){return function(_0x9d3024){if(_0x9d3024){return _0x9d3024[_0x0788('0xb')](_0x423e99)[_0x0788('0xc')](function(_0x22b39e){return _0x22b39e;});}return null;};}function removeEntity(_0x4ee22c){return function(_0x2c4682){if(_0x2c4682){return _0x2c4682['destroy']()[_0x0788('0xc')](function(){_0x4ee22c['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1fedd1){return function(_0x8a7e08){if(!_0x8a7e08){_0x1fedd1[_0x0788('0xd')](0x194);}return _0x8a7e08;};}function handleError(_0x57a803,_0x12553c){_0x12553c=_0x12553c||0x1f4;return function(_0x2d68b0){logger['error'](_0x2d68b0[_0x0788('0xe')]);if(_0x2d68b0[_0x0788('0xf')]){delete _0x2d68b0[_0x0788('0xf')];}_0x57a803['status'](_0x12553c)['send'](_0x2d68b0);};}exports[_0x0788('0x10')]=function(_0xf82fbc,_0x5ce32d){var _0x3f0de9={},_0x3e0ad7={},_0x44be88={'count':0x0,'rows':[]};var _0xd5e0a6=_[_0x0788('0x11')](db[_0x0788('0x12')][_0x0788('0x13')],function(_0x3e383b){return{'name':_0x3e383b['fieldName'],'type':_0x3e383b[_0x0788('0x14')][_0x0788('0x15')]};});_0x3e0ad7[_0x0788('0x16')]=_[_0x0788('0x11')](_0xd5e0a6,_0x0788('0xf'));_0x3e0ad7[_0x0788('0x17')]=_[_0x0788('0x18')](_0xf82fbc['query']);_0x3e0ad7[_0x0788('0x19')]=_[_0x0788('0x1a')](_0x3e0ad7[_0x0788('0x16')],_0x3e0ad7[_0x0788('0x17')]);_0x3f0de9['attributes']=_['intersection'](_0x3e0ad7[_0x0788('0x16')],qs[_0x0788('0x1b')](_0xf82fbc['query'][_0x0788('0x1b')]));_0x3f0de9[_0x0788('0x1c')]=_0x3f0de9['attributes'][_0x0788('0x1d')]?_0x3f0de9[_0x0788('0x1c')]:_0x3e0ad7[_0x0788('0x16')];if(!_0xf82fbc[_0x0788('0x17')]['hasOwnProperty'](_0x0788('0x1e'))){_0x3f0de9['limit']=qs['limit'](_0xf82fbc[_0x0788('0x17')][_0x0788('0x9')]);_0x3f0de9[_0x0788('0x6')]=qs[_0x0788('0x6')](_0xf82fbc['query']['offset']);}_0x3f0de9['order']=qs[_0x0788('0x1f')](_0xf82fbc[_0x0788('0x17')]['sort']);_0x3f0de9[_0x0788('0x20')]=qs[_0x0788('0x19')](_['pick'](_0xf82fbc[_0x0788('0x17')],_0x3e0ad7['filters']),_0xd5e0a6);if(_0xf82fbc[_0x0788('0x17')]['filter']){_0x3f0de9[_0x0788('0x20')]=_[_0x0788('0x21')](_0x3f0de9[_0x0788('0x20')],{'$or':_['map'](_0xd5e0a6,function(_0x4e337c){if(_0x4e337c[_0x0788('0x14')]!==_0x0788('0x22')){var _0x10b0b6={};_0x10b0b6[_0x4e337c['name']]={'$like':'%'+_0xf82fbc[_0x0788('0x17')]['filter']+'%'};return _0x10b0b6;}})});}_0x3f0de9=_[_0x0788('0x21')]({},_0x3f0de9,_0xf82fbc[_0x0788('0x23')]);var _0x182219={'where':_0x3f0de9[_0x0788('0x20')]};return db[_0x0788('0x12')][_0x0788('0x8')](_0x182219)['then'](function(_0x2659be){_0x44be88[_0x0788('0x8')]=_0x2659be;if(_0xf82fbc[_0x0788('0x17')][_0x0788('0x24')]){_0x3f0de9[_0x0788('0x25')]=[{'attributes':['id',_0x0788('0xf'),_0x0788('0x26'),_0x0788('0x27')],'model':db[_0x0788('0x28')],'as':_0x0788('0x28')}];}return db[_0x0788('0x12')]['findAll'](_0x3f0de9);})[_0x0788('0xc')](function(_0x1226e8){_0x44be88[_0x0788('0x29')]=_0x1226e8;return _0x44be88;})[_0x0788('0xc')](respondWithFilteredResult(_0x5ce32d,_0x3f0de9))[_0x0788('0x2a')](handleError(_0x5ce32d,null));};exports[_0x0788('0x2b')]=function(_0x493758,_0x1da994){var _0x574d00={'raw':!![],'where':{'id':_0x493758[_0x0788('0x2c')]['id']}},_0x377ba1={};_0x377ba1[_0x0788('0x16')]=_['keys'](db[_0x0788('0x12')][_0x0788('0x13')]);_0x377ba1['query']=_[_0x0788('0x18')](_0x493758[_0x0788('0x17')]);_0x377ba1[_0x0788('0x19')]=_[_0x0788('0x1a')](_0x377ba1[_0x0788('0x16')],_0x377ba1[_0x0788('0x17')]);_0x574d00[_0x0788('0x1c')]=_[_0x0788('0x1a')](_0x377ba1['model'],qs[_0x0788('0x1b')](_0x493758[_0x0788('0x17')][_0x0788('0x1b')]));_0x574d00[_0x0788('0x1c')]=_0x574d00['attributes'][_0x0788('0x1d')]?_0x574d00[_0x0788('0x1c')]:_0x377ba1[_0x0788('0x16')];if(_0x493758[_0x0788('0x17')][_0x0788('0x24')]){_0x574d00['include']=[{'all':!![]}];}_0x574d00=_[_0x0788('0x21')]({},_0x574d00,_0x493758['options']);return db[_0x0788('0x12')]['find'](_0x574d00)['then'](handleEntityNotFound(_0x1da994,null))['then'](respondWithResult(_0x1da994,null))[_0x0788('0x2a')](handleError(_0x1da994,null));};exports[_0x0788('0x2d')]=function(_0x3e16a0,_0x463b62){return db[_0x0788('0x12')][_0x0788('0x2d')](_0x3e16a0[_0x0788('0x2e')],{})[_0x0788('0xc')](respondWithResult(_0x463b62,0xc9))[_0x0788('0x2a')](handleError(_0x463b62,null));};exports[_0x0788('0x2f')]=function(_0x35b018,_0x267554){return db[_0x0788('0x12')][_0x0788('0x30')]({'where':{'id':_0x35b018[_0x0788('0x2c')]['id']}})[_0x0788('0xc')](handleEntityNotFound(_0x267554,null))[_0x0788('0xc')](removeEntity(_0x267554,null))[_0x0788('0x2a')](handleError(_0x267554,null));};exports[_0x0788('0x31')]=function(_0x35ca95,_0x4495da){return db['VoiceCallReport'][_0x0788('0x31')]()[_0x0788('0xc')](respondWithResult(_0x4495da,null))[_0x0788('0x2a')](handleError(_0x4495da,null));};function findForUpdate(_0x197d12){return db['VoiceCallReport']['find']({'where':{'uniqueid':_0x197d12[_0x0788('0x2c')]['id'],'UserId':{'$or':[null,_0x197d12[_0x0788('0x32')]['id']]}}});}exports[_0x0788('0xb')]=function(_0x473c52,_0x166c16){if(_0x473c52[_0x0788('0x2e')][_0x0788('0x33')]){delete _0x473c52[_0x0788('0x2e')]['uniqueid'];}return findForUpdate(_0x473c52)[_0x0788('0xc')](handleEntityNotFound(_0x166c16,null))[_0x0788('0xc')](saveUpdates(_0x473c52[_0x0788('0x2e')],null))['then'](respondWithResult(_0x166c16,null))['catch'](handleError(_0x166c16,null));};exports[_0x0788('0x34')]=function(_0x16b510,_0x111b13,_0x5d3be7){if(_0x16b510['body'][_0x0788('0x33')]){delete _0x16b510[_0x0788('0x2e')][_0x0788('0x33')];}promiseRetry(function(_0x31aa04){return findForUpdate(_0x16b510)[_0x0788('0xc')](function(_0x51ae93){if(_0x51ae93!==null){return _0x51ae93;}else{_0x31aa04(new Error(_0x0788('0x35')));}});},{'retries':0x4,'minTimeout':0xfa})['then'](function(_0x2c12b3){if(!_0x2c12b3){return new Promise(function(_0x1d64ec){_0x1d64ec(handleEntityNotFound(_0x111b13)());});}else{return _0x2c12b3[_0x0788('0xb')](_0x16b510['body'])['then'](function(_0x2731fd){return respondWithResult(_0x111b13)(_0x2731fd);});}},function(){handleEntityNotFound(_0x111b13)();});};