bfea0e691cfa9ad3eac0a4d187085938c86129c3
[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 _0x7472=['type','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','length','include','find','create','body','bulkCreate','bulkDestroy','ids','addFields','AnalyticCustomReport','sequelize','CustomReportId','eml-format','fast-json-patch','moment','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','Content-Range','apply','update','then','destroy','error','stack','index','map','AnalyticFieldReport','rawAttributes','key','model','name','query','keys','filters','intersection','attributes','fields','nolimit','sort','where','filter','merge'];(function(_0x2beb6f,_0x545855){var _0x1b0e3c=function(_0x4a04bc){while(--_0x4a04bc){_0x2beb6f['push'](_0x2beb6f['shift']());}};_0x1b0e3c(++_0x545855);}(_0x7472,0xb3));var _0x2747=function(_0x21b762,_0xc8ef11){_0x21b762=_0x21b762-0x0;var _0x2ea6d4=_0x7472[_0x21b762];return _0x2ea6d4;};'use strict';var emlformat=require(_0x2747('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x2747('0x1'));var rp=require('request-promise');var moment=require(_0x2747('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x2747('0x3'));var util=require(_0x2747('0x4'));var path=require('path');var sox=require(_0x2747('0x5'));var csv=require(_0x2747('0x6'));var ejs=require(_0x2747('0x7'));var fs=require('fs');var fs_extra=require(_0x2747('0x8'));var _=require(_0x2747('0x9'));var squel=require(_0x2747('0xa'));var crypto=require(_0x2747('0xb'));var jsforce=require(_0x2747('0xc'));var deskjs=require(_0x2747('0xd'));var toCsv=require(_0x2747('0x6'));var querystring=require(_0x2747('0xe'));var Papa=require(_0x2747('0xf'));var Redis=require('ioredis');var authService=require(_0x2747('0x10'));var qs=require(_0x2747('0x11'));var as=require(_0x2747('0x12'));var hardwareService=require(_0x2747('0x13'));var logger=require(_0x2747('0x14'))(_0x2747('0x15'));var utils=require(_0x2747('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x2747('0x17'));var db=require(_0x2747('0x18'))['db'];function respondWithStatusCode(_0x35e2cc,_0x18be54){_0x18be54=_0x18be54||0xcc;return function(_0x2f96ab){if(_0x2f96ab){return _0x35e2cc[_0x2747('0x19')](_0x18be54);}return _0x35e2cc['status'](_0x18be54)[_0x2747('0x1a')]();};}function respondWithResult(_0x2aa79f,_0x5e5c69){_0x5e5c69=_0x5e5c69||0xc8;return function(_0x18feae){if(_0x18feae){return _0x2aa79f[_0x2747('0x1b')](_0x5e5c69)[_0x2747('0x1c')](_0x18feae);}};}function respondWithFilteredResult(_0x39d379,_0x53e443){return function(_0xb965f5){if(_0xb965f5){var _0x3b7285=typeof _0x53e443[_0x2747('0x1d')]===_0x2747('0x1e')&&typeof _0x53e443[_0x2747('0x1f')]===_0x2747('0x1e');var _0x2eca25=_0xb965f5[_0x2747('0x20')];var _0x35beff=_0x3b7285?0x0:_0x53e443[_0x2747('0x1d')];var _0x118ba3=_0x3b7285?_0xb965f5[_0x2747('0x20')]:_0x53e443['offset']+_0x53e443[_0x2747('0x1f')];var _0x3cc56e;if(_0x118ba3>=_0x2eca25){_0x118ba3=_0x2eca25;_0x3cc56e=0xc8;}else{_0x3cc56e=0xce;}_0x39d379[_0x2747('0x1b')](_0x3cc56e);return _0x39d379['set'](_0x2747('0x21'),_0x35beff+'-'+_0x118ba3+'/'+_0x2eca25)['json'](_0xb965f5);}return null;};}function patchUpdates(_0x3ab298){return function(_0xc708b4){try{jsonpatch[_0x2747('0x22')](_0xc708b4,_0x3ab298,!![]);}catch(_0x31e135){return BPromise['reject'](_0x31e135);}return _0xc708b4['save']();};}function saveUpdates(_0x39a57d,_0x138fa8){return function(_0x4de716){if(_0x4de716){return _0x4de716[_0x2747('0x23')](_0x39a57d)[_0x2747('0x24')](function(_0x4944a8){return _0x4944a8;});}return null;};}function removeEntity(_0x186f15,_0x8a02a8){return function(_0x359457){if(_0x359457){return _0x359457[_0x2747('0x25')]()[_0x2747('0x24')](function(){_0x186f15[_0x2747('0x1b')](0xcc)[_0x2747('0x1a')]();});}};}function handleEntityNotFound(_0x160899,_0x30ddfb){return function(_0x207bb2){if(!_0x207bb2){_0x160899['sendStatus'](0x194);}return _0x207bb2;};}function handleError(_0x60f2ba,_0x227812){_0x227812=_0x227812||0x1f4;return function(_0x3f9d3f){logger[_0x2747('0x26')](_0x3f9d3f[_0x2747('0x27')]);if(_0x3f9d3f['name']){delete _0x3f9d3f['name'];}_0x60f2ba[_0x2747('0x1b')](_0x227812)['send'](_0x3f9d3f);};}exports[_0x2747('0x28')]=function(_0xce886f,_0x5c1563){var _0x1d45c3={},_0x13525b={},_0x2365bd={'count':0x0,'rows':[]};var _0x50be9f=_[_0x2747('0x29')](db[_0x2747('0x2a')][_0x2747('0x2b')],function(_0x3313b1){return{'name':_0x3313b1['fieldName'],'type':_0x3313b1['type'][_0x2747('0x2c')]};});_0x13525b[_0x2747('0x2d')]=_['map'](_0x50be9f,_0x2747('0x2e'));_0x13525b[_0x2747('0x2f')]=_[_0x2747('0x30')](_0xce886f['query']);_0x13525b[_0x2747('0x31')]=_[_0x2747('0x32')](_0x13525b['model'],_0x13525b['query']);_0x1d45c3[_0x2747('0x33')]=_[_0x2747('0x32')](_0x13525b[_0x2747('0x2d')],qs[_0x2747('0x34')](_0xce886f[_0x2747('0x2f')][_0x2747('0x34')]));_0x1d45c3[_0x2747('0x33')]=_0x1d45c3[_0x2747('0x33')]['length']?_0x1d45c3[_0x2747('0x33')]:_0x13525b[_0x2747('0x2d')];if(!_0xce886f[_0x2747('0x2f')]['hasOwnProperty'](_0x2747('0x35'))){_0x1d45c3[_0x2747('0x1f')]=qs[_0x2747('0x1f')](_0xce886f[_0x2747('0x2f')][_0x2747('0x1f')]);_0x1d45c3[_0x2747('0x1d')]=qs['offset'](_0xce886f['query']['offset']);}_0x1d45c3['order']=qs[_0x2747('0x36')](_0xce886f[_0x2747('0x2f')][_0x2747('0x36')]);_0x1d45c3[_0x2747('0x37')]=qs[_0x2747('0x31')](_['pick'](_0xce886f[_0x2747('0x2f')],_0x13525b[_0x2747('0x31')]),_0x50be9f);if(_0xce886f['query'][_0x2747('0x38')]){_0x1d45c3['where']=_[_0x2747('0x39')](_0x1d45c3[_0x2747('0x37')],{'$or':_[_0x2747('0x29')](_0x50be9f,function(_0x4c422b){if(_0x4c422b[_0x2747('0x3a')]!==_0x2747('0x3b')){var _0x265201={};_0x265201[_0x4c422b[_0x2747('0x2e')]]={'$like':'%'+_0xce886f['query'][_0x2747('0x38')]+'%'};return _0x265201;}})});}_0x1d45c3=_[_0x2747('0x39')]({},_0x1d45c3,_0xce886f[_0x2747('0x3c')]);var _0x487d5e={'where':_0x1d45c3[_0x2747('0x37')]};return db[_0x2747('0x2a')][_0x2747('0x20')](_0x487d5e)['then'](function(_0x2ffc76){_0x2365bd[_0x2747('0x20')]=_0x2ffc76;if(_0xce886f[_0x2747('0x2f')][_0x2747('0x3d')]){_0x1d45c3['include']=[{'all':!![]}];}return db[_0x2747('0x2a')][_0x2747('0x3e')](_0x1d45c3);})[_0x2747('0x24')](function(_0x23cf33){_0x2365bd[_0x2747('0x3f')]=_0x23cf33;return _0x2365bd;})['then'](respondWithFilteredResult(_0x5c1563,_0x1d45c3))[_0x2747('0x40')](handleError(_0x5c1563,null));};exports[_0x2747('0x41')]=function(_0x1b3173,_0xe4575a){var _0x5e4428={'raw':![],'where':{'id':_0x1b3173[_0x2747('0x42')]['id']}},_0x469c68={};_0x469c68['model']=_[_0x2747('0x30')](db[_0x2747('0x2a')]['rawAttributes']);_0x469c68[_0x2747('0x2f')]=_[_0x2747('0x30')](_0x1b3173['query']);_0x469c68[_0x2747('0x31')]=_[_0x2747('0x32')](_0x469c68['model'],_0x469c68[_0x2747('0x2f')]);_0x5e4428[_0x2747('0x33')]=_[_0x2747('0x32')](_0x469c68[_0x2747('0x2d')],qs[_0x2747('0x34')](_0x1b3173[_0x2747('0x2f')][_0x2747('0x34')]));_0x5e4428[_0x2747('0x33')]=_0x5e4428[_0x2747('0x33')][_0x2747('0x43')]?_0x5e4428[_0x2747('0x33')]:_0x469c68[_0x2747('0x2d')];if(_0x1b3173['query'][_0x2747('0x3d')]){_0x5e4428[_0x2747('0x44')]=[{'all':!![]}];}_0x5e4428=_[_0x2747('0x39')]({},_0x5e4428,_0x1b3173[_0x2747('0x3c')]);return db[_0x2747('0x2a')][_0x2747('0x45')](_0x5e4428)[_0x2747('0x24')](handleEntityNotFound(_0xe4575a,null))[_0x2747('0x24')](respondWithResult(_0xe4575a,null))[_0x2747('0x40')](handleError(_0xe4575a,null));};exports['create']=function(_0x977f03,_0x4fa552){return db[_0x2747('0x2a')][_0x2747('0x46')](_0x977f03[_0x2747('0x47')],{})[_0x2747('0x24')](respondWithResult(_0x4fa552,0xc9))[_0x2747('0x40')](handleError(_0x4fa552,null));};exports[_0x2747('0x48')]=function(_0x5b597b,_0x19a88e){return db['AnalyticFieldReport'][_0x2747('0x48')](_0x5b597b[_0x2747('0x47')],{'raw':![],'individualHooks':!![]})[_0x2747('0x24')](respondWithResult(_0x19a88e,0xc9))[_0x2747('0x40')](handleError(_0x19a88e,null));};exports['update']=function(_0x56743b,_0x313883){if(_0x56743b[_0x2747('0x47')]['id']){delete _0x56743b[_0x2747('0x47')]['id'];}return db[_0x2747('0x2a')][_0x2747('0x45')]({'where':{'id':_0x56743b[_0x2747('0x42')]['id']}})[_0x2747('0x24')](handleEntityNotFound(_0x313883,null))[_0x2747('0x24')](saveUpdates(_0x56743b['body'],null))[_0x2747('0x24')](respondWithResult(_0x313883,null))[_0x2747('0x40')](handleError(_0x313883,null));};exports[_0x2747('0x25')]=function(_0x406e27,_0x44ca35){return db['AnalyticFieldReport']['find']({'where':{'id':_0x406e27[_0x2747('0x42')]['id']}})[_0x2747('0x24')](handleEntityNotFound(_0x44ca35,null))[_0x2747('0x24')](removeEntity(_0x44ca35,null))[_0x2747('0x40')](handleError(_0x44ca35,null));};exports[_0x2747('0x49')]=function(_0x41b4c9,_0x3b1e59){return db['AnalyticFieldReport']['destroy']({'where':{'id':_0x41b4c9[_0x2747('0x2f')][_0x2747('0x4a')]||[]},'raw':![],'individualHooks':!![]})[_0x2747('0x24')](respondWithResult(_0x3b1e59,0xcc))[_0x2747('0x40')](handleError(_0x3b1e59,null));};exports[_0x2747('0x4b')]=function(_0x22f71e,_0x65a89b,_0xa978db){return db[_0x2747('0x4c')]['findOne']({'where':{'id':_0x22f71e['params']['id']}})['then'](handleEntityNotFound(_0x65a89b,null))['then'](function(_0x518d0b){if(_0x518d0b){return db[_0x2747('0x4d')]['transaction'](function(_0x50a053){return db[_0x2747('0x2a')][_0x2747('0x25')]({'where':{'CustomReportId':_0x22f71e['params']['id']},'transaction':_0x50a053})['then'](function(_0x24d1e8){var _0x3a88f1=_['map'](_0x22f71e[_0x2747('0x47')],function(_0x78c01b){delete _0x78c01b['id'];_0x78c01b[_0x2747('0x4e')]=_0x22f71e[_0x2747('0x42')]['id'];return _0x78c01b;});return db[_0x2747('0x2a')][_0x2747('0x48')](_0x3a88f1,{'transaction':_0x50a053});});})[_0x2747('0x24')](function(){return db[_0x2747('0x2a')][_0x2747('0x3e')]({'where':{'CustomReportId':_0x22f71e[_0x2747('0x42')]['id']}});});}})['then'](respondWithResult(_0x65a89b,null))[_0x2747('0x40')](handleError(_0x65a89b,null));};