d9b1b1a1d346c7830a19985d9fc3bd30b056ed1f
[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 _0xba37=['options','User','findAll','rows','catch','show','length','includeAll','create','body','find','params','describe','user','uniqueid','updateWithRetry','No\x20such\x20report','lodash','../../config/logger','../../mysqldb','status','json','offset','undefined','count','limit','set','Content-Range','update','then','destroy','end','sendStatus','name','send','index','map','VoiceCallReport','rawAttributes','type','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge'];(function(_0x46cb21,_0x482f03){var _0x6dc6dc=function(_0x56e557){while(--_0x56e557){_0x46cb21['push'](_0x46cb21['shift']());}};_0x6dc6dc(++_0x482f03);}(_0xba37,0xb6));var _0x7ba3=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0xba37[_0x4a9fb1];return _0x348672;};'use strict';var _=require(_0x7ba3('0x0'));var qs=require('../../components/parsers/qs');var logger=require(_0x7ba3('0x1'))('api');var db=require(_0x7ba3('0x2'))['db'];const promiseRetry=require('promise-retry');function respondWithResult(_0x543868,_0x413255){_0x413255=_0x413255||0xc8;return function(_0x318802){if(_0x318802){return _0x543868[_0x7ba3('0x3')](_0x413255)[_0x7ba3('0x4')](_0x318802);}};}function respondWithFilteredResult(_0x58b96a,_0x401c33){return function(_0x47b38c){if(_0x47b38c){var _0x4b4052=typeof _0x401c33[_0x7ba3('0x5')]===_0x7ba3('0x6')&&typeof _0x401c33['limit']===_0x7ba3('0x6');var _0x3dd81e=_0x47b38c[_0x7ba3('0x7')];var _0x108326=_0x4b4052?0x0:_0x401c33[_0x7ba3('0x5')];var _0x1da57b=_0x4b4052?_0x47b38c[_0x7ba3('0x7')]:_0x401c33[_0x7ba3('0x5')]+_0x401c33[_0x7ba3('0x8')];var _0x5cc931;if(_0x1da57b>=_0x3dd81e){_0x1da57b=_0x3dd81e;_0x5cc931=0xc8;}else{_0x5cc931=0xce;}_0x58b96a[_0x7ba3('0x3')](_0x5cc931);return _0x58b96a[_0x7ba3('0x9')](_0x7ba3('0xa'),_0x108326+'-'+_0x1da57b+'/'+_0x3dd81e)[_0x7ba3('0x4')](_0x47b38c);}return null;};}function saveUpdates(_0x4b038c){return function(_0x21bdf2){if(_0x21bdf2){return _0x21bdf2[_0x7ba3('0xb')](_0x4b038c)[_0x7ba3('0xc')](function(_0x349a18){return _0x349a18;});}return null;};}function removeEntity(_0x28c94a){return function(_0x2b26de){if(_0x2b26de){return _0x2b26de[_0x7ba3('0xd')]()['then'](function(){_0x28c94a[_0x7ba3('0x3')](0xcc)[_0x7ba3('0xe')]();});}};}function handleEntityNotFound(_0x1f9b6f){return function(_0x3346fd){if(!_0x3346fd){_0x1f9b6f[_0x7ba3('0xf')](0x194);}return _0x3346fd;};}function handleError(_0x3dc7fb,_0x1b678f){_0x1b678f=_0x1b678f||0x1f4;return function(_0x10afdd){logger['error'](_0x10afdd['stack']);if(_0x10afdd[_0x7ba3('0x10')]){delete _0x10afdd[_0x7ba3('0x10')];}_0x3dc7fb[_0x7ba3('0x3')](_0x1b678f)[_0x7ba3('0x11')](_0x10afdd);};}exports[_0x7ba3('0x12')]=function(_0x5e41f0,_0x3e8a79){var _0x3081e3={},_0x53c137={},_0x10e965={'count':0x0,'rows':[]};var _0x5039b5=_[_0x7ba3('0x13')](db[_0x7ba3('0x14')][_0x7ba3('0x15')],function(_0x549016){return{'name':_0x549016['fieldName'],'type':_0x549016[_0x7ba3('0x16')]['key']};});_0x53c137[_0x7ba3('0x17')]=_['map'](_0x5039b5,_0x7ba3('0x10'));_0x53c137['query']=_[_0x7ba3('0x18')](_0x5e41f0[_0x7ba3('0x19')]);_0x53c137[_0x7ba3('0x1a')]=_[_0x7ba3('0x1b')](_0x53c137[_0x7ba3('0x17')],_0x53c137[_0x7ba3('0x19')]);_0x3081e3[_0x7ba3('0x1c')]=_[_0x7ba3('0x1b')](_0x53c137['model'],qs[_0x7ba3('0x1d')](_0x5e41f0[_0x7ba3('0x19')][_0x7ba3('0x1d')]));_0x3081e3[_0x7ba3('0x1c')]=_0x3081e3['attributes']['length']?_0x3081e3['attributes']:_0x53c137['model'];if(!_0x5e41f0['query'][_0x7ba3('0x1e')](_0x7ba3('0x1f'))){_0x3081e3['limit']=qs['limit'](_0x5e41f0[_0x7ba3('0x19')]['limit']);_0x3081e3['offset']=qs[_0x7ba3('0x5')](_0x5e41f0[_0x7ba3('0x19')][_0x7ba3('0x5')]);}_0x3081e3[_0x7ba3('0x20')]=qs[_0x7ba3('0x21')](_0x5e41f0[_0x7ba3('0x19')][_0x7ba3('0x21')]);_0x3081e3[_0x7ba3('0x22')]=qs[_0x7ba3('0x1a')](_[_0x7ba3('0x23')](_0x5e41f0['query'],_0x53c137[_0x7ba3('0x1a')]),_0x5039b5);if(_0x5e41f0['query'][_0x7ba3('0x24')]){_0x3081e3['where']=_['merge'](_0x3081e3['where'],{'$or':_[_0x7ba3('0x13')](_0x5039b5,function(_0x136604){if(_0x136604['type']!=='VIRTUAL'){var _0x175aa5={};_0x175aa5[_0x136604['name']]={'$like':'%'+_0x5e41f0[_0x7ba3('0x19')]['filter']+'%'};return _0x175aa5;}})});}_0x3081e3=_[_0x7ba3('0x25')]({},_0x3081e3,_0x5e41f0[_0x7ba3('0x26')]);var _0x29adfd={'where':_0x3081e3[_0x7ba3('0x22')]};return db[_0x7ba3('0x14')][_0x7ba3('0x7')](_0x29adfd)[_0x7ba3('0xc')](function(_0x222b4a){_0x10e965[_0x7ba3('0x7')]=_0x222b4a;if(_0x5e41f0[_0x7ba3('0x19')]['includeAll']){_0x3081e3['include']=[{'attributes':['id',_0x7ba3('0x10'),'fullname','alias'],'model':db[_0x7ba3('0x27')],'as':_0x7ba3('0x27')}];}return db[_0x7ba3('0x14')][_0x7ba3('0x28')](_0x3081e3);})[_0x7ba3('0xc')](function(_0x4f1f41){_0x10e965[_0x7ba3('0x29')]=_0x4f1f41;return _0x10e965;})['then'](respondWithFilteredResult(_0x3e8a79,_0x3081e3))[_0x7ba3('0x2a')](handleError(_0x3e8a79,null));};exports[_0x7ba3('0x2b')]=function(_0x115522,_0x42c500){var _0x3496a0={'raw':!![],'where':{'id':_0x115522['params']['id']}},_0x2865f2={};_0x2865f2[_0x7ba3('0x17')]=_[_0x7ba3('0x18')](db[_0x7ba3('0x14')][_0x7ba3('0x15')]);_0x2865f2[_0x7ba3('0x19')]=_[_0x7ba3('0x18')](_0x115522[_0x7ba3('0x19')]);_0x2865f2[_0x7ba3('0x1a')]=_[_0x7ba3('0x1b')](_0x2865f2[_0x7ba3('0x17')],_0x2865f2['query']);_0x3496a0[_0x7ba3('0x1c')]=_[_0x7ba3('0x1b')](_0x2865f2['model'],qs['fields'](_0x115522[_0x7ba3('0x19')][_0x7ba3('0x1d')]));_0x3496a0['attributes']=_0x3496a0[_0x7ba3('0x1c')][_0x7ba3('0x2c')]?_0x3496a0[_0x7ba3('0x1c')]:_0x2865f2['model'];if(_0x115522[_0x7ba3('0x19')][_0x7ba3('0x2d')]){_0x3496a0['include']=[{'all':!![]}];}_0x3496a0=_[_0x7ba3('0x25')]({},_0x3496a0,_0x115522[_0x7ba3('0x26')]);return db['VoiceCallReport']['find'](_0x3496a0)['then'](handleEntityNotFound(_0x42c500,null))[_0x7ba3('0xc')](respondWithResult(_0x42c500,null))[_0x7ba3('0x2a')](handleError(_0x42c500,null));};exports[_0x7ba3('0x2e')]=function(_0x1af72e,_0x1e1c2b){return db[_0x7ba3('0x14')]['create'](_0x1af72e[_0x7ba3('0x2f')],{})['then'](respondWithResult(_0x1e1c2b,0xc9))[_0x7ba3('0x2a')](handleError(_0x1e1c2b,null));};exports[_0x7ba3('0xd')]=function(_0x5a15fa,_0x5ed5e8){return db[_0x7ba3('0x14')][_0x7ba3('0x30')]({'where':{'id':_0x5a15fa[_0x7ba3('0x31')]['id']}})[_0x7ba3('0xc')](handleEntityNotFound(_0x5ed5e8,null))[_0x7ba3('0xc')](removeEntity(_0x5ed5e8,null))['catch'](handleError(_0x5ed5e8,null));};exports[_0x7ba3('0x32')]=function(_0x443ac4,_0xc59ee0){return db['VoiceCallReport'][_0x7ba3('0x32')]()[_0x7ba3('0xc')](respondWithResult(_0xc59ee0,null))['catch'](handleError(_0xc59ee0,null));};function findForUpdate(_0x1bca0f){return db[_0x7ba3('0x14')][_0x7ba3('0x30')]({'where':{'uniqueid':_0x1bca0f['params']['id'],'UserId':{'$or':[null,_0x1bca0f[_0x7ba3('0x33')]['id']]}}});}exports[_0x7ba3('0xb')]=function(_0x4ff91a,_0xc57b6d){if(_0x4ff91a[_0x7ba3('0x2f')][_0x7ba3('0x34')]){delete _0x4ff91a[_0x7ba3('0x2f')][_0x7ba3('0x34')];}return findForUpdate(_0x4ff91a)[_0x7ba3('0xc')](handleEntityNotFound(_0xc57b6d,null))['then'](saveUpdates(_0x4ff91a[_0x7ba3('0x2f')],null))['then'](respondWithResult(_0xc57b6d,null))[_0x7ba3('0x2a')](handleError(_0xc57b6d,null));};exports[_0x7ba3('0x35')]=function(_0x31f211,_0x584a9b,_0xc7edfb){if(_0x31f211[_0x7ba3('0x2f')]['uniqueid']){delete _0x31f211[_0x7ba3('0x2f')][_0x7ba3('0x34')];}promiseRetry(function(_0x32abcb){return findForUpdate(_0x31f211)[_0x7ba3('0xc')](function(_0xb6dcbe){if(_0xb6dcbe!==null){return _0xb6dcbe;}else{_0x32abcb(new Error(_0x7ba3('0x36')));}});},{'retries':0x4,'minTimeout':0xfa})[_0x7ba3('0xc')](function(_0x37c19a){if(!_0x37c19a){return new Promise(function(_0x37c79a){_0x37c79a(handleEntityNotFound(_0x584a9b)());});}else{return _0x37c19a[_0x7ba3('0xb')](_0x31f211[_0x7ba3('0x2f')])[_0x7ba3('0xc')](function(_0x57f825){return respondWithResult(_0x584a9b)(_0x57f825);});}},function(){handleEntityNotFound(_0x584a9b)();});};