e575c30e56626ba8f5d0733e9408e2913f8f4f78
[motion2.git] / server / api / analyticFieldReport / analyticFieldReport.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 _0x6a04=['find','bulkDestroy','ids','addFields','AnalyticCustomReport','sequelize','transaction','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','limit','count','offset','apply','reject','save','update','destroy','then','end','error','stack','name','send','index','map','AnalyticFieldReport','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','options','includeAll','findAll','rows','show','params','include','catch','create','body','bulkCreate'];(function(_0x11ad65,_0x352d3c){var _0x35590c=function(_0x2c3845){while(--_0x2c3845){_0x11ad65['push'](_0x11ad65['shift']());}};_0x35590c(++_0x352d3c);}(_0x6a04,0xf7));var _0x46a0=function(_0x3287f9,_0x18c5d8){_0x3287f9=_0x3287f9-0x0;var _0x39d93c=_0x6a04[_0x3287f9];return _0x39d93c;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x46a0('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x46a0('0x1'));var rp=require('request-promise');var moment=require(_0x46a0('0x2'));var BPromise=require(_0x46a0('0x3'));var Mustache=require(_0x46a0('0x4'));var util=require(_0x46a0('0x5'));var path=require(_0x46a0('0x6'));var sox=require(_0x46a0('0x7'));var csv=require(_0x46a0('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x46a0('0x9'));var squel=require(_0x46a0('0xa'));var crypto=require(_0x46a0('0xb'));var jsforce=require(_0x46a0('0xc'));var deskjs=require(_0x46a0('0xd'));var toCsv=require(_0x46a0('0x8'));var querystring=require('querystring');var Papa=require(_0x46a0('0xe'));var Redis=require('ioredis');var authService=require(_0x46a0('0xf'));var qs=require(_0x46a0('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x46a0('0x11'));var logger=require('../../config/logger')(_0x46a0('0x12'));var utils=require(_0x46a0('0x13'));var config=require(_0x46a0('0x14'));var licenseUtil=require(_0x46a0('0x15'));var db=require(_0x46a0('0x16'))['db'];function respondWithStatusCode(_0x488219,_0x2629fb){_0x2629fb=_0x2629fb||0xcc;return function(_0x10a95c){if(_0x10a95c){return _0x488219[_0x46a0('0x17')](_0x2629fb);}return _0x488219[_0x46a0('0x18')](_0x2629fb)['end']();};}function respondWithResult(_0x119390,_0x8122a2){_0x8122a2=_0x8122a2||0xc8;return function(_0x253f2c){if(_0x253f2c){return _0x119390[_0x46a0('0x18')](_0x8122a2)[_0x46a0('0x19')](_0x253f2c);}};}function respondWithFilteredResult(_0x36aa1f,_0x909406){return function(_0x2d718d){if(_0x2d718d){var _0x2b811e=typeof _0x909406['offset']===_0x46a0('0x1a')&&typeof _0x909406[_0x46a0('0x1b')]===_0x46a0('0x1a');var _0x581765=_0x2d718d[_0x46a0('0x1c')];var _0x2e28d9=_0x2b811e?0x0:_0x909406[_0x46a0('0x1d')];var _0x2eb2fa=_0x2b811e?_0x2d718d[_0x46a0('0x1c')]:_0x909406[_0x46a0('0x1d')]+_0x909406[_0x46a0('0x1b')];var _0x48b762;if(_0x2eb2fa>=_0x581765){_0x2eb2fa=_0x581765;_0x48b762=0xc8;}else{_0x48b762=0xce;}_0x36aa1f[_0x46a0('0x18')](_0x48b762);return _0x36aa1f['set']('Content-Range',_0x2e28d9+'-'+_0x2eb2fa+'/'+_0x581765)[_0x46a0('0x19')](_0x2d718d);}return null;};}function patchUpdates(_0x205020){return function(_0x2ebc2f){try{jsonpatch[_0x46a0('0x1e')](_0x2ebc2f,_0x205020,!![]);}catch(_0x44b173){return BPromise[_0x46a0('0x1f')](_0x44b173);}return _0x2ebc2f[_0x46a0('0x20')]();};}function saveUpdates(_0x4799af,_0xe5d3c0){return function(_0xfc7d96){if(_0xfc7d96){return _0xfc7d96[_0x46a0('0x21')](_0x4799af)['then'](function(_0xf579ce){return _0xf579ce;});}return null;};}function removeEntity(_0x3680ac,_0x30c43b){return function(_0x50fb05){if(_0x50fb05){return _0x50fb05[_0x46a0('0x22')]()[_0x46a0('0x23')](function(){_0x3680ac['status'](0xcc)[_0x46a0('0x24')]();});}};}function handleEntityNotFound(_0x4e1a8d,_0x5197a9){return function(_0xfc3d28){if(!_0xfc3d28){_0x4e1a8d[_0x46a0('0x17')](0x194);}return _0xfc3d28;};}function handleError(_0x23cda8,_0x30b0c2){_0x30b0c2=_0x30b0c2||0x1f4;return function(_0x7bdd59){logger[_0x46a0('0x25')](_0x7bdd59[_0x46a0('0x26')]);if(_0x7bdd59['name']){delete _0x7bdd59[_0x46a0('0x27')];}_0x23cda8[_0x46a0('0x18')](_0x30b0c2)[_0x46a0('0x28')](_0x7bdd59);};}exports[_0x46a0('0x29')]=function(_0x34326a,_0x6a186d){var _0x2b338c={},_0x1847d8={},_0x2e880f={'count':0x0,'rows':[]};var _0x1afb70=_[_0x46a0('0x2a')](db[_0x46a0('0x2b')][_0x46a0('0x2c')],function(_0x462cdd){return{'name':_0x462cdd[_0x46a0('0x2d')],'type':_0x462cdd[_0x46a0('0x2e')][_0x46a0('0x2f')]};});_0x1847d8[_0x46a0('0x30')]=_['map'](_0x1afb70,_0x46a0('0x27'));_0x1847d8[_0x46a0('0x31')]=_[_0x46a0('0x32')](_0x34326a[_0x46a0('0x31')]);_0x1847d8['filters']=_[_0x46a0('0x33')](_0x1847d8[_0x46a0('0x30')],_0x1847d8[_0x46a0('0x31')]);_0x2b338c[_0x46a0('0x34')]=_[_0x46a0('0x33')](_0x1847d8[_0x46a0('0x30')],qs[_0x46a0('0x35')](_0x34326a[_0x46a0('0x31')][_0x46a0('0x35')]));_0x2b338c[_0x46a0('0x34')]=_0x2b338c['attributes']['length']?_0x2b338c[_0x46a0('0x34')]:_0x1847d8[_0x46a0('0x30')];if(!_0x34326a[_0x46a0('0x31')][_0x46a0('0x36')](_0x46a0('0x37'))){_0x2b338c['limit']=qs['limit'](_0x34326a[_0x46a0('0x31')][_0x46a0('0x1b')]);_0x2b338c[_0x46a0('0x1d')]=qs['offset'](_0x34326a[_0x46a0('0x31')]['offset']);}_0x2b338c[_0x46a0('0x38')]=qs[_0x46a0('0x39')](_0x34326a[_0x46a0('0x31')][_0x46a0('0x39')]);_0x2b338c[_0x46a0('0x3a')]=qs[_0x46a0('0x3b')](_['pick'](_0x34326a['query'],_0x1847d8['filters']),_0x1afb70);if(_0x34326a[_0x46a0('0x31')][_0x46a0('0x3c')]){_0x2b338c[_0x46a0('0x3a')]=_[_0x46a0('0x3d')](_0x2b338c[_0x46a0('0x3a')],{'$or':_['map'](_0x1afb70,function(_0x47249f){if(_0x47249f[_0x46a0('0x2e')]!=='VIRTUAL'){var _0x27e31d={};_0x27e31d[_0x47249f['name']]={'$like':'%'+_0x34326a['query'][_0x46a0('0x3c')]+'%'};return _0x27e31d;}})});}_0x2b338c=_['merge']({},_0x2b338c,_0x34326a[_0x46a0('0x3e')]);var _0x37ba13={'where':_0x2b338c[_0x46a0('0x3a')]};return db['AnalyticFieldReport']['count'](_0x37ba13)[_0x46a0('0x23')](function(_0x1a7ace){_0x2e880f[_0x46a0('0x1c')]=_0x1a7ace;if(_0x34326a[_0x46a0('0x31')][_0x46a0('0x3f')]){_0x2b338c['include']=[{'all':!![]}];}return db['AnalyticFieldReport'][_0x46a0('0x40')](_0x2b338c);})[_0x46a0('0x23')](function(_0x12fbd9){_0x2e880f[_0x46a0('0x41')]=_0x12fbd9;return _0x2e880f;})[_0x46a0('0x23')](respondWithFilteredResult(_0x6a186d,_0x2b338c))['catch'](handleError(_0x6a186d,null));};exports[_0x46a0('0x42')]=function(_0x3aac10,_0x46ac49){var _0xd3a3cb={'raw':![],'where':{'id':_0x3aac10[_0x46a0('0x43')]['id']}},_0x8b72d2={};_0x8b72d2[_0x46a0('0x30')]=_[_0x46a0('0x32')](db[_0x46a0('0x2b')]['rawAttributes']);_0x8b72d2[_0x46a0('0x31')]=_[_0x46a0('0x32')](_0x3aac10[_0x46a0('0x31')]);_0x8b72d2[_0x46a0('0x3b')]=_[_0x46a0('0x33')](_0x8b72d2[_0x46a0('0x30')],_0x8b72d2[_0x46a0('0x31')]);_0xd3a3cb['attributes']=_[_0x46a0('0x33')](_0x8b72d2[_0x46a0('0x30')],qs[_0x46a0('0x35')](_0x3aac10[_0x46a0('0x31')][_0x46a0('0x35')]));_0xd3a3cb[_0x46a0('0x34')]=_0xd3a3cb[_0x46a0('0x34')]['length']?_0xd3a3cb[_0x46a0('0x34')]:_0x8b72d2[_0x46a0('0x30')];if(_0x3aac10[_0x46a0('0x31')][_0x46a0('0x3f')]){_0xd3a3cb[_0x46a0('0x44')]=[{'all':!![]}];}_0xd3a3cb=_[_0x46a0('0x3d')]({},_0xd3a3cb,_0x3aac10[_0x46a0('0x3e')]);return db[_0x46a0('0x2b')]['find'](_0xd3a3cb)['then'](handleEntityNotFound(_0x46ac49,null))['then'](respondWithResult(_0x46ac49,null))[_0x46a0('0x45')](handleError(_0x46ac49,null));};exports[_0x46a0('0x46')]=function(_0x3a8a80,_0x2f9013){return db[_0x46a0('0x2b')]['create'](_0x3a8a80[_0x46a0('0x47')],{})['then'](respondWithResult(_0x2f9013,0xc9))[_0x46a0('0x45')](handleError(_0x2f9013,null));};exports[_0x46a0('0x48')]=function(_0xbf2a27,_0x42efdf){return db[_0x46a0('0x2b')][_0x46a0('0x48')](_0xbf2a27['body'],{'raw':![],'individualHooks':!![]})[_0x46a0('0x23')](respondWithResult(_0x42efdf,0xc9))['catch'](handleError(_0x42efdf,null));};exports['update']=function(_0x3bbc24,_0x3483ec){if(_0x3bbc24[_0x46a0('0x47')]['id']){delete _0x3bbc24[_0x46a0('0x47')]['id'];}return db[_0x46a0('0x2b')][_0x46a0('0x49')]({'where':{'id':_0x3bbc24[_0x46a0('0x43')]['id']}})['then'](handleEntityNotFound(_0x3483ec,null))[_0x46a0('0x23')](saveUpdates(_0x3bbc24['body'],null))[_0x46a0('0x23')](respondWithResult(_0x3483ec,null))[_0x46a0('0x45')](handleError(_0x3483ec,null));};exports[_0x46a0('0x22')]=function(_0x39f1b1,_0x5655ab){return db[_0x46a0('0x2b')]['find']({'where':{'id':_0x39f1b1[_0x46a0('0x43')]['id']}})['then'](handleEntityNotFound(_0x5655ab,null))[_0x46a0('0x23')](removeEntity(_0x5655ab,null))[_0x46a0('0x45')](handleError(_0x5655ab,null));};exports[_0x46a0('0x4a')]=function(_0x2aebb1,_0x2fe367){return db[_0x46a0('0x2b')][_0x46a0('0x22')]({'where':{'id':_0x2aebb1[_0x46a0('0x31')][_0x46a0('0x4b')]||[]},'raw':![],'individualHooks':!![]})['then'](respondWithResult(_0x2fe367,0xcc))[_0x46a0('0x45')](handleError(_0x2fe367,null));};exports[_0x46a0('0x4c')]=function(_0x3ba4b9,_0x13b8ed,_0x263492){return db[_0x46a0('0x4d')]['findOne']({'where':{'id':_0x3ba4b9[_0x46a0('0x43')]['id']}})[_0x46a0('0x23')](handleEntityNotFound(_0x13b8ed,null))[_0x46a0('0x23')](function(_0x317a65){if(_0x317a65){return db[_0x46a0('0x4e')][_0x46a0('0x4f')](function(_0x37099c){return db[_0x46a0('0x2b')][_0x46a0('0x22')]({'where':{'CustomReportId':_0x3ba4b9[_0x46a0('0x43')]['id']},'transaction':_0x37099c})[_0x46a0('0x23')](function(_0x40059d){var _0x4f53f9=_['map'](_0x3ba4b9[_0x46a0('0x47')],function(_0x1041fd){delete _0x1041fd['id'];_0x1041fd['CustomReportId']=_0x3ba4b9[_0x46a0('0x43')]['id'];return _0x1041fd;});return db[_0x46a0('0x2b')][_0x46a0('0x48')](_0x4f53f9,{'transaction':_0x37099c});});})['then'](function(){return db['AnalyticFieldReport'][_0x46a0('0x40')]({'where':{'CustomReportId':_0x3ba4b9[_0x46a0('0x43')]['id']}});});}})[_0x46a0('0x23')](respondWithResult(_0x13b8ed,null))[_0x46a0('0x45')](handleError(_0x13b8ed,null));};