81cec59568fff36fce2e0cedbc993df85196a229
[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 _0x30c4=['rimraf','request-promise','moment','mustache','util','sox','ejs','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','count','offset','apply','reject','save','update','then','destroy','sendStatus','error','stack','index','map','rawAttributes','type','key','model','query','keys','intersection','attributes','fields','length','nolimit','limit','order','sort','where','filters','merge','VIRTUAL','name','filter','options','Cdr','include','rows','show','params','find','catch','create','body','describe','html-pdf','eml-format'];(function(_0x1a5bad,_0x551096){var _0x42f6db=function(_0x50c2a1){while(--_0x50c2a1){_0x1a5bad['push'](_0x1a5bad['shift']());}};_0x42f6db(++_0x551096);}(_0x30c4,0x152));var _0x430c=function(_0x31bdc8,_0x18a537){_0x31bdc8=_0x31bdc8-0x0;var _0x1e239d=_0x30c4[_0x31bdc8];return _0x1e239d;};'use strict';var pdf=require(_0x430c('0x0'));var emlformat=require(_0x430c('0x1'));var rimraf=require(_0x430c('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x430c('0x3'));var moment=require(_0x430c('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x430c('0x5'));var util=require(_0x430c('0x6'));var path=require('path');var sox=require(_0x430c('0x7'));var csv=require('to-csv');var ejs=require(_0x430c('0x8'));var fs=require('fs');var _=require(_0x430c('0x9'));var squel=require(_0x430c('0xa'));var crypto=require(_0x430c('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x430c('0xc'));var Papa=require(_0x430c('0xd'));var Redis=require(_0x430c('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x430c('0xf'));var as=require(_0x430c('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x430c('0x11'));var utils=require(_0x430c('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0x430c('0x13'));var db=require(_0x430c('0x14'))['db'];function respondWithStatusCode(_0x4726a0,_0x250aa0){_0x250aa0=_0x250aa0||0xcc;return function(_0x560ebc){if(_0x560ebc){return _0x4726a0['sendStatus'](_0x250aa0);}return _0x4726a0[_0x430c('0x15')](_0x250aa0)[_0x430c('0x16')]();};}function respondWithResult(_0x56e78f,_0x54e555){_0x54e555=_0x54e555||0xc8;return function(_0x32d5ff){if(_0x32d5ff){return _0x56e78f['status'](_0x54e555)[_0x430c('0x17')](_0x32d5ff);}};}function respondWithFilteredResult(_0x211bf4,_0x177423){return function(_0x48201e){if(_0x48201e){var _0x17423a=_0x48201e[_0x430c('0x18')],_0x223c89=_0x177423[_0x430c('0x19')],_0x533179=_0x177423[_0x430c('0x19')]+_0x177423['limit'],_0xe7b1d0;if(_0x533179>=_0x17423a){_0x533179=_0x17423a;_0xe7b1d0=0xc8;}else{_0xe7b1d0=0xce;}_0x211bf4['status'](_0xe7b1d0);return _0x211bf4['set']('Content-Range',_0x223c89+'-'+_0x533179+'/'+_0x17423a)[_0x430c('0x17')](_0x48201e);}return null;};}function patchUpdates(_0x2d84fe){return function(_0x25814f){try{jsonpatch[_0x430c('0x1a')](_0x25814f,_0x2d84fe,!![]);}catch(_0x23bf54){return BPromise[_0x430c('0x1b')](_0x23bf54);}return _0x25814f[_0x430c('0x1c')]();};}function saveUpdates(_0x440a94,_0xa0525d){return function(_0x4c921f){if(_0x4c921f){return _0x4c921f[_0x430c('0x1d')](_0x440a94)[_0x430c('0x1e')](function(_0x17d403){return _0x17d403;});}return null;};}function removeEntity(_0x389d93,_0x3f173b){return function(_0x1107b7){if(_0x1107b7){return _0x1107b7[_0x430c('0x1f')]()[_0x430c('0x1e')](function(){_0x389d93[_0x430c('0x15')](0xcc)[_0x430c('0x16')]();});}};}function handleEntityNotFound(_0x66ec4,_0x416287){return function(_0x37c518){if(!_0x37c518){_0x66ec4[_0x430c('0x20')](0x194);}return _0x37c518;};}function handleError(_0x48275e,_0x52436d){_0x52436d=_0x52436d||0x1f4;return function(_0x2e9340){logger[_0x430c('0x21')](_0x2e9340[_0x430c('0x22')]);if(_0x2e9340['name']){delete _0x2e9340['name'];}_0x48275e['status'](_0x52436d)['send'](_0x2e9340);};}exports[_0x430c('0x23')]=function(_0x55787e,_0x553303){var _0x25fd2a={},_0x4d13e3={},_0x1e9a67={'count':0x0,'rows':[]};var _0x233eaf=_[_0x430c('0x24')](db['Cdr'][_0x430c('0x25')],function(_0x349928){return{'name':_0x349928['fieldName'],'type':_0x349928[_0x430c('0x26')][_0x430c('0x27')]};});_0x4d13e3[_0x430c('0x28')]=_[_0x430c('0x24')](_0x233eaf,'name');_0x4d13e3[_0x430c('0x29')]=_[_0x430c('0x2a')](_0x55787e[_0x430c('0x29')]);_0x4d13e3['filters']=_[_0x430c('0x2b')](_0x4d13e3[_0x430c('0x28')],_0x4d13e3[_0x430c('0x29')]);_0x25fd2a[_0x430c('0x2c')]=_[_0x430c('0x2b')](_0x4d13e3['model'],qs[_0x430c('0x2d')](_0x55787e[_0x430c('0x29')]['fields']));_0x25fd2a[_0x430c('0x2c')]=_0x25fd2a[_0x430c('0x2c')][_0x430c('0x2e')]?_0x25fd2a[_0x430c('0x2c')]:_0x4d13e3['model'];if(!_0x55787e[_0x430c('0x29')]['hasOwnProperty'](_0x430c('0x2f'))){_0x25fd2a['limit']=qs[_0x430c('0x30')](_0x55787e[_0x430c('0x29')][_0x430c('0x30')]);_0x25fd2a[_0x430c('0x19')]=qs['offset'](_0x55787e[_0x430c('0x29')][_0x430c('0x19')]);}_0x25fd2a[_0x430c('0x31')]=qs[_0x430c('0x32')](_0x55787e[_0x430c('0x29')]['sort']);_0x25fd2a[_0x430c('0x33')]=qs[_0x430c('0x34')](_['pick'](_0x55787e[_0x430c('0x29')],_0x4d13e3['filters']),_0x233eaf);if(_0x55787e[_0x430c('0x29')]['filter']){_0x25fd2a[_0x430c('0x33')]=_[_0x430c('0x35')](_0x25fd2a[_0x430c('0x33')],{'$or':_[_0x430c('0x24')](_0x233eaf,function(_0x2641b0){if(_0x2641b0[_0x430c('0x26')]!==_0x430c('0x36')){var _0x19f738={};_0x19f738[_0x2641b0[_0x430c('0x37')]]={'$like':'%'+_0x55787e['query'][_0x430c('0x38')]+'%'};return _0x19f738;}})});}_0x25fd2a=_[_0x430c('0x35')]({},_0x25fd2a,_0x55787e[_0x430c('0x39')]);var _0x1cb173={'where':_0x25fd2a[_0x430c('0x33')]};return db[_0x430c('0x3a')][_0x430c('0x18')](_0x1cb173)[_0x430c('0x1e')](function(_0x4aa51e){_0x1e9a67['count']=_0x4aa51e;if(_0x55787e['query']['includeAll']){_0x25fd2a[_0x430c('0x3b')]=[{'all':!![]}];}return db[_0x430c('0x3a')]['findAll'](_0x25fd2a);})[_0x430c('0x1e')](function(_0x4fa86b){_0x1e9a67[_0x430c('0x3c')]=_0x4fa86b;return _0x1e9a67;})['then'](respondWithFilteredResult(_0x553303,_0x25fd2a))['catch'](handleError(_0x553303,null));};exports[_0x430c('0x3d')]=function(_0x305aa7,_0xa217b8){var _0x1a58b1={'raw':!![],'where':{'id':_0x305aa7[_0x430c('0x3e')]['id']}},_0x3d4b28={};_0x3d4b28[_0x430c('0x28')]=_[_0x430c('0x2a')](db[_0x430c('0x3a')][_0x430c('0x25')]);_0x3d4b28[_0x430c('0x29')]=_[_0x430c('0x2a')](_0x305aa7[_0x430c('0x29')]);_0x3d4b28[_0x430c('0x34')]=_['intersection'](_0x3d4b28[_0x430c('0x28')],_0x3d4b28['query']);_0x1a58b1[_0x430c('0x2c')]=_['intersection'](_0x3d4b28[_0x430c('0x28')],qs[_0x430c('0x2d')](_0x305aa7[_0x430c('0x29')][_0x430c('0x2d')]));_0x1a58b1[_0x430c('0x2c')]=_0x1a58b1[_0x430c('0x2c')][_0x430c('0x2e')]?_0x1a58b1[_0x430c('0x2c')]:_0x3d4b28[_0x430c('0x28')];if(_0x305aa7[_0x430c('0x29')]['includeAll']){_0x1a58b1['include']=[{'all':!![]}];}_0x1a58b1=_['merge']({},_0x1a58b1,_0x305aa7[_0x430c('0x39')]);return db[_0x430c('0x3a')][_0x430c('0x3f')](_0x1a58b1)[_0x430c('0x1e')](handleEntityNotFound(_0xa217b8,null))[_0x430c('0x1e')](respondWithResult(_0xa217b8,null))[_0x430c('0x40')](handleError(_0xa217b8,null));};exports[_0x430c('0x41')]=function(_0x4254aa,_0x4ced6d){return db[_0x430c('0x3a')]['create'](_0x4254aa[_0x430c('0x42')],{})[_0x430c('0x1e')](respondWithResult(_0x4ced6d,0xc9))[_0x430c('0x40')](handleError(_0x4ced6d,null));};exports['update']=function(_0x4d8cbe,_0x536882){if(_0x4d8cbe['body']['id']){delete _0x4d8cbe[_0x430c('0x42')]['id'];}return db[_0x430c('0x3a')]['find']({'where':{'id':_0x4d8cbe[_0x430c('0x3e')]['id']}})[_0x430c('0x1e')](handleEntityNotFound(_0x536882,null))[_0x430c('0x1e')](saveUpdates(_0x4d8cbe[_0x430c('0x42')],null))[_0x430c('0x1e')](respondWithResult(_0x536882,null))[_0x430c('0x40')](handleError(_0x536882,null));};exports['destroy']=function(_0xd0d63d,_0x1eb7a6){return db[_0x430c('0x3a')]['find']({'where':{'id':_0xd0d63d[_0x430c('0x3e')]['id']}})[_0x430c('0x1e')](handleEntityNotFound(_0x1eb7a6,null))[_0x430c('0x1e')](removeEntity(_0x1eb7a6,null))[_0x430c('0x40')](handleError(_0x1eb7a6,null));};exports['describe']=function(_0x4be52e,_0xeb0e9c){return db[_0x430c('0x3a')][_0x430c('0x43')]()[_0x430c('0x1e')](respondWithResult(_0xeb0e9c,null))[_0x430c('0x40')](handleError(_0xeb0e9c,null));};