e54115420be3fca9658d5d05807870223430e682
[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 _0xd357=['limit','set','apply','reject','save','update','then','destroy','stack','name','send','map','Cdr','type','model','query','intersection','attributes','fields','length','nolimit','sort','pick','filters','where','merge','filter','options','includeAll','findAll','show','params','keys','rawAttributes','filtears','include','find','catch','body','describe','html-pdf','eml-format','rimraf','request-promise','moment','bluebird','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset'];(function(_0x5a5675,_0x4b4c8f){var _0x2fb9d6=function(_0x2508bf){while(--_0x2508bf){_0x5a5675['push'](_0x5a5675['shift']());}};_0x2fb9d6(++_0x4b4c8f);}(_0xd357,0x138));var _0x7d35=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0xd357[_0x42cae2];return _0x5f256f;};'use strict';var pdf=require(_0x7d35('0x0'));var emlformat=require(_0x7d35('0x1'));var rimraf=require(_0x7d35('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x7d35('0x3'));var moment=require(_0x7d35('0x4'));var BPromise=require(_0x7d35('0x5'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x7d35('0x6'));var csv=require(_0x7d35('0x7'));var ejs=require(_0x7d35('0x8'));var fs=require('fs');var _=require(_0x7d35('0x9'));var squel=require('squel');var crypto=require(_0x7d35('0xa'));var jsforce=require(_0x7d35('0xb'));var deskjs=require(_0x7d35('0xc'));var toCsv=require(_0x7d35('0x7'));var querystring=require('querystring');var Papa=require(_0x7d35('0xd'));var Redis=require('ioredis');var authService=require(_0x7d35('0xe'));var qs=require(_0x7d35('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x7d35('0x10'));var logger=require(_0x7d35('0x11'))(_0x7d35('0x12'));var utils=require(_0x7d35('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x7d35('0x14'));var db=require(_0x7d35('0x15'))['db'];function respondWithStatusCode(_0x33828d,_0x15a558){_0x15a558=_0x15a558||0xcc;return function(_0x35123d){if(_0x35123d){return _0x33828d[_0x7d35('0x16')](_0x15a558);}return _0x33828d[_0x7d35('0x17')](_0x15a558)[_0x7d35('0x18')]();};}function respondWithResult(_0x3b4f78,_0x43fefe){_0x43fefe=_0x43fefe||0xc8;return function(_0x466943){if(_0x466943){return _0x3b4f78[_0x7d35('0x17')](_0x43fefe)[_0x7d35('0x19')](_0x466943);}};}function respondWithFilteredResult(_0x18059d,_0x201d26){return function(_0x3f3b32){if(_0x3f3b32){var _0x3ea5d1=_0x3f3b32[_0x7d35('0x1a')],_0x1abb05=_0x201d26[_0x7d35('0x1b')],_0x3cc102=_0x201d26[_0x7d35('0x1b')]+_0x201d26[_0x7d35('0x1c')],_0x624c0f;if(_0x3cc102>=_0x3ea5d1){_0x3cc102=_0x3ea5d1;_0x624c0f=0xc8;}else{_0x624c0f=0xce;}_0x18059d[_0x7d35('0x17')](_0x624c0f);return _0x18059d[_0x7d35('0x1d')]('Content-Range',_0x1abb05+'-'+_0x3cc102+'/'+_0x3ea5d1)[_0x7d35('0x19')](_0x3f3b32);}return null;};}function patchUpdates(_0x5cc07c){return function(_0x3731a5){try{jsonpatch[_0x7d35('0x1e')](_0x3731a5,_0x5cc07c,!![]);}catch(_0x3c5c88){return BPromise[_0x7d35('0x1f')](_0x3c5c88);}return _0x3731a5[_0x7d35('0x20')]();};}function saveUpdates(_0xf29301,_0x25fe31){return function(_0x4e479c){if(_0x4e479c){return _0x4e479c[_0x7d35('0x21')](_0xf29301)[_0x7d35('0x22')](function(_0x1853cc){return _0x1853cc;});}return null;};}function removeEntity(_0x34b2a6,_0x72003){return function(_0x3dcb43){if(_0x3dcb43){return _0x3dcb43[_0x7d35('0x23')]()[_0x7d35('0x22')](function(){_0x34b2a6['status'](0xcc)[_0x7d35('0x18')]();});}};}function handleEntityNotFound(_0x5edaf8,_0x2e3c10){return function(_0x2badff){if(!_0x2badff){_0x5edaf8[_0x7d35('0x16')](0x194);}return _0x2badff;};}function handleError(_0x43de08,_0x49fd85){_0x49fd85=_0x49fd85||0x1f4;return function(_0x12810b){logger['error'](_0x12810b[_0x7d35('0x24')]);if(_0x12810b[_0x7d35('0x25')]){delete _0x12810b[_0x7d35('0x25')];}_0x43de08[_0x7d35('0x17')](_0x49fd85)[_0x7d35('0x26')](_0x12810b);};}exports['index']=function(_0x4a1e33,_0x436674){var _0x1c8d1c={},_0x5e06d2={},_0xe46f05={'count':0x0,'rows':[]};var _0x390ca3=_[_0x7d35('0x27')](db[_0x7d35('0x28')]['rawAttributes'],function(_0x3f618e){return{'name':_0x3f618e['fieldName'],'type':_0x3f618e[_0x7d35('0x29')]['key']};});_0x5e06d2[_0x7d35('0x2a')]=_[_0x7d35('0x27')](_0x390ca3,'name');_0x5e06d2['query']=_['keys'](_0x4a1e33[_0x7d35('0x2b')]);_0x5e06d2['filters']=_[_0x7d35('0x2c')](_0x5e06d2[_0x7d35('0x2a')],_0x5e06d2['query']);_0x1c8d1c[_0x7d35('0x2d')]=_['intersection'](_0x5e06d2[_0x7d35('0x2a')],qs['fields'](_0x4a1e33[_0x7d35('0x2b')][_0x7d35('0x2e')]));_0x1c8d1c[_0x7d35('0x2d')]=_0x1c8d1c['attributes'][_0x7d35('0x2f')]?_0x1c8d1c['attributes']:_0x5e06d2['model'];if(!_0x4a1e33['query']['hasOwnProperty'](_0x7d35('0x30'))){_0x1c8d1c[_0x7d35('0x1c')]=qs[_0x7d35('0x1c')](_0x4a1e33[_0x7d35('0x2b')][_0x7d35('0x1c')]);_0x1c8d1c[_0x7d35('0x1b')]=qs[_0x7d35('0x1b')](_0x4a1e33[_0x7d35('0x2b')][_0x7d35('0x1b')]);}_0x1c8d1c['order']=qs[_0x7d35('0x31')](_0x4a1e33[_0x7d35('0x2b')][_0x7d35('0x31')]);_0x1c8d1c['where']=qs['filters'](_[_0x7d35('0x32')](_0x4a1e33[_0x7d35('0x2b')],_0x5e06d2[_0x7d35('0x33')]),_0x390ca3);if(_0x4a1e33[_0x7d35('0x2b')]['filter']){_0x1c8d1c[_0x7d35('0x34')]=_[_0x7d35('0x35')](_0x1c8d1c[_0x7d35('0x34')],{'$or':_['map'](_0x390ca3,function(_0x193c0b){if(_0x193c0b[_0x7d35('0x29')]!=='VIRTUAL'){var _0x1b8796={};_0x1b8796[_0x193c0b[_0x7d35('0x25')]]={'$like':'%'+_0x4a1e33[_0x7d35('0x2b')][_0x7d35('0x36')]+'%'};return _0x1b8796;}})});}_0x1c8d1c=_[_0x7d35('0x35')]({},_0x1c8d1c,_0x4a1e33[_0x7d35('0x37')]);var _0x39f7c5={'where':_0x1c8d1c[_0x7d35('0x34')]};return db[_0x7d35('0x28')][_0x7d35('0x1a')](_0x39f7c5)[_0x7d35('0x22')](function(_0x3d51e8){_0xe46f05['count']=_0x3d51e8;if(_0x4a1e33[_0x7d35('0x2b')][_0x7d35('0x38')]){_0x1c8d1c['include']=[{'all':!![]}];}return db[_0x7d35('0x28')][_0x7d35('0x39')](_0x1c8d1c);})[_0x7d35('0x22')](function(_0x4365b7){_0xe46f05['rows']=_0x4365b7;return _0xe46f05;})[_0x7d35('0x22')](respondWithFilteredResult(_0x436674,_0x1c8d1c))['catch'](handleError(_0x436674,null));};exports[_0x7d35('0x3a')]=function(_0x17ecf9,_0x605448){var _0xdcf075={'raw':!![],'where':{'id':_0x17ecf9[_0x7d35('0x3b')]['id']}},_0x1289e3={};_0x1289e3['model']=_[_0x7d35('0x3c')](db['Cdr'][_0x7d35('0x3d')]);_0x1289e3[_0x7d35('0x2b')]=_[_0x7d35('0x3c')](_0x17ecf9[_0x7d35('0x2b')]);_0x1289e3[_0x7d35('0x3e')]=_['intersection'](_0x1289e3[_0x7d35('0x2a')],_0x1289e3['query']);_0xdcf075['attributes']=_[_0x7d35('0x2c')](_0x1289e3[_0x7d35('0x2a')],qs[_0x7d35('0x2e')](_0x17ecf9[_0x7d35('0x2b')][_0x7d35('0x2e')]));_0xdcf075[_0x7d35('0x2d')]=_0xdcf075[_0x7d35('0x2d')][_0x7d35('0x2f')]?_0xdcf075['attributes']:_0x1289e3[_0x7d35('0x2a')];if(_0x17ecf9[_0x7d35('0x2b')][_0x7d35('0x38')]){_0xdcf075[_0x7d35('0x3f')]=[{'all':!![]}];}_0xdcf075=_[_0x7d35('0x35')]({},_0xdcf075,_0x17ecf9[_0x7d35('0x37')]);return db[_0x7d35('0x28')][_0x7d35('0x40')](_0xdcf075)[_0x7d35('0x22')](handleEntityNotFound(_0x605448,null))['then'](respondWithResult(_0x605448,null))[_0x7d35('0x41')](handleError(_0x605448,null));};exports['create']=function(_0x146feb,_0x5e9fea){return db[_0x7d35('0x28')]['create'](_0x146feb[_0x7d35('0x42')],{})['then'](respondWithResult(_0x5e9fea,0xc9))[_0x7d35('0x41')](handleError(_0x5e9fea,null));};exports['update']=function(_0x44e1ed,_0xa204){if(_0x44e1ed[_0x7d35('0x42')]['id']){delete _0x44e1ed['body']['id'];}return db[_0x7d35('0x28')][_0x7d35('0x40')]({'where':{'id':_0x44e1ed[_0x7d35('0x3b')]['id']}})[_0x7d35('0x22')](handleEntityNotFound(_0xa204,null))[_0x7d35('0x22')](saveUpdates(_0x44e1ed[_0x7d35('0x42')],null))[_0x7d35('0x22')](respondWithResult(_0xa204,null))[_0x7d35('0x41')](handleError(_0xa204,null));};exports[_0x7d35('0x23')]=function(_0x3661f4,_0x2e56f3){return db['Cdr'][_0x7d35('0x40')]({'where':{'id':_0x3661f4[_0x7d35('0x3b')]['id']}})[_0x7d35('0x22')](handleEntityNotFound(_0x2e56f3,null))[_0x7d35('0x22')](removeEntity(_0x2e56f3,null))[_0x7d35('0x41')](handleError(_0x2e56f3,null));};exports[_0x7d35('0x43')]=function(_0x289adc,_0x1b74d7){return db[_0x7d35('0x28')]['describe']()[_0x7d35('0x22')](respondWithResult(_0x1b74d7,null))['catch'](handleError(_0x1b74d7,null));};