19eecbf2e4d78d00719ef920e5c8b3d536b3e32e
[motion2.git] / server / api / cdr / cdr.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 _0x6e0b=['querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','end','status','json','count','offset','limit','set','Content-Range','save','update','then','destroy','error','stack','name','index','map','Cdr','rawAttributes','fieldName','key','keys','query','filters','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','merge','type','VIRTUAL','options','includeAll','include','rows','catch','intersection','create','body','find','params','describe','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','path','sox','ejs','lodash','squel','crypto','jsforce','to-csv'];(function(_0xeeb156,_0x5392f4){var _0x4b7c74=function(_0x5705bb){while(--_0x5705bb){_0xeeb156['push'](_0xeeb156['shift']());}};_0x4b7c74(++_0x5392f4);}(_0x6e0b,0x10a));var _0xb6e0=function(_0x53ccf2,_0x13cb67){_0x53ccf2=_0x53ccf2-0x0;var _0x5a2964=_0x6e0b[_0x53ccf2];return _0x5a2964;};'use strict';var pdf=require(_0xb6e0('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xb6e0('0x1'));var zipdir=require(_0xb6e0('0x2'));var jsonpatch=require(_0xb6e0('0x3'));var rp=require(_0xb6e0('0x4'));var moment=require('moment');var BPromise=require(_0xb6e0('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0xb6e0('0x6'));var sox=require(_0xb6e0('0x7'));var csv=require('to-csv');var ejs=require(_0xb6e0('0x8'));var fs=require('fs');var _=require(_0xb6e0('0x9'));var squel=require(_0xb6e0('0xa'));var crypto=require(_0xb6e0('0xb'));var jsforce=require(_0xb6e0('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xb6e0('0xd'));var querystring=require(_0xb6e0('0xe'));var Papa=require('papaparse');var Redis=require(_0xb6e0('0xf'));var authService=require(_0xb6e0('0x10'));var qs=require(_0xb6e0('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xb6e0('0x12'))(_0xb6e0('0x13'));var utils=require(_0xb6e0('0x14'));var config=require('../../config/environment');var db=require(_0xb6e0('0x15'))['db'];function respondWithStatusCode(_0xb264ed,_0x39e127){_0x39e127=_0x39e127||0xcc;return function(_0x29624a){if(_0x29624a){return _0xb264ed[_0xb6e0('0x16')](_0x39e127);}return _0xb264ed['status'](_0x39e127)[_0xb6e0('0x17')]();};}function respondWithResult(_0x320ed5,_0xdfae9b){_0xdfae9b=_0xdfae9b||0xc8;return function(_0xe34546){if(_0xe34546){return _0x320ed5[_0xb6e0('0x18')](_0xdfae9b)[_0xb6e0('0x19')](_0xe34546);}};}function respondWithFilteredResult(_0x2220ef,_0xd84e54){return function(_0x514b07){if(_0x514b07){var _0x1604b8=_0x514b07[_0xb6e0('0x1a')],_0x5ba9a1=_0xd84e54[_0xb6e0('0x1b')],_0x1d2425=_0xd84e54['offset']+_0xd84e54[_0xb6e0('0x1c')],_0x45f01d;if(_0x1d2425>=_0x1604b8){_0x1d2425=_0x1604b8;_0x45f01d=0xc8;}else{_0x45f01d=0xce;}_0x2220ef[_0xb6e0('0x18')](_0x45f01d);return _0x2220ef[_0xb6e0('0x1d')](_0xb6e0('0x1e'),_0x5ba9a1+'-'+_0x1d2425+'/'+_0x1604b8)[_0xb6e0('0x19')](_0x514b07);}return null;};}function patchUpdates(_0x45bc8f){return function(_0x27dbb6){try{jsonpatch['apply'](_0x27dbb6,_0x45bc8f,!![]);}catch(_0x383398){return BPromise['reject'](_0x383398);}return _0x27dbb6[_0xb6e0('0x1f')]();};}function saveUpdates(_0x4c5914,_0x2ca033){return function(_0x18ec8c){if(_0x18ec8c){return _0x18ec8c[_0xb6e0('0x20')](_0x4c5914)[_0xb6e0('0x21')](function(_0x5227dd){return _0x5227dd;});}return null;};}function removeEntity(_0x470a43,_0x38bf77){return function(_0x4488e5){if(_0x4488e5){return _0x4488e5[_0xb6e0('0x22')]()[_0xb6e0('0x21')](function(){_0x470a43[_0xb6e0('0x18')](0xcc)[_0xb6e0('0x17')]();});}};}function handleEntityNotFound(_0x3f0eb3,_0x92c927){return function(_0x2075cb){if(!_0x2075cb){_0x3f0eb3[_0xb6e0('0x16')](0x194);}return _0x2075cb;};}function handleError(_0x2c8a8f,_0x1f0d7d){_0x1f0d7d=_0x1f0d7d||0x1f4;return function(_0x4ae605){logger[_0xb6e0('0x23')](_0x4ae605[_0xb6e0('0x24')]);if(_0x4ae605[_0xb6e0('0x25')]){delete _0x4ae605['name'];}_0x2c8a8f[_0xb6e0('0x18')](_0x1f0d7d)['send'](_0x4ae605);};}exports[_0xb6e0('0x26')]=function(_0x37108f,_0x315fd9){var _0x36e243={},_0x131f89={},_0x3ca48c={'count':0x0,'rows':[]};var _0x58d272=_[_0xb6e0('0x27')](db[_0xb6e0('0x28')][_0xb6e0('0x29')],function(_0x5c639b){return{'name':_0x5c639b[_0xb6e0('0x2a')],'type':_0x5c639b['type'][_0xb6e0('0x2b')]};});_0x131f89['model']=_[_0xb6e0('0x27')](_0x58d272,_0xb6e0('0x25'));_0x131f89['query']=_[_0xb6e0('0x2c')](_0x37108f[_0xb6e0('0x2d')]);_0x131f89[_0xb6e0('0x2e')]=_['intersection'](_0x131f89[_0xb6e0('0x2f')],_0x131f89['query']);_0x36e243[_0xb6e0('0x30')]=_['intersection'](_0x131f89[_0xb6e0('0x2f')],qs[_0xb6e0('0x31')](_0x37108f[_0xb6e0('0x2d')][_0xb6e0('0x31')]));_0x36e243[_0xb6e0('0x30')]=_0x36e243[_0xb6e0('0x30')][_0xb6e0('0x32')]?_0x36e243[_0xb6e0('0x30')]:_0x131f89['model'];if(!_0x37108f[_0xb6e0('0x2d')][_0xb6e0('0x33')](_0xb6e0('0x34'))){_0x36e243[_0xb6e0('0x1c')]=qs['limit'](_0x37108f[_0xb6e0('0x2d')][_0xb6e0('0x1c')]);_0x36e243[_0xb6e0('0x1b')]=qs[_0xb6e0('0x1b')](_0x37108f[_0xb6e0('0x2d')][_0xb6e0('0x1b')]);}_0x36e243[_0xb6e0('0x35')]=qs[_0xb6e0('0x36')](_0x37108f[_0xb6e0('0x2d')][_0xb6e0('0x36')]);_0x36e243['where']=qs['filters'](_['pick'](_0x37108f[_0xb6e0('0x2d')],_0x131f89['filters']),_0x58d272);if(_0x37108f[_0xb6e0('0x2d')]['filter']){_0x36e243[_0xb6e0('0x37')]=_[_0xb6e0('0x38')](_0x36e243[_0xb6e0('0x37')],{'$or':_[_0xb6e0('0x27')](_0x58d272,function(_0x47afbc){if(_0x47afbc[_0xb6e0('0x39')]!==_0xb6e0('0x3a')){var _0x166da4={};_0x166da4[_0x47afbc[_0xb6e0('0x25')]]={'$like':'%'+_0x37108f[_0xb6e0('0x2d')]['filter']+'%'};return _0x166da4;}})});}_0x36e243=_[_0xb6e0('0x38')]({},_0x36e243,_0x37108f[_0xb6e0('0x3b')]);var _0x29e081={'where':_0x36e243[_0xb6e0('0x37')]};return db[_0xb6e0('0x28')][_0xb6e0('0x1a')](_0x29e081)[_0xb6e0('0x21')](function(_0x4e77f7){_0x3ca48c[_0xb6e0('0x1a')]=_0x4e77f7;if(_0x37108f[_0xb6e0('0x2d')][_0xb6e0('0x3c')]){_0x36e243[_0xb6e0('0x3d')]=[{'all':!![]}];}return db[_0xb6e0('0x28')]['findAll'](_0x36e243);})['then'](function(_0x1e90d5){_0x3ca48c[_0xb6e0('0x3e')]=_0x1e90d5;return _0x3ca48c;})[_0xb6e0('0x21')](respondWithFilteredResult(_0x315fd9,_0x36e243))[_0xb6e0('0x3f')](handleError(_0x315fd9,null));};exports['show']=function(_0x48cf96,_0x52efcd){var _0x4fd329={'raw':!![],'where':{'id':_0x48cf96['params']['id']}},_0x566176={};_0x566176[_0xb6e0('0x2f')]=_[_0xb6e0('0x2c')](db[_0xb6e0('0x28')][_0xb6e0('0x29')]);_0x566176[_0xb6e0('0x2d')]=_[_0xb6e0('0x2c')](_0x48cf96[_0xb6e0('0x2d')]);_0x566176[_0xb6e0('0x2e')]=_[_0xb6e0('0x40')](_0x566176[_0xb6e0('0x2f')],_0x566176['query']);_0x4fd329['attributes']=_[_0xb6e0('0x40')](_0x566176[_0xb6e0('0x2f')],qs[_0xb6e0('0x31')](_0x48cf96[_0xb6e0('0x2d')]['fields']));_0x4fd329[_0xb6e0('0x30')]=_0x4fd329[_0xb6e0('0x30')][_0xb6e0('0x32')]?_0x4fd329['attributes']:_0x566176[_0xb6e0('0x2f')];if(_0x48cf96[_0xb6e0('0x2d')][_0xb6e0('0x3c')]){_0x4fd329['include']=[{'all':!![]}];}_0x4fd329=_['merge']({},_0x4fd329,_0x48cf96[_0xb6e0('0x3b')]);return db[_0xb6e0('0x28')]['find'](_0x4fd329)[_0xb6e0('0x21')](handleEntityNotFound(_0x52efcd,null))[_0xb6e0('0x21')](respondWithResult(_0x52efcd,null))[_0xb6e0('0x3f')](handleError(_0x52efcd,null));};exports[_0xb6e0('0x41')]=function(_0x177b2f,_0x3a1f7e){return db[_0xb6e0('0x28')][_0xb6e0('0x41')](_0x177b2f[_0xb6e0('0x42')],{})['then'](respondWithResult(_0x3a1f7e,0xc9))[_0xb6e0('0x3f')](handleError(_0x3a1f7e,null));};exports['update']=function(_0x2a441b,_0x327af0){if(_0x2a441b[_0xb6e0('0x42')]['id']){delete _0x2a441b['body']['id'];}return db[_0xb6e0('0x28')]['find']({'where':{'id':_0x2a441b['params']['id']}})['then'](handleEntityNotFound(_0x327af0,null))[_0xb6e0('0x21')](saveUpdates(_0x2a441b[_0xb6e0('0x42')],null))[_0xb6e0('0x21')](respondWithResult(_0x327af0,null))[_0xb6e0('0x3f')](handleError(_0x327af0,null));};exports[_0xb6e0('0x22')]=function(_0x1b3cab,_0x569726){return db[_0xb6e0('0x28')][_0xb6e0('0x43')]({'where':{'id':_0x1b3cab[_0xb6e0('0x44')]['id']}})[_0xb6e0('0x21')](handleEntityNotFound(_0x569726,null))[_0xb6e0('0x21')](removeEntity(_0x569726,null))[_0xb6e0('0x3f')](handleError(_0x569726,null));};exports[_0xb6e0('0x45')]=function(_0x4a1e93,_0x555bb5){return db['Cdr'][_0xb6e0('0x45')]()['then'](respondWithResult(_0x555bb5,null))[_0xb6e0('0x3f')](handleError(_0x555bb5,null));};