c52486323c611a73cc62e29a76b715ad6ee2a1cc
[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 _0x803b=['fields','attributes','length','hasOwnProperty','limit','sort','where','pick','filters','merge','map','key','field','options','includeAll','rows','catch','show','include','body','find','params','describe','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','path','sox','to-csv','ejs','desk.js','papaparse','ioredis','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','count','offset','set','Content-Range','json','apply','reject','save','update','then','destroy','error','stack','name','send','Cdr','rawAttributes','keys','query','intersection','model'];(function(_0x2ce62c,_0x340208){var _0x35de48=function(_0x5c3182){while(--_0x5c3182){_0x2ce62c['push'](_0x2ce62c['shift']());}};_0x35de48(++_0x340208);}(_0x803b,0x11f));var _0xb803=function(_0x51da15,_0x1b0bde){_0x51da15=_0x51da15-0x0;var _0x2481e1=_0x803b[_0x51da15];return _0x2481e1;};'use strict';var pdf=require(_0xb803('0x0'));var emlformat=require(_0xb803('0x1'));var rimraf=require(_0xb803('0x2'));var zipdir=require(_0xb803('0x3'));var jsonpatch=require(_0xb803('0x4'));var rp=require(_0xb803('0x5'));var moment=require('moment');var BPromise=require(_0xb803('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0xb803('0x7'));var sox=require(_0xb803('0x8'));var csv=require(_0xb803('0x9'));var ejs=require(_0xb803('0xa'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xb803('0xb'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xb803('0xc'));var Redis=require(_0xb803('0xd'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var hardwareService=require(_0xb803('0xe'));var logger=require(_0xb803('0xf'))(_0xb803('0x10'));var utils=require(_0xb803('0x11'));var config=require('../../config/environment');var db=require(_0xb803('0x12'))['db'];function respondWithStatusCode(_0x3b96bf,_0x209ad5){_0x209ad5=_0x209ad5||0xcc;return function(_0x21d5af){if(_0x21d5af){return _0x3b96bf[_0xb803('0x13')](_0x209ad5);}return _0x3b96bf[_0xb803('0x14')](_0x209ad5)[_0xb803('0x15')]();};}function respondWithResult(_0x1e4375,_0x37dcb4){_0x37dcb4=_0x37dcb4||0xc8;return function(_0xca29be){if(_0xca29be){return _0x1e4375['status'](_0x37dcb4)['json'](_0xca29be);}};}function respondWithFilteredResult(_0x3f7a6c,_0xc13c4a){return function(_0x4f6b3a){if(_0x4f6b3a){var _0xdfe641=_0x4f6b3a[_0xb803('0x16')],_0x13e46e=_0xc13c4a[_0xb803('0x17')],_0x25a028=_0xc13c4a[_0xb803('0x17')]+_0xc13c4a['limit'],_0x26656e;if(_0x25a028>=_0xdfe641){_0x25a028=_0xdfe641;_0x26656e=0xc8;}else{_0x26656e=0xce;}_0x3f7a6c['status'](_0x26656e);return _0x3f7a6c[_0xb803('0x18')](_0xb803('0x19'),_0x13e46e+'-'+_0x25a028+'/'+_0xdfe641)[_0xb803('0x1a')](_0x4f6b3a);}return null;};}function patchUpdates(_0x3a8beb){return function(_0x5a49f2){try{jsonpatch[_0xb803('0x1b')](_0x5a49f2,_0x3a8beb,!![]);}catch(_0x4235b8){return BPromise[_0xb803('0x1c')](_0x4235b8);}return _0x5a49f2[_0xb803('0x1d')]();};}function saveUpdates(_0x58d74f,_0x245a0f){return function(_0x1a6e32){if(_0x1a6e32){return _0x1a6e32[_0xb803('0x1e')](_0x58d74f)[_0xb803('0x1f')](function(_0x21e0ba){return _0x21e0ba;});}return null;};}function removeEntity(_0xf63f1b,_0x128d12){return function(_0x5d5fbb){if(_0x5d5fbb){return _0x5d5fbb[_0xb803('0x20')]()['then'](function(){_0xf63f1b['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x9e0d65,_0x7d21fd){return function(_0x489cee){if(!_0x489cee){_0x9e0d65['sendStatus'](0x194);}return _0x489cee;};}function handleError(_0x2fbe55,_0x55a71c){_0x55a71c=_0x55a71c||0x1f4;return function(_0x1dc730){logger[_0xb803('0x21')](_0x1dc730[_0xb803('0x22')]);if(_0x1dc730[_0xb803('0x23')]){delete _0x1dc730['name'];}_0x2fbe55[_0xb803('0x14')](_0x55a71c)[_0xb803('0x24')](_0x1dc730);};}exports['index']=function(_0x13a430,_0x192f41){var _0x380141={},_0x5a5776={},_0x386be1={'count':0x0,'rows':[]};var _0x2eae3d=db[_0xb803('0x25')][_0xb803('0x26')];_0x5a5776['model']=_[_0xb803('0x27')](_0x2eae3d);_0x5a5776[_0xb803('0x28')]=_[_0xb803('0x27')](_0x13a430[_0xb803('0x28')]);_0x5a5776['filters']=_[_0xb803('0x29')](_0x5a5776[_0xb803('0x2a')],_0x5a5776[_0xb803('0x28')]);_0x380141['attributes']=_[_0xb803('0x29')](_0x5a5776['model'],qs[_0xb803('0x2b')](_0x13a430['query'][_0xb803('0x2b')]));_0x380141[_0xb803('0x2c')]=_0x380141[_0xb803('0x2c')][_0xb803('0x2d')]?_0x380141[_0xb803('0x2c')]:_0x5a5776['model'];if(!_0x13a430[_0xb803('0x28')][_0xb803('0x2e')]('nolimit')){_0x380141[_0xb803('0x2f')]=qs['limit'](_0x13a430[_0xb803('0x28')][_0xb803('0x2f')]);_0x380141[_0xb803('0x17')]=qs['offset'](_0x13a430[_0xb803('0x28')]['offset']);}_0x380141['order']=qs[_0xb803('0x30')](_0x13a430[_0xb803('0x28')][_0xb803('0x30')]);_0x380141[_0xb803('0x31')]=qs['filters'](_[_0xb803('0x32')](_0x13a430[_0xb803('0x28')],_0x5a5776[_0xb803('0x33')]));if(_0x13a430[_0xb803('0x28')]['filter']){_0x380141['where']=_[_0xb803('0x34')](_0x380141[_0xb803('0x31')],{'$or':_[_0xb803('0x35')](_0x2eae3d,function(_0x286532){if(_0x286532['type'][_0xb803('0x36')]!=='VIRTUAL'){var _0x40c336={};_0x40c336[_0x286532[_0xb803('0x37')]]={'$like':'%'+_0x13a430['query']['filter']+'%'};return _0x40c336;}})});}_0x380141=_[_0xb803('0x34')]({},_0x380141,_0x13a430[_0xb803('0x38')]);var _0x2f9a6d={'where':_0x380141[_0xb803('0x31')]};return db[_0xb803('0x25')][_0xb803('0x16')](_0x2f9a6d)[_0xb803('0x1f')](function(_0x58b194){_0x386be1[_0xb803('0x16')]=_0x58b194;if(_0x13a430[_0xb803('0x28')][_0xb803('0x39')]){_0x380141['include']=[{'all':!![]}];}return db['Cdr']['findAll'](_0x380141);})[_0xb803('0x1f')](function(_0x431721){_0x386be1[_0xb803('0x3a')]=_0x431721;return _0x386be1;})[_0xb803('0x1f')](respondWithFilteredResult(_0x192f41,_0x380141))[_0xb803('0x3b')](handleError(_0x192f41,null));};exports[_0xb803('0x3c')]=function(_0x5bc766,_0x8ffe00){var _0x1aefef={'raw':!![],'where':{'id':_0x5bc766['params']['id']}},_0xdcc5c6={};_0xdcc5c6[_0xb803('0x2a')]=_['keys'](db[_0xb803('0x25')][_0xb803('0x26')]);_0xdcc5c6[_0xb803('0x28')]=_['keys'](_0x5bc766[_0xb803('0x28')]);_0xdcc5c6['filters']=_[_0xb803('0x29')](_0xdcc5c6[_0xb803('0x2a')],_0xdcc5c6[_0xb803('0x28')]);_0x1aefef[_0xb803('0x2c')]=_[_0xb803('0x29')](_0xdcc5c6[_0xb803('0x2a')],qs[_0xb803('0x2b')](_0x5bc766[_0xb803('0x28')]['fields']));_0x1aefef[_0xb803('0x2c')]=_0x1aefef['attributes'][_0xb803('0x2d')]?_0x1aefef[_0xb803('0x2c')]:_0xdcc5c6[_0xb803('0x2a')];if(_0x5bc766[_0xb803('0x28')]['includeAll']){_0x1aefef[_0xb803('0x3d')]=[{'all':!![]}];}_0x1aefef=_[_0xb803('0x34')]({},_0x1aefef,_0x5bc766[_0xb803('0x38')]);return db[_0xb803('0x25')]['find'](_0x1aefef)[_0xb803('0x1f')](handleEntityNotFound(_0x8ffe00,null))[_0xb803('0x1f')](respondWithResult(_0x8ffe00,null))[_0xb803('0x3b')](handleError(_0x8ffe00,null));};exports['create']=function(_0x36622c,_0x2523ce){return db['Cdr']['create'](_0x36622c[_0xb803('0x3e')],{})[_0xb803('0x1f')](respondWithResult(_0x2523ce,0xc9))[_0xb803('0x3b')](handleError(_0x2523ce,null));};exports[_0xb803('0x1e')]=function(_0xaac3fd,_0x2d9a34){if(_0xaac3fd[_0xb803('0x3e')]['id']){delete _0xaac3fd[_0xb803('0x3e')]['id'];}return db[_0xb803('0x25')][_0xb803('0x3f')]({'where':{'id':_0xaac3fd[_0xb803('0x40')]['id']}})[_0xb803('0x1f')](handleEntityNotFound(_0x2d9a34,null))['then'](saveUpdates(_0xaac3fd[_0xb803('0x3e')],null))[_0xb803('0x1f')](respondWithResult(_0x2d9a34,null))[_0xb803('0x3b')](handleError(_0x2d9a34,null));};exports[_0xb803('0x20')]=function(_0x29afda,_0x15a12b){return db[_0xb803('0x25')][_0xb803('0x3f')]({'where':{'id':_0x29afda[_0xb803('0x40')]['id']}})[_0xb803('0x1f')](handleEntityNotFound(_0x15a12b,null))[_0xb803('0x1f')](removeEntity(_0x15a12b,null))['catch'](handleError(_0x15a12b,null));};exports[_0xb803('0x41')]=function(_0x49816a,_0x1849f1){return db['Cdr']['describe']()[_0xb803('0x1f')](respondWithResult(_0x1849f1,null))['catch'](handleError(_0x1849f1,null));};