466fada9cdd1144cf37441425568aefcc3a7e29f
[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 _0xae87=['apply','reject','save','update','then','destroy','status','error','stack','name','send','render','body','contact','message','agent','interaction','index','map','Cdr','rawAttributes','fieldName','type','key','model','query','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','includeAll','findAll','rows','show','keys','length','include','merge','find','catch','create','params','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','offset','limit','undefined','count','set','Content-Range','json'];(function(_0x76d804,_0xb92a74){var _0x5b6d51=function(_0x8c378){while(--_0x8c378){_0x76d804['push'](_0x76d804['shift']());}};_0x5b6d51(++_0xb92a74);}(_0xae87,0x12f));var _0x7ae8=function(_0x195c21,_0x332612){_0x195c21=_0x195c21-0x0;var _0x3576a8=_0xae87[_0x195c21];return _0x3576a8;};'use strict';var emlformat=require(_0x7ae8('0x0'));var rimraf=require(_0x7ae8('0x1'));var zipdir=require(_0x7ae8('0x2'));var jsonpatch=require(_0x7ae8('0x3'));var rp=require(_0x7ae8('0x4'));var moment=require('moment');var BPromise=require(_0x7ae8('0x5'));var Mustache=require(_0x7ae8('0x6'));var util=require('util');var path=require('path');var sox=require(_0x7ae8('0x7'));var csv=require('to-csv');var ejs=require(_0x7ae8('0x8'));var fs=require('fs');var fs_extra=require(_0x7ae8('0x9'));var _=require(_0x7ae8('0xa'));var squel=require(_0x7ae8('0xb'));var crypto=require(_0x7ae8('0xc'));var jsforce=require(_0x7ae8('0xd'));var deskjs=require(_0x7ae8('0xe'));var toCsv=require('to-csv');var querystring=require(_0x7ae8('0xf'));var Papa=require(_0x7ae8('0x10'));var Redis=require(_0x7ae8('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x7ae8('0x12'));var as=require(_0x7ae8('0x13'));var hardwareService=require(_0x7ae8('0x14'));var logger=require(_0x7ae8('0x15'))(_0x7ae8('0x16'));var utils=require('../../config/utils');var config=require(_0x7ae8('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x7ae8('0x18'))['db'];function respondWithStatusCode(_0x4741be,_0xe306fb){_0xe306fb=_0xe306fb||0xcc;return function(_0x568e47){if(_0x568e47){return _0x4741be[_0x7ae8('0x19')](_0xe306fb);}return _0x4741be['status'](_0xe306fb)['end']();};}function respondWithResult(_0x4781e9,_0x2ec124){_0x2ec124=_0x2ec124||0xc8;return function(_0x3ca1e4){if(_0x3ca1e4){return _0x4781e9['status'](_0x2ec124)['json'](_0x3ca1e4);}};}function respondWithFilteredResult(_0x3f2671,_0x5e2d80){return function(_0x1bae45){if(_0x1bae45){var _0x1ec565=typeof _0x5e2d80[_0x7ae8('0x1a')]==='undefined'&&typeof _0x5e2d80[_0x7ae8('0x1b')]===_0x7ae8('0x1c');var _0x101ea6=_0x1bae45[_0x7ae8('0x1d')];var _0x240a5f=_0x1ec565?0x0:_0x5e2d80[_0x7ae8('0x1a')];var _0x209d96=_0x1ec565?_0x1bae45['count']:_0x5e2d80[_0x7ae8('0x1a')]+_0x5e2d80[_0x7ae8('0x1b')];var _0x5d53c2;if(_0x209d96>=_0x101ea6){_0x209d96=_0x101ea6;_0x5d53c2=0xc8;}else{_0x5d53c2=0xce;}_0x3f2671['status'](_0x5d53c2);return _0x3f2671[_0x7ae8('0x1e')](_0x7ae8('0x1f'),_0x240a5f+'-'+_0x209d96+'/'+_0x101ea6)[_0x7ae8('0x20')](_0x1bae45);}return null;};}function patchUpdates(_0x655430){return function(_0x5f3fa8){try{jsonpatch[_0x7ae8('0x21')](_0x5f3fa8,_0x655430,!![]);}catch(_0x3567da){return BPromise[_0x7ae8('0x22')](_0x3567da);}return _0x5f3fa8[_0x7ae8('0x23')]();};}function saveUpdates(_0x3068d4,_0x892d27){return function(_0x1838f3){if(_0x1838f3){return _0x1838f3[_0x7ae8('0x24')](_0x3068d4)[_0x7ae8('0x25')](function(_0x566776){return _0x566776;});}return null;};}function removeEntity(_0xfdbda1,_0x1baf58){return function(_0x1c48e2){if(_0x1c48e2){return _0x1c48e2[_0x7ae8('0x26')]()[_0x7ae8('0x25')](function(){_0xfdbda1[_0x7ae8('0x27')](0xcc)['end']();});}};}function handleEntityNotFound(_0x58f980,_0xa7a6b8){return function(_0x38875c){if(!_0x38875c){_0x58f980['sendStatus'](0x194);}return _0x38875c;};}function handleError(_0x2c66a8,_0x2ec92d){_0x2ec92d=_0x2ec92d||0x1f4;return function(_0x5fdfa7){logger[_0x7ae8('0x28')](_0x5fdfa7[_0x7ae8('0x29')]);if(_0x5fdfa7[_0x7ae8('0x2a')]){delete _0x5fdfa7[_0x7ae8('0x2a')];}_0x2c66a8['status'](_0x2ec92d)[_0x7ae8('0x2b')](_0x5fdfa7);};}function getMustacheRender(_0x2a5324,_0x56638e){return Mustache[_0x7ae8('0x2c')](_0x2a5324,_['merge'](_0x56638e[_0x7ae8('0x2d')],{'contact':_0x56638e[_0x7ae8('0x2e')],'message':_0x56638e[_0x7ae8('0x2f')],'agent':_0x56638e[_0x7ae8('0x30')],'interaction':_0x56638e[_0x7ae8('0x31')],'account':_0x56638e['account']}))||'';}exports[_0x7ae8('0x32')]=function(_0x287510,_0x42ccfd){var _0x2cd132={},_0x56bc43={},_0x578e45={'count':0x0,'rows':[]};var _0x1ec581=_[_0x7ae8('0x33')](db[_0x7ae8('0x34')][_0x7ae8('0x35')],function(_0x780967){return{'name':_0x780967[_0x7ae8('0x36')],'type':_0x780967[_0x7ae8('0x37')][_0x7ae8('0x38')]};});_0x56bc43[_0x7ae8('0x39')]=_[_0x7ae8('0x33')](_0x1ec581,_0x7ae8('0x2a'));_0x56bc43['query']=_['keys'](_0x287510[_0x7ae8('0x3a')]);_0x56bc43[_0x7ae8('0x3b')]=_[_0x7ae8('0x3c')](_0x56bc43[_0x7ae8('0x39')],_0x56bc43[_0x7ae8('0x3a')]);_0x2cd132['attributes']=_[_0x7ae8('0x3c')](_0x56bc43[_0x7ae8('0x39')],qs[_0x7ae8('0x3d')](_0x287510['query'][_0x7ae8('0x3d')]));_0x2cd132[_0x7ae8('0x3e')]=_0x2cd132[_0x7ae8('0x3e')]['length']?_0x2cd132[_0x7ae8('0x3e')]:_0x56bc43['model'];if(!_0x287510[_0x7ae8('0x3a')][_0x7ae8('0x3f')](_0x7ae8('0x40'))){_0x2cd132['limit']=qs['limit'](_0x287510[_0x7ae8('0x3a')][_0x7ae8('0x1b')]);_0x2cd132[_0x7ae8('0x1a')]=qs[_0x7ae8('0x1a')](_0x287510[_0x7ae8('0x3a')][_0x7ae8('0x1a')]);}_0x2cd132[_0x7ae8('0x41')]=qs['sort'](_0x287510[_0x7ae8('0x3a')][_0x7ae8('0x42')]);_0x2cd132[_0x7ae8('0x43')]=qs[_0x7ae8('0x3b')](_[_0x7ae8('0x44')](_0x287510[_0x7ae8('0x3a')],_0x56bc43[_0x7ae8('0x3b')]),_0x1ec581);if(_0x287510['query'][_0x7ae8('0x45')]){_0x2cd132[_0x7ae8('0x43')]=_['merge'](_0x2cd132['where'],{'$or':_[_0x7ae8('0x33')](_0x1ec581,function(_0x385efc){if(_0x385efc[_0x7ae8('0x37')]!==_0x7ae8('0x46')){var _0x136088={};_0x136088[_0x385efc[_0x7ae8('0x2a')]]={'$like':'%'+_0x287510[_0x7ae8('0x3a')][_0x7ae8('0x45')]+'%'};return _0x136088;}})});}_0x2cd132=_['merge']({},_0x2cd132,_0x287510['options']);var _0x3f25f6={'where':_0x2cd132[_0x7ae8('0x43')]};return db['Cdr'][_0x7ae8('0x1d')](_0x3f25f6)[_0x7ae8('0x25')](function(_0x342db8){_0x578e45[_0x7ae8('0x1d')]=_0x342db8;if(_0x287510['query'][_0x7ae8('0x47')]){_0x2cd132['include']=[{'all':!![]}];}return db[_0x7ae8('0x34')][_0x7ae8('0x48')](_0x2cd132);})[_0x7ae8('0x25')](function(_0x467724){_0x578e45[_0x7ae8('0x49')]=_0x467724;return _0x578e45;})[_0x7ae8('0x25')](respondWithFilteredResult(_0x42ccfd,_0x2cd132))['catch'](handleError(_0x42ccfd,null));};exports[_0x7ae8('0x4a')]=function(_0x25cc4c,_0x36d790){var _0x4c65f8={'raw':!![],'where':{'id':_0x25cc4c['params']['id']}},_0x13134f={};_0x13134f['model']=_[_0x7ae8('0x4b')](db['Cdr'][_0x7ae8('0x35')]);_0x13134f[_0x7ae8('0x3a')]=_[_0x7ae8('0x4b')](_0x25cc4c[_0x7ae8('0x3a')]);_0x13134f[_0x7ae8('0x3b')]=_[_0x7ae8('0x3c')](_0x13134f[_0x7ae8('0x39')],_0x13134f[_0x7ae8('0x3a')]);_0x4c65f8[_0x7ae8('0x3e')]=_['intersection'](_0x13134f[_0x7ae8('0x39')],qs['fields'](_0x25cc4c[_0x7ae8('0x3a')][_0x7ae8('0x3d')]));_0x4c65f8[_0x7ae8('0x3e')]=_0x4c65f8[_0x7ae8('0x3e')][_0x7ae8('0x4c')]?_0x4c65f8[_0x7ae8('0x3e')]:_0x13134f[_0x7ae8('0x39')];if(_0x25cc4c[_0x7ae8('0x3a')][_0x7ae8('0x47')]){_0x4c65f8[_0x7ae8('0x4d')]=[{'all':!![]}];}_0x4c65f8=_[_0x7ae8('0x4e')]({},_0x4c65f8,_0x25cc4c['options']);return db[_0x7ae8('0x34')][_0x7ae8('0x4f')](_0x4c65f8)[_0x7ae8('0x25')](handleEntityNotFound(_0x36d790,null))[_0x7ae8('0x25')](respondWithResult(_0x36d790,null))[_0x7ae8('0x50')](handleError(_0x36d790,null));};exports[_0x7ae8('0x51')]=function(_0x3f7eab,_0x380443){return db[_0x7ae8('0x34')]['create'](_0x3f7eab['body'],{})[_0x7ae8('0x25')](respondWithResult(_0x380443,0xc9))['catch'](handleError(_0x380443,null));};exports[_0x7ae8('0x24')]=function(_0x33f7f4,_0x276a14){if(_0x33f7f4[_0x7ae8('0x2d')]['id']){delete _0x33f7f4[_0x7ae8('0x2d')]['id'];}return db[_0x7ae8('0x34')][_0x7ae8('0x4f')]({'where':{'id':_0x33f7f4[_0x7ae8('0x52')]['id']}})[_0x7ae8('0x25')](handleEntityNotFound(_0x276a14,null))['then'](saveUpdates(_0x33f7f4['body'],null))['then'](respondWithResult(_0x276a14,null))[_0x7ae8('0x50')](handleError(_0x276a14,null));};exports[_0x7ae8('0x26')]=function(_0x5d5948,_0x3775ce){return db[_0x7ae8('0x34')][_0x7ae8('0x4f')]({'where':{'id':_0x5d5948[_0x7ae8('0x52')]['id']}})[_0x7ae8('0x25')](handleEntityNotFound(_0x3775ce,null))[_0x7ae8('0x25')](removeEntity(_0x3775ce,null))[_0x7ae8('0x50')](handleError(_0x3775ce,null));};exports[_0x7ae8('0x53')]=function(_0x1fd8df,_0xdb7a){return db[_0x7ae8('0x34')][_0x7ae8('0x53')]()[_0x7ae8('0x25')](respondWithResult(_0xdb7a,null))[_0x7ae8('0x50')](handleError(_0xdb7a,null));};