c529b417701ec1057b3efff40b8b96495a08ee9c
[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 _0xdf2f=['include','findAll','then','rows','catch','show','params','fields','find','create','body','describe','html-pdf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','apply','save','update','destroy','error','stack','name','send','index','map','Cdr','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','length','hasOwnProperty','nolimit','order','where','merge','filter','options','includeAll'];(function(_0x19033c,_0x3bd1a1){var _0x19e8fa=function(_0x1d4739){while(--_0x1d4739){_0x19033c['push'](_0x19033c['shift']());}};_0x19e8fa(++_0x3bd1a1);}(_0xdf2f,0xe7));var _0xfdf2=function(_0x3e614d,_0x6d57dd){_0x3e614d=_0x3e614d-0x0;var _0x4db3e1=_0xdf2f[_0x3e614d];return _0x4db3e1;};'use strict';var pdf=require(_0xfdf2('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xfdf2('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xfdf2('0x2'));var moment=require(_0xfdf2('0x3'));var BPromise=require(_0xfdf2('0x4'));var Mustache=require(_0xfdf2('0x5'));var util=require(_0xfdf2('0x6'));var path=require(_0xfdf2('0x7'));var sox=require(_0xfdf2('0x8'));var csv=require(_0xfdf2('0x9'));var ejs=require(_0xfdf2('0xa'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0xfdf2('0xb'));var jsforce=require(_0xfdf2('0xc'));var deskjs=require(_0xfdf2('0xd'));var toCsv=require(_0xfdf2('0x9'));var querystring=require(_0xfdf2('0xe'));var Papa=require(_0xfdf2('0xf'));var Redis=require('ioredis');var authService=require(_0xfdf2('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xfdf2('0x11'));var hardwareService=require(_0xfdf2('0x12'));var logger=require(_0xfdf2('0x13'))(_0xfdf2('0x14'));var utils=require('../../config/utils');var config=require(_0xfdf2('0x15'));var licenseUtil=require(_0xfdf2('0x16'));var db=require(_0xfdf2('0x17'))['db'];function respondWithStatusCode(_0x4d02dc,_0x186b82){_0x186b82=_0x186b82||0xcc;return function(_0x2db7df){if(_0x2db7df){return _0x4d02dc[_0xfdf2('0x18')](_0x186b82);}return _0x4d02dc[_0xfdf2('0x19')](_0x186b82)[_0xfdf2('0x1a')]();};}function respondWithResult(_0x30c62e,_0x46c00d){_0x46c00d=_0x46c00d||0xc8;return function(_0x39769e){if(_0x39769e){return _0x30c62e[_0xfdf2('0x19')](_0x46c00d)[_0xfdf2('0x1b')](_0x39769e);}};}function respondWithFilteredResult(_0x328fb5,_0x26e7bd){return function(_0x41bbff){if(_0x41bbff){var _0x346e71=_0x41bbff[_0xfdf2('0x1c')],_0x21d647=_0x26e7bd['offset'],_0x1dfd21=_0x26e7bd[_0xfdf2('0x1d')]+_0x26e7bd[_0xfdf2('0x1e')],_0x3a5f62;if(_0x1dfd21>=_0x346e71){_0x1dfd21=_0x346e71;_0x3a5f62=0xc8;}else{_0x3a5f62=0xce;}_0x328fb5[_0xfdf2('0x19')](_0x3a5f62);return _0x328fb5[_0xfdf2('0x1f')]('Content-Range',_0x21d647+'-'+_0x1dfd21+'/'+_0x346e71)['json'](_0x41bbff);}return null;};}function patchUpdates(_0x2e3577){return function(_0x2deec1){try{jsonpatch[_0xfdf2('0x20')](_0x2deec1,_0x2e3577,!![]);}catch(_0x579aa3){return BPromise['reject'](_0x579aa3);}return _0x2deec1[_0xfdf2('0x21')]();};}function saveUpdates(_0x336544,_0x1ab2c5){return function(_0x306033){if(_0x306033){return _0x306033[_0xfdf2('0x22')](_0x336544)['then'](function(_0xd072af){return _0xd072af;});}return null;};}function removeEntity(_0x28003d,_0x5dc6f6){return function(_0x1bcbf0){if(_0x1bcbf0){return _0x1bcbf0[_0xfdf2('0x23')]()['then'](function(){_0x28003d[_0xfdf2('0x19')](0xcc)[_0xfdf2('0x1a')]();});}};}function handleEntityNotFound(_0x41e4f5,_0x33fc71){return function(_0x28a82a){if(!_0x28a82a){_0x41e4f5[_0xfdf2('0x18')](0x194);}return _0x28a82a;};}function handleError(_0x5d5342,_0x48149c){_0x48149c=_0x48149c||0x1f4;return function(_0x49efa7){logger[_0xfdf2('0x24')](_0x49efa7[_0xfdf2('0x25')]);if(_0x49efa7[_0xfdf2('0x26')]){delete _0x49efa7['name'];}_0x5d5342['status'](_0x48149c)[_0xfdf2('0x27')](_0x49efa7);};}exports[_0xfdf2('0x28')]=function(_0x2f07f6,_0x2fe41b){var _0x463d9c={},_0x14a870={},_0x5a3f8c={'count':0x0,'rows':[]};var _0x506599=_[_0xfdf2('0x29')](db[_0xfdf2('0x2a')][_0xfdf2('0x2b')],function(_0x5f4dc3){return{'name':_0x5f4dc3[_0xfdf2('0x2c')],'type':_0x5f4dc3[_0xfdf2('0x2d')]['key']};});_0x14a870[_0xfdf2('0x2e')]=_['map'](_0x506599,_0xfdf2('0x26'));_0x14a870[_0xfdf2('0x2f')]=_[_0xfdf2('0x30')](_0x2f07f6[_0xfdf2('0x2f')]);_0x14a870[_0xfdf2('0x31')]=_[_0xfdf2('0x32')](_0x14a870['model'],_0x14a870[_0xfdf2('0x2f')]);_0x463d9c[_0xfdf2('0x33')]=_['intersection'](_0x14a870['model'],qs['fields'](_0x2f07f6['query']['fields']));_0x463d9c[_0xfdf2('0x33')]=_0x463d9c[_0xfdf2('0x33')][_0xfdf2('0x34')]?_0x463d9c[_0xfdf2('0x33')]:_0x14a870['model'];if(!_0x2f07f6[_0xfdf2('0x2f')][_0xfdf2('0x35')](_0xfdf2('0x36'))){_0x463d9c[_0xfdf2('0x1e')]=qs[_0xfdf2('0x1e')](_0x2f07f6[_0xfdf2('0x2f')][_0xfdf2('0x1e')]);_0x463d9c[_0xfdf2('0x1d')]=qs['offset'](_0x2f07f6['query'][_0xfdf2('0x1d')]);}_0x463d9c[_0xfdf2('0x37')]=qs['sort'](_0x2f07f6[_0xfdf2('0x2f')]['sort']);_0x463d9c[_0xfdf2('0x38')]=qs[_0xfdf2('0x31')](_['pick'](_0x2f07f6[_0xfdf2('0x2f')],_0x14a870[_0xfdf2('0x31')]),_0x506599);if(_0x2f07f6[_0xfdf2('0x2f')]['filter']){_0x463d9c[_0xfdf2('0x38')]=_[_0xfdf2('0x39')](_0x463d9c[_0xfdf2('0x38')],{'$or':_[_0xfdf2('0x29')](_0x506599,function(_0x1eefea){if(_0x1eefea['type']!=='VIRTUAL'){var _0x4d3eb4={};_0x4d3eb4[_0x1eefea[_0xfdf2('0x26')]]={'$like':'%'+_0x2f07f6[_0xfdf2('0x2f')][_0xfdf2('0x3a')]+'%'};return _0x4d3eb4;}})});}_0x463d9c=_['merge']({},_0x463d9c,_0x2f07f6[_0xfdf2('0x3b')]);var _0x501336={'where':_0x463d9c[_0xfdf2('0x38')]};return db[_0xfdf2('0x2a')]['count'](_0x501336)['then'](function(_0x237c3e){_0x5a3f8c[_0xfdf2('0x1c')]=_0x237c3e;if(_0x2f07f6[_0xfdf2('0x2f')][_0xfdf2('0x3c')]){_0x463d9c[_0xfdf2('0x3d')]=[{'all':!![]}];}return db[_0xfdf2('0x2a')][_0xfdf2('0x3e')](_0x463d9c);})[_0xfdf2('0x3f')](function(_0x5f5358){_0x5a3f8c[_0xfdf2('0x40')]=_0x5f5358;return _0x5a3f8c;})[_0xfdf2('0x3f')](respondWithFilteredResult(_0x2fe41b,_0x463d9c))[_0xfdf2('0x41')](handleError(_0x2fe41b,null));};exports[_0xfdf2('0x42')]=function(_0x338c25,_0x688276){var _0x2892dd={'raw':!![],'where':{'id':_0x338c25[_0xfdf2('0x43')]['id']}},_0x1409cf={};_0x1409cf[_0xfdf2('0x2e')]=_[_0xfdf2('0x30')](db[_0xfdf2('0x2a')][_0xfdf2('0x2b')]);_0x1409cf['query']=_[_0xfdf2('0x30')](_0x338c25[_0xfdf2('0x2f')]);_0x1409cf[_0xfdf2('0x31')]=_[_0xfdf2('0x32')](_0x1409cf[_0xfdf2('0x2e')],_0x1409cf[_0xfdf2('0x2f')]);_0x2892dd[_0xfdf2('0x33')]=_[_0xfdf2('0x32')](_0x1409cf[_0xfdf2('0x2e')],qs['fields'](_0x338c25[_0xfdf2('0x2f')][_0xfdf2('0x44')]));_0x2892dd['attributes']=_0x2892dd[_0xfdf2('0x33')][_0xfdf2('0x34')]?_0x2892dd[_0xfdf2('0x33')]:_0x1409cf[_0xfdf2('0x2e')];if(_0x338c25[_0xfdf2('0x2f')][_0xfdf2('0x3c')]){_0x2892dd[_0xfdf2('0x3d')]=[{'all':!![]}];}_0x2892dd=_[_0xfdf2('0x39')]({},_0x2892dd,_0x338c25[_0xfdf2('0x3b')]);return db['Cdr'][_0xfdf2('0x45')](_0x2892dd)[_0xfdf2('0x3f')](handleEntityNotFound(_0x688276,null))[_0xfdf2('0x3f')](respondWithResult(_0x688276,null))['catch'](handleError(_0x688276,null));};exports['create']=function(_0x46d173,_0x3f756f){return db['Cdr'][_0xfdf2('0x46')](_0x46d173[_0xfdf2('0x47')],{})['then'](respondWithResult(_0x3f756f,0xc9))[_0xfdf2('0x41')](handleError(_0x3f756f,null));};exports[_0xfdf2('0x22')]=function(_0xe624a2,_0xcd9679){if(_0xe624a2[_0xfdf2('0x47')]['id']){delete _0xe624a2[_0xfdf2('0x47')]['id'];}return db[_0xfdf2('0x2a')][_0xfdf2('0x45')]({'where':{'id':_0xe624a2['params']['id']}})[_0xfdf2('0x3f')](handleEntityNotFound(_0xcd9679,null))[_0xfdf2('0x3f')](saveUpdates(_0xe624a2['body'],null))['then'](respondWithResult(_0xcd9679,null))[_0xfdf2('0x41')](handleError(_0xcd9679,null));};exports[_0xfdf2('0x23')]=function(_0xa5fd6f,_0x2524a9){return db['Cdr'][_0xfdf2('0x45')]({'where':{'id':_0xa5fd6f[_0xfdf2('0x43')]['id']}})['then'](handleEntityNotFound(_0x2524a9,null))[_0xfdf2('0x3f')](removeEntity(_0x2524a9,null))[_0xfdf2('0x41')](handleError(_0x2524a9,null));};exports['describe']=function(_0xfd4b26,_0x5ee69c){return db[_0xfdf2('0x2a')][_0xfdf2('0x48')]()[_0xfdf2('0x3f')](respondWithResult(_0x5ee69c,null))[_0xfdf2('0x41')](handleError(_0x5ee69c,null));};