991c91915e3fcd96968e82107c4bdad6f64d34ad
[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 _0x91aa=['query','fields','length','attributes','hasOwnProperty','nolimit','limit','sort','where','filters','pick','filter','type','VIRTUAL','merge','options','includeAll','include','findAll','show','params','keys','intersection','find','create','body','catch','describe','html-pdf','zip-dir','moment','bluebird','mustache','util','path','sox','to-csv','ejs','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','count','offset','set','Content-Range','json','reject','save','update','destroy','then','stack','name','send','index','map','Cdr','rawAttributes','fieldName','key','model'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x91aa,0x189));var _0xa91a=function(_0x174940,_0x3cd5d0){_0x174940=_0x174940-0x0;var _0x5be689=_0x91aa[_0x174940];return _0x5be689;};'use strict';var pdf=require(_0xa91a('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xa91a('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xa91a('0x2'));var BPromise=require(_0xa91a('0x3'));var Mustache=require(_0xa91a('0x4'));var util=require(_0xa91a('0x5'));var path=require(_0xa91a('0x6'));var sox=require(_0xa91a('0x7'));var csv=require(_0xa91a('0x8'));var ejs=require(_0xa91a('0x9'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0xa91a('0xa'));var jsforce=require(_0xa91a('0xb'));var deskjs=require(_0xa91a('0xc'));var toCsv=require(_0xa91a('0x8'));var querystring=require(_0xa91a('0xd'));var Papa=require('papaparse');var Redis=require(_0xa91a('0xe'));var authService=require(_0xa91a('0xf'));var qs=require(_0xa91a('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa91a('0x11'));var logger=require(_0xa91a('0x12'))(_0xa91a('0x13'));var utils=require(_0xa91a('0x14'));var config=require('../../config/environment');var db=require(_0xa91a('0x15'))['db'];function respondWithStatusCode(_0x5a4e10,_0x4b3575){_0x4b3575=_0x4b3575||0xcc;return function(_0x2da789){if(_0x2da789){return _0x5a4e10[_0xa91a('0x16')](_0x4b3575);}return _0x5a4e10[_0xa91a('0x17')](_0x4b3575)[_0xa91a('0x18')]();};}function respondWithResult(_0x5659ea,_0x37d3c1){_0x37d3c1=_0x37d3c1||0xc8;return function(_0x3409fd){if(_0x3409fd){return _0x5659ea[_0xa91a('0x17')](_0x37d3c1)['json'](_0x3409fd);}};}function respondWithFilteredResult(_0xd366e,_0x3be557){return function(_0xee9fbf){if(_0xee9fbf){var _0x11bdb2=_0xee9fbf[_0xa91a('0x19')],_0x4124f2=_0x3be557[_0xa91a('0x1a')],_0x314660=_0x3be557[_0xa91a('0x1a')]+_0x3be557['limit'],_0x2a6f2e;if(_0x314660>=_0x11bdb2){_0x314660=_0x11bdb2;_0x2a6f2e=0xc8;}else{_0x2a6f2e=0xce;}_0xd366e[_0xa91a('0x17')](_0x2a6f2e);return _0xd366e[_0xa91a('0x1b')](_0xa91a('0x1c'),_0x4124f2+'-'+_0x314660+'/'+_0x11bdb2)[_0xa91a('0x1d')](_0xee9fbf);}return null;};}function patchUpdates(_0x427426){return function(_0x293764){try{jsonpatch['apply'](_0x293764,_0x427426,!![]);}catch(_0x399747){return BPromise[_0xa91a('0x1e')](_0x399747);}return _0x293764[_0xa91a('0x1f')]();};}function saveUpdates(_0xeec0f1,_0x147e75){return function(_0xe9e169){if(_0xe9e169){return _0xe9e169[_0xa91a('0x20')](_0xeec0f1)['then'](function(_0xcc872a){return _0xcc872a;});}return null;};}function removeEntity(_0x25beb5,_0x29e441){return function(_0x4eb1d2){if(_0x4eb1d2){return _0x4eb1d2[_0xa91a('0x21')]()[_0xa91a('0x22')](function(){_0x25beb5[_0xa91a('0x17')](0xcc)[_0xa91a('0x18')]();});}};}function handleEntityNotFound(_0x28186d,_0x285e07){return function(_0x528d64){if(!_0x528d64){_0x28186d[_0xa91a('0x16')](0x194);}return _0x528d64;};}function handleError(_0x3f6f41,_0x2fe5f6){_0x2fe5f6=_0x2fe5f6||0x1f4;return function(_0x3914b8){logger['error'](_0x3914b8[_0xa91a('0x23')]);if(_0x3914b8['name']){delete _0x3914b8[_0xa91a('0x24')];}_0x3f6f41['status'](_0x2fe5f6)[_0xa91a('0x25')](_0x3914b8);};}exports[_0xa91a('0x26')]=function(_0x72f097,_0x55ecd8){var _0x14eb28={},_0x46ce7d={},_0x1048c5={'count':0x0,'rows':[]};var _0x4f9475=_[_0xa91a('0x27')](db[_0xa91a('0x28')][_0xa91a('0x29')],function(_0x526332){return{'name':_0x526332[_0xa91a('0x2a')],'type':_0x526332['type'][_0xa91a('0x2b')]};});_0x46ce7d[_0xa91a('0x2c')]=_[_0xa91a('0x27')](_0x4f9475,'name');_0x46ce7d['query']=_['keys'](_0x72f097[_0xa91a('0x2d')]);_0x46ce7d['filters']=_['intersection'](_0x46ce7d[_0xa91a('0x2c')],_0x46ce7d[_0xa91a('0x2d')]);_0x14eb28['attributes']=_['intersection'](_0x46ce7d['model'],qs[_0xa91a('0x2e')](_0x72f097[_0xa91a('0x2d')][_0xa91a('0x2e')]));_0x14eb28['attributes']=_0x14eb28['attributes'][_0xa91a('0x2f')]?_0x14eb28[_0xa91a('0x30')]:_0x46ce7d[_0xa91a('0x2c')];if(!_0x72f097[_0xa91a('0x2d')][_0xa91a('0x31')](_0xa91a('0x32'))){_0x14eb28[_0xa91a('0x33')]=qs[_0xa91a('0x33')](_0x72f097[_0xa91a('0x2d')]['limit']);_0x14eb28[_0xa91a('0x1a')]=qs[_0xa91a('0x1a')](_0x72f097[_0xa91a('0x2d')][_0xa91a('0x1a')]);}_0x14eb28['order']=qs['sort'](_0x72f097[_0xa91a('0x2d')][_0xa91a('0x34')]);_0x14eb28[_0xa91a('0x35')]=qs[_0xa91a('0x36')](_[_0xa91a('0x37')](_0x72f097['query'],_0x46ce7d[_0xa91a('0x36')]),_0x4f9475);if(_0x72f097[_0xa91a('0x2d')][_0xa91a('0x38')]){_0x14eb28[_0xa91a('0x35')]=_['merge'](_0x14eb28[_0xa91a('0x35')],{'$or':_['map'](_0x4f9475,function(_0x161aac){if(_0x161aac[_0xa91a('0x39')]!==_0xa91a('0x3a')){var _0x4ab230={};_0x4ab230[_0x161aac[_0xa91a('0x24')]]={'$like':'%'+_0x72f097[_0xa91a('0x2d')][_0xa91a('0x38')]+'%'};return _0x4ab230;}})});}_0x14eb28=_[_0xa91a('0x3b')]({},_0x14eb28,_0x72f097[_0xa91a('0x3c')]);var _0x2cc389={'where':_0x14eb28['where']};return db[_0xa91a('0x28')]['count'](_0x2cc389)[_0xa91a('0x22')](function(_0x1f40e7){_0x1048c5[_0xa91a('0x19')]=_0x1f40e7;if(_0x72f097[_0xa91a('0x2d')][_0xa91a('0x3d')]){_0x14eb28[_0xa91a('0x3e')]=[{'all':!![]}];}return db[_0xa91a('0x28')][_0xa91a('0x3f')](_0x14eb28);})[_0xa91a('0x22')](function(_0x58c758){_0x1048c5['rows']=_0x58c758;return _0x1048c5;})['then'](respondWithFilteredResult(_0x55ecd8,_0x14eb28))['catch'](handleError(_0x55ecd8,null));};exports[_0xa91a('0x40')]=function(_0x22fa17,_0x20f73d){var _0x157082={'raw':!![],'where':{'id':_0x22fa17[_0xa91a('0x41')]['id']}},_0xcf6f76={};_0xcf6f76[_0xa91a('0x2c')]=_[_0xa91a('0x42')](db[_0xa91a('0x28')][_0xa91a('0x29')]);_0xcf6f76[_0xa91a('0x2d')]=_[_0xa91a('0x42')](_0x22fa17[_0xa91a('0x2d')]);_0xcf6f76[_0xa91a('0x36')]=_['intersection'](_0xcf6f76['model'],_0xcf6f76[_0xa91a('0x2d')]);_0x157082[_0xa91a('0x30')]=_[_0xa91a('0x43')](_0xcf6f76['model'],qs[_0xa91a('0x2e')](_0x22fa17[_0xa91a('0x2d')][_0xa91a('0x2e')]));_0x157082[_0xa91a('0x30')]=_0x157082['attributes']['length']?_0x157082[_0xa91a('0x30')]:_0xcf6f76[_0xa91a('0x2c')];if(_0x22fa17[_0xa91a('0x2d')][_0xa91a('0x3d')]){_0x157082[_0xa91a('0x3e')]=[{'all':!![]}];}_0x157082=_[_0xa91a('0x3b')]({},_0x157082,_0x22fa17[_0xa91a('0x3c')]);return db[_0xa91a('0x28')][_0xa91a('0x44')](_0x157082)[_0xa91a('0x22')](handleEntityNotFound(_0x20f73d,null))['then'](respondWithResult(_0x20f73d,null))['catch'](handleError(_0x20f73d,null));};exports[_0xa91a('0x45')]=function(_0xfd3688,_0x28a4ee){return db[_0xa91a('0x28')][_0xa91a('0x45')](_0xfd3688[_0xa91a('0x46')],{})['then'](respondWithResult(_0x28a4ee,0xc9))[_0xa91a('0x47')](handleError(_0x28a4ee,null));};exports[_0xa91a('0x20')]=function(_0xabf8fd,_0x1b77ec){if(_0xabf8fd[_0xa91a('0x46')]['id']){delete _0xabf8fd[_0xa91a('0x46')]['id'];}return db['Cdr'][_0xa91a('0x44')]({'where':{'id':_0xabf8fd[_0xa91a('0x41')]['id']}})[_0xa91a('0x22')](handleEntityNotFound(_0x1b77ec,null))[_0xa91a('0x22')](saveUpdates(_0xabf8fd[_0xa91a('0x46')],null))[_0xa91a('0x22')](respondWithResult(_0x1b77ec,null))[_0xa91a('0x47')](handleError(_0x1b77ec,null));};exports[_0xa91a('0x21')]=function(_0x347ff8,_0x5b1122){return db[_0xa91a('0x28')][_0xa91a('0x44')]({'where':{'id':_0x347ff8[_0xa91a('0x41')]['id']}})[_0xa91a('0x22')](handleEntityNotFound(_0x5b1122,null))[_0xa91a('0x22')](removeEntity(_0x5b1122,null))[_0xa91a('0x47')](handleError(_0x5b1122,null));};exports['describe']=function(_0x9ba2a5,_0x3c05fa){return db[_0xa91a('0x28')][_0xa91a('0x48')]()[_0xa91a('0x22')](respondWithResult(_0x3c05fa,null))[_0xa91a('0x47')](handleError(_0x3c05fa,null));};