d4a6ea8d4a22eaeedd182e817874d79ed254d760
[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 _0xa8b7=['ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','count','offset','set','Content-Range','json','reject','save','update','then','destroy','error','name','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','limit','order','sort','filter','where','merge','VIRTUAL','Cdr','includeAll','include','findAll','rows','catch','length','options','create','body','find','describe','html-pdf','eml-format','rimraf','zip-dir','bluebird','mustache','path','to-csv'];(function(_0x5c2dfe,_0x19aec0){var _0x50ab98=function(_0x2f5cfe){while(--_0x2f5cfe){_0x5c2dfe['push'](_0x5c2dfe['shift']());}};_0x50ab98(++_0x19aec0);}(_0xa8b7,0x1e9));var _0x7a8b=function(_0x4242b8,_0x222703){_0x4242b8=_0x4242b8-0x0;var _0x47c1c8=_0xa8b7[_0x4242b8];return _0x47c1c8;};'use strict';var pdf=require(_0x7a8b('0x0'));var emlformat=require(_0x7a8b('0x1'));var rimraf=require(_0x7a8b('0x2'));var zipdir=require(_0x7a8b('0x3'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x7a8b('0x4'));var Mustache=require(_0x7a8b('0x5'));var util=require('util');var path=require(_0x7a8b('0x6'));var sox=require('sox');var csv=require(_0x7a8b('0x7'));var ejs=require(_0x7a8b('0x8'));var fs=require('fs');var _=require(_0x7a8b('0x9'));var squel=require(_0x7a8b('0xa'));var crypto=require(_0x7a8b('0xb'));var jsforce=require(_0x7a8b('0xc'));var deskjs=require(_0x7a8b('0xd'));var toCsv=require(_0x7a8b('0x7'));var querystring=require(_0x7a8b('0xe'));var Papa=require(_0x7a8b('0xf'));var Redis=require(_0x7a8b('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x7a8b('0x11'));var as=require(_0x7a8b('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x7a8b('0x13'))(_0x7a8b('0x14'));var utils=require(_0x7a8b('0x15'));var config=require(_0x7a8b('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2a914e,_0x533f8d){_0x533f8d=_0x533f8d||0xcc;return function(_0x36e0eb){if(_0x36e0eb){return _0x2a914e[_0x7a8b('0x17')](_0x533f8d);}return _0x2a914e['status'](_0x533f8d)['end']();};}function respondWithResult(_0x412468,_0x92acc2){_0x92acc2=_0x92acc2||0xc8;return function(_0x2d51f9){if(_0x2d51f9){return _0x412468[_0x7a8b('0x18')](_0x92acc2)['json'](_0x2d51f9);}};}function respondWithFilteredResult(_0x100483,_0x261c29){return function(_0x111877){if(_0x111877){var _0x4d636f=_0x111877[_0x7a8b('0x19')],_0x314108=_0x261c29[_0x7a8b('0x1a')],_0x4cb637=_0x261c29['offset']+_0x261c29['limit'],_0xc530dc;if(_0x4cb637>=_0x4d636f){_0x4cb637=_0x4d636f;_0xc530dc=0xc8;}else{_0xc530dc=0xce;}_0x100483[_0x7a8b('0x18')](_0xc530dc);return _0x100483[_0x7a8b('0x1b')](_0x7a8b('0x1c'),_0x314108+'-'+_0x4cb637+'/'+_0x4d636f)[_0x7a8b('0x1d')](_0x111877);}return null;};}function patchUpdates(_0x24e61f){return function(_0xbb99a5){try{jsonpatch['apply'](_0xbb99a5,_0x24e61f,!![]);}catch(_0x511203){return BPromise[_0x7a8b('0x1e')](_0x511203);}return _0xbb99a5[_0x7a8b('0x1f')]();};}function saveUpdates(_0x4a0492,_0x290b91){return function(_0x508a3b){if(_0x508a3b){return _0x508a3b[_0x7a8b('0x20')](_0x4a0492)[_0x7a8b('0x21')](function(_0xa3c319){return _0xa3c319;});}return null;};}function removeEntity(_0x2f0cba,_0x25565b){return function(_0x59dd1f){if(_0x59dd1f){return _0x59dd1f[_0x7a8b('0x22')]()[_0x7a8b('0x21')](function(){_0x2f0cba[_0x7a8b('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x33583e,_0x153380){return function(_0x41a690){if(!_0x41a690){_0x33583e[_0x7a8b('0x17')](0x194);}return _0x41a690;};}function handleError(_0x18acb9,_0x506a8f){_0x506a8f=_0x506a8f||0x1f4;return function(_0x4e0e16){logger[_0x7a8b('0x23')](_0x4e0e16['stack']);if(_0x4e0e16[_0x7a8b('0x24')]){delete _0x4e0e16[_0x7a8b('0x24')];}_0x18acb9[_0x7a8b('0x18')](_0x506a8f)['send'](_0x4e0e16);};}exports[_0x7a8b('0x25')]=function(_0x1bbde5,_0x3b966f){var _0x58037a={},_0x13c015={},_0x24eaa6={'count':0x0,'rows':[]};var _0x31ea16=_[_0x7a8b('0x26')](db['Cdr'][_0x7a8b('0x27')],function(_0x225166){return{'name':_0x225166[_0x7a8b('0x28')],'type':_0x225166[_0x7a8b('0x29')][_0x7a8b('0x2a')]};});_0x13c015[_0x7a8b('0x2b')]=_[_0x7a8b('0x26')](_0x31ea16,_0x7a8b('0x24'));_0x13c015[_0x7a8b('0x2c')]=_[_0x7a8b('0x2d')](_0x1bbde5[_0x7a8b('0x2c')]);_0x13c015[_0x7a8b('0x2e')]=_[_0x7a8b('0x2f')](_0x13c015[_0x7a8b('0x2b')],_0x13c015[_0x7a8b('0x2c')]);_0x58037a['attributes']=_[_0x7a8b('0x2f')](_0x13c015[_0x7a8b('0x2b')],qs[_0x7a8b('0x30')](_0x1bbde5[_0x7a8b('0x2c')][_0x7a8b('0x30')]));_0x58037a[_0x7a8b('0x31')]=_0x58037a[_0x7a8b('0x31')]['length']?_0x58037a[_0x7a8b('0x31')]:_0x13c015[_0x7a8b('0x2b')];if(!_0x1bbde5[_0x7a8b('0x2c')][_0x7a8b('0x32')](_0x7a8b('0x33'))){_0x58037a['limit']=qs[_0x7a8b('0x34')](_0x1bbde5[_0x7a8b('0x2c')][_0x7a8b('0x34')]);_0x58037a['offset']=qs[_0x7a8b('0x1a')](_0x1bbde5['query']['offset']);}_0x58037a[_0x7a8b('0x35')]=qs[_0x7a8b('0x36')](_0x1bbde5[_0x7a8b('0x2c')][_0x7a8b('0x36')]);_0x58037a['where']=qs[_0x7a8b('0x2e')](_['pick'](_0x1bbde5[_0x7a8b('0x2c')],_0x13c015[_0x7a8b('0x2e')]),_0x31ea16);if(_0x1bbde5[_0x7a8b('0x2c')][_0x7a8b('0x37')]){_0x58037a[_0x7a8b('0x38')]=_[_0x7a8b('0x39')](_0x58037a[_0x7a8b('0x38')],{'$or':_[_0x7a8b('0x26')](_0x31ea16,function(_0xa48466){if(_0xa48466[_0x7a8b('0x29')]!==_0x7a8b('0x3a')){var _0x4cbde1={};_0x4cbde1[_0xa48466[_0x7a8b('0x24')]]={'$like':'%'+_0x1bbde5[_0x7a8b('0x2c')][_0x7a8b('0x37')]+'%'};return _0x4cbde1;}})});}_0x58037a=_['merge']({},_0x58037a,_0x1bbde5['options']);var _0x1bc80a={'where':_0x58037a['where']};return db[_0x7a8b('0x3b')]['count'](_0x1bc80a)[_0x7a8b('0x21')](function(_0x2fa973){_0x24eaa6[_0x7a8b('0x19')]=_0x2fa973;if(_0x1bbde5['query'][_0x7a8b('0x3c')]){_0x58037a[_0x7a8b('0x3d')]=[{'all':!![]}];}return db[_0x7a8b('0x3b')][_0x7a8b('0x3e')](_0x58037a);})[_0x7a8b('0x21')](function(_0x32ae8f){_0x24eaa6[_0x7a8b('0x3f')]=_0x32ae8f;return _0x24eaa6;})[_0x7a8b('0x21')](respondWithFilteredResult(_0x3b966f,_0x58037a))[_0x7a8b('0x40')](handleError(_0x3b966f,null));};exports['show']=function(_0x3578c9,_0x297c87){var _0x426916={'raw':!![],'where':{'id':_0x3578c9['params']['id']}},_0x5e519a={};_0x5e519a[_0x7a8b('0x2b')]=_[_0x7a8b('0x2d')](db['Cdr'][_0x7a8b('0x27')]);_0x5e519a['query']=_[_0x7a8b('0x2d')](_0x3578c9[_0x7a8b('0x2c')]);_0x5e519a[_0x7a8b('0x2e')]=_[_0x7a8b('0x2f')](_0x5e519a[_0x7a8b('0x2b')],_0x5e519a[_0x7a8b('0x2c')]);_0x426916['attributes']=_['intersection'](_0x5e519a[_0x7a8b('0x2b')],qs['fields'](_0x3578c9[_0x7a8b('0x2c')][_0x7a8b('0x30')]));_0x426916[_0x7a8b('0x31')]=_0x426916[_0x7a8b('0x31')][_0x7a8b('0x41')]?_0x426916[_0x7a8b('0x31')]:_0x5e519a['model'];if(_0x3578c9['query']['includeAll']){_0x426916['include']=[{'all':!![]}];}_0x426916=_['merge']({},_0x426916,_0x3578c9[_0x7a8b('0x42')]);return db[_0x7a8b('0x3b')]['find'](_0x426916)[_0x7a8b('0x21')](handleEntityNotFound(_0x297c87,null))[_0x7a8b('0x21')](respondWithResult(_0x297c87,null))[_0x7a8b('0x40')](handleError(_0x297c87,null));};exports[_0x7a8b('0x43')]=function(_0x23ae2b,_0x2a34e4){return db[_0x7a8b('0x3b')][_0x7a8b('0x43')](_0x23ae2b[_0x7a8b('0x44')],{})['then'](respondWithResult(_0x2a34e4,0xc9))[_0x7a8b('0x40')](handleError(_0x2a34e4,null));};exports[_0x7a8b('0x20')]=function(_0x3c2335,_0x4ddf1e){if(_0x3c2335[_0x7a8b('0x44')]['id']){delete _0x3c2335['body']['id'];}return db[_0x7a8b('0x3b')][_0x7a8b('0x45')]({'where':{'id':_0x3c2335['params']['id']}})[_0x7a8b('0x21')](handleEntityNotFound(_0x4ddf1e,null))[_0x7a8b('0x21')](saveUpdates(_0x3c2335[_0x7a8b('0x44')],null))[_0x7a8b('0x21')](respondWithResult(_0x4ddf1e,null))[_0x7a8b('0x40')](handleError(_0x4ddf1e,null));};exports[_0x7a8b('0x22')]=function(_0x57e91c,_0x4a4056){return db[_0x7a8b('0x3b')][_0x7a8b('0x45')]({'where':{'id':_0x57e91c['params']['id']}})[_0x7a8b('0x21')](handleEntityNotFound(_0x4a4056,null))[_0x7a8b('0x21')](removeEntity(_0x4a4056,null))[_0x7a8b('0x40')](handleError(_0x4a4056,null));};exports[_0x7a8b('0x46')]=function(_0x105e24,_0x5479e7){return db['Cdr'][_0x7a8b('0x46')]()[_0x7a8b('0x21')](respondWithResult(_0x5479e7,null))[_0x7a8b('0x40')](handleError(_0x5479e7,null));};