ffcd038dea82f3dbacd89f0965038082fbd53994
[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 _0xe3b3=['alias','User','VoiceCallReport','findAll','rows','catch','show','params','options','find','create','body','describe','user','uniqueid','lodash','../../components/parsers/qs','../../config/logger','api','../../mysqldb','promise-retry','status','offset','undefined','limit','count','set','Content-Range','json','update','then','destroy','end','sendStatus','error','send','index','map','rawAttributes','fieldName','type','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','sort','filters','pick','filter','where','VIRTUAL','name','merge','includeAll','include','fullname'];(function(_0x4709c0,_0x3396c7){var _0x13348b=function(_0x426235){while(--_0x426235){_0x4709c0['push'](_0x4709c0['shift']());}};_0x13348b(++_0x3396c7);}(_0xe3b3,0x1b3));var _0x3e3b=function(_0xec4748,_0x326f0a){_0xec4748=_0xec4748-0x0;var _0x61bd60=_0xe3b3[_0xec4748];return _0x61bd60;};'use strict';var _=require(_0x3e3b('0x0'));var qs=require(_0x3e3b('0x1'));var logger=require(_0x3e3b('0x2'))(_0x3e3b('0x3'));var db=require(_0x3e3b('0x4'))['db'];const promiseRetry=require(_0x3e3b('0x5'));function respondWithResult(_0x1e813f,_0x4d1684){_0x4d1684=_0x4d1684||0xc8;return function(_0xcfab31){if(_0xcfab31){return _0x1e813f[_0x3e3b('0x6')](_0x4d1684)['json'](_0xcfab31);}};}function respondWithFilteredResult(_0xa2e5c6,_0x3fd79a){return function(_0x410458){if(_0x410458){var _0x57c8f9=typeof _0x3fd79a[_0x3e3b('0x7')]===_0x3e3b('0x8')&&typeof _0x3fd79a[_0x3e3b('0x9')]===_0x3e3b('0x8');var _0x7a1a4e=_0x410458[_0x3e3b('0xa')];var _0x214205=_0x57c8f9?0x0:_0x3fd79a[_0x3e3b('0x7')];var _0x2d4664=_0x57c8f9?_0x410458['count']:_0x3fd79a[_0x3e3b('0x7')]+_0x3fd79a['limit'];var _0x3c9a90;if(_0x2d4664>=_0x7a1a4e){_0x2d4664=_0x7a1a4e;_0x3c9a90=0xc8;}else{_0x3c9a90=0xce;}_0xa2e5c6[_0x3e3b('0x6')](_0x3c9a90);return _0xa2e5c6[_0x3e3b('0xb')](_0x3e3b('0xc'),_0x214205+'-'+_0x2d4664+'/'+_0x7a1a4e)[_0x3e3b('0xd')](_0x410458);}return null;};}function saveUpdates(_0x32a679){return function(_0x1ae7a6){if(_0x1ae7a6){return _0x1ae7a6[_0x3e3b('0xe')](_0x32a679)[_0x3e3b('0xf')](function(_0x400423){return _0x400423;});}return null;};}function removeEntity(_0xd98377){return function(_0x404a2d){if(_0x404a2d){return _0x404a2d[_0x3e3b('0x10')]()[_0x3e3b('0xf')](function(){_0xd98377[_0x3e3b('0x6')](0xcc)[_0x3e3b('0x11')]();});}};}function handleEntityNotFound(_0x40450a){return function(_0x4fffd3){if(!_0x4fffd3){_0x40450a[_0x3e3b('0x12')](0x194);}return _0x4fffd3;};}function handleError(_0x537e66,_0x45f5d5){_0x45f5d5=_0x45f5d5||0x1f4;return function(_0x17044d){logger[_0x3e3b('0x13')](_0x17044d['stack']);if(_0x17044d['name']){delete _0x17044d['name'];}_0x537e66[_0x3e3b('0x6')](_0x45f5d5)[_0x3e3b('0x14')](_0x17044d);};}exports[_0x3e3b('0x15')]=function(_0x35fc4e,_0x3b1573){var _0x1cd81d={},_0x375624={},_0x42d031={'count':0x0,'rows':[]};var _0x4f4799=_[_0x3e3b('0x16')](db['VoiceCallReport'][_0x3e3b('0x17')],function(_0x1eb56f){return{'name':_0x1eb56f[_0x3e3b('0x18')],'type':_0x1eb56f[_0x3e3b('0x19')]['key']};});_0x375624[_0x3e3b('0x1a')]=_[_0x3e3b('0x16')](_0x4f4799,'name');_0x375624[_0x3e3b('0x1b')]=_[_0x3e3b('0x1c')](_0x35fc4e['query']);_0x375624['filters']=_[_0x3e3b('0x1d')](_0x375624[_0x3e3b('0x1a')],_0x375624[_0x3e3b('0x1b')]);_0x1cd81d[_0x3e3b('0x1e')]=_[_0x3e3b('0x1d')](_0x375624[_0x3e3b('0x1a')],qs[_0x3e3b('0x1f')](_0x35fc4e[_0x3e3b('0x1b')][_0x3e3b('0x1f')]));_0x1cd81d[_0x3e3b('0x1e')]=_0x1cd81d[_0x3e3b('0x1e')][_0x3e3b('0x20')]?_0x1cd81d[_0x3e3b('0x1e')]:_0x375624[_0x3e3b('0x1a')];if(!_0x35fc4e[_0x3e3b('0x1b')][_0x3e3b('0x21')]('nolimit')){_0x1cd81d[_0x3e3b('0x9')]=qs[_0x3e3b('0x9')](_0x35fc4e[_0x3e3b('0x1b')]['limit']);_0x1cd81d[_0x3e3b('0x7')]=qs['offset'](_0x35fc4e[_0x3e3b('0x1b')]['offset']);}_0x1cd81d['order']=qs[_0x3e3b('0x22')](_0x35fc4e[_0x3e3b('0x1b')][_0x3e3b('0x22')]);_0x1cd81d['where']=qs[_0x3e3b('0x23')](_[_0x3e3b('0x24')](_0x35fc4e['query'],_0x375624[_0x3e3b('0x23')]),_0x4f4799);if(_0x35fc4e[_0x3e3b('0x1b')][_0x3e3b('0x25')]){_0x1cd81d[_0x3e3b('0x26')]=_['merge'](_0x1cd81d[_0x3e3b('0x26')],{'$or':_[_0x3e3b('0x16')](_0x4f4799,function(_0x17c41a){if(_0x17c41a[_0x3e3b('0x19')]!==_0x3e3b('0x27')){var _0x534968={};_0x534968[_0x17c41a[_0x3e3b('0x28')]]={'$like':'%'+_0x35fc4e['query'][_0x3e3b('0x25')]+'%'};return _0x534968;}})});}_0x1cd81d=_[_0x3e3b('0x29')]({},_0x1cd81d,_0x35fc4e['options']);var _0x2c65f7={'where':_0x1cd81d[_0x3e3b('0x26')]};return db['VoiceCallReport'][_0x3e3b('0xa')](_0x2c65f7)['then'](function(_0x16302d){_0x42d031[_0x3e3b('0xa')]=_0x16302d;if(_0x35fc4e[_0x3e3b('0x1b')][_0x3e3b('0x2a')]){_0x1cd81d[_0x3e3b('0x2b')]=[{'attributes':['id',_0x3e3b('0x28'),_0x3e3b('0x2c'),_0x3e3b('0x2d')],'model':db['User'],'as':_0x3e3b('0x2e')}];}return db[_0x3e3b('0x2f')][_0x3e3b('0x30')](_0x1cd81d);})['then'](function(_0x482d2b){_0x42d031[_0x3e3b('0x31')]=_0x482d2b;return _0x42d031;})[_0x3e3b('0xf')](respondWithFilteredResult(_0x3b1573,_0x1cd81d))[_0x3e3b('0x32')](handleError(_0x3b1573,null));};exports[_0x3e3b('0x33')]=function(_0x1514a2,_0x156b7a){var _0x33a599={'raw':!![],'where':{'id':_0x1514a2[_0x3e3b('0x34')]['id']}},_0x189c21={};_0x189c21['model']=_[_0x3e3b('0x1c')](db['VoiceCallReport'][_0x3e3b('0x17')]);_0x189c21[_0x3e3b('0x1b')]=_[_0x3e3b('0x1c')](_0x1514a2[_0x3e3b('0x1b')]);_0x189c21['filters']=_[_0x3e3b('0x1d')](_0x189c21[_0x3e3b('0x1a')],_0x189c21[_0x3e3b('0x1b')]);_0x33a599[_0x3e3b('0x1e')]=_[_0x3e3b('0x1d')](_0x189c21[_0x3e3b('0x1a')],qs[_0x3e3b('0x1f')](_0x1514a2[_0x3e3b('0x1b')][_0x3e3b('0x1f')]));_0x33a599['attributes']=_0x33a599['attributes'][_0x3e3b('0x20')]?_0x33a599[_0x3e3b('0x1e')]:_0x189c21[_0x3e3b('0x1a')];if(_0x1514a2[_0x3e3b('0x1b')][_0x3e3b('0x2a')]){_0x33a599['include']=[{'all':!![]}];}_0x33a599=_[_0x3e3b('0x29')]({},_0x33a599,_0x1514a2[_0x3e3b('0x35')]);return db[_0x3e3b('0x2f')][_0x3e3b('0x36')](_0x33a599)[_0x3e3b('0xf')](handleEntityNotFound(_0x156b7a,null))[_0x3e3b('0xf')](respondWithResult(_0x156b7a,null))[_0x3e3b('0x32')](handleError(_0x156b7a,null));};exports[_0x3e3b('0x37')]=function(_0x1b032a,_0xba3b07){return db[_0x3e3b('0x2f')][_0x3e3b('0x37')](_0x1b032a[_0x3e3b('0x38')],{})[_0x3e3b('0xf')](respondWithResult(_0xba3b07,0xc9))[_0x3e3b('0x32')](handleError(_0xba3b07,null));};exports[_0x3e3b('0x10')]=function(_0x1b0b8a,_0x5a2148){return db[_0x3e3b('0x2f')][_0x3e3b('0x36')]({'where':{'id':_0x1b0b8a[_0x3e3b('0x34')]['id']}})[_0x3e3b('0xf')](handleEntityNotFound(_0x5a2148,null))[_0x3e3b('0xf')](removeEntity(_0x5a2148,null))[_0x3e3b('0x32')](handleError(_0x5a2148,null));};exports[_0x3e3b('0x39')]=function(_0x505312,_0x913b5a){return db['VoiceCallReport'][_0x3e3b('0x39')]()['then'](respondWithResult(_0x913b5a,null))[_0x3e3b('0x32')](handleError(_0x913b5a,null));};function findForUpdate(_0x370057){return db[_0x3e3b('0x2f')][_0x3e3b('0x36')]({'where':{'uniqueid':_0x370057[_0x3e3b('0x34')]['id'],'UserId':{'$or':[null,_0x370057[_0x3e3b('0x3a')]['id']]}}});}exports['update']=function(_0xb68a70,_0x2f7178){if(_0xb68a70[_0x3e3b('0x38')]['uniqueid']){delete _0xb68a70[_0x3e3b('0x38')]['uniqueid'];}return findForUpdate(_0xb68a70)[_0x3e3b('0xf')](handleEntityNotFound(_0x2f7178,null))['then'](saveUpdates(_0xb68a70[_0x3e3b('0x38')],null))[_0x3e3b('0xf')](respondWithResult(_0x2f7178,null))[_0x3e3b('0x32')](handleError(_0x2f7178,null));};exports['updateWithRetry']=function(_0x56da04,_0x61813d,_0x293266){if(_0x56da04[_0x3e3b('0x38')][_0x3e3b('0x3b')]){delete _0x56da04[_0x3e3b('0x38')][_0x3e3b('0x3b')];}promiseRetry(function(_0x2139a6){return findForUpdate(_0x56da04)[_0x3e3b('0xf')](function(_0x13830e){if(_0x13830e!==null){return _0x13830e;}else{_0x2139a6(new Error('No\x20such\x20report'));}});},{'retries':0x4,'minTimeout':0xfa})[_0x3e3b('0xf')](function(_0x4cba4e){if(!_0x4cba4e){return new Promise(function(_0x276ba2){_0x276ba2(handleEntityNotFound(_0x61813d)());});}else{return _0x4cba4e[_0x3e3b('0xe')](_0x56da04['body'])['then'](function(_0x5616fe){return respondWithResult(_0x61813d)(_0x5616fe);});}},function(){handleEntityNotFound(_0x61813d)();});};