Built motion from commit (unavailable).|2.0.75
[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 _0xafc4=['dateStart','dateEnd','intersection','model','attributes','fields','length','nolimit','limit','sort','where','filters','pick','day','merge','filter','map','options','includeAll','catch','show','params','create','bulkCreate','body','find','bulkDestroy','ids','addFields','AnalyticCustomReport','findOne','transaction','CustomReportId','findAll','fast-json-patch','moment','mustache','util','path','sox','squel','crypto','jsforce','desk.js','to-csv','querystring','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','end','json','count','offset','Content-Range','apply','reject','save','then','destroy','error','name','send','index','AnalyticFieldReport','rawAttributes','keys','query'];(function(_0x45e5f2,_0xc803d0){var _0x333b0a=function(_0xa16e8a){while(--_0xa16e8a){_0x45e5f2['push'](_0x45e5f2['shift']());}};_0x333b0a(++_0xc803d0);}(_0xafc4,0x69));var _0x4afc=function(_0x3c7e99,_0x177ea1){_0x3c7e99=_0x3c7e99-0x0;var _0x3654be=_0xafc4[_0x3c7e99];return _0x3654be;};'use strict';var jsonpatch=require(_0x4afc('0x0'));var rp=require('request-promise');var moment=require(_0x4afc('0x1'));var BPromise=require('bluebird');var Mustache=require(_0x4afc('0x2'));var util=require(_0x4afc('0x3'));var path=require(_0x4afc('0x4'));var sox=require(_0x4afc('0x5'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x4afc('0x6'));var crypto=require(_0x4afc('0x7'));var jsforce=require(_0x4afc('0x8'));var deskjs=require(_0x4afc('0x9'));var toCsv=require(_0x4afc('0xa'));var querystring=require(_0x4afc('0xb'));var Papa=require('papaparse');var qs=require(_0x4afc('0xc'));var logger=require(_0x4afc('0xd'))(_0x4afc('0xe'));var utils=require(_0x4afc('0xf'));var config=require(_0x4afc('0x10'));var db=require(_0x4afc('0x11'))['db'];function respondWithStatusCode(_0x5542ec,_0x5c523b){_0x5c523b=_0x5c523b||0xcc;return function(_0x7f127f){if(_0x7f127f){return _0x5542ec['sendStatus'](_0x5c523b);}return _0x5542ec[_0x4afc('0x12')](_0x5c523b)[_0x4afc('0x13')]();};}function respondWithResult(_0x49b56f,_0x38b322){_0x38b322=_0x38b322||0xc8;return function(_0x3fb54a){if(_0x3fb54a){return _0x49b56f[_0x4afc('0x12')](_0x38b322)[_0x4afc('0x14')](_0x3fb54a);}};}function respondWithFilteredResult(_0x1d8f98,_0x2f1c59){return function(_0x1ad8fd){if(_0x1ad8fd){var _0x23b03e=_0x1ad8fd[_0x4afc('0x15')],_0x5effb4=_0x2f1c59[_0x4afc('0x16')],_0x26f3f1=_0x2f1c59['offset']+_0x2f1c59['limit'],_0x429fd8;if(_0x26f3f1>=_0x23b03e){_0x26f3f1=_0x23b03e;_0x429fd8=0xc8;}else{_0x429fd8=0xce;}_0x1d8f98[_0x4afc('0x12')](_0x429fd8);return _0x1d8f98['set'](_0x4afc('0x17'),_0x5effb4+'-'+_0x26f3f1+'/'+_0x23b03e)[_0x4afc('0x14')](_0x1ad8fd);}return null;};}function patchUpdates(_0x2b928b){return function(_0x31eec4){try{jsonpatch[_0x4afc('0x18')](_0x31eec4,_0x2b928b,!![]);}catch(_0x3ebdc8){return BPromise[_0x4afc('0x19')](_0x3ebdc8);}return _0x31eec4[_0x4afc('0x1a')]();};}function saveUpdates(_0x16365f,_0x135349){return function(_0x178229){if(_0x178229){return _0x178229['update'](_0x16365f)[_0x4afc('0x1b')](function(_0x25603b){return _0x25603b;});}return null;};}function removeEntity(_0x32865e,_0x14558a){return function(_0x557a7e){if(_0x557a7e){return _0x557a7e[_0x4afc('0x1c')]()[_0x4afc('0x1b')](function(){_0x32865e[_0x4afc('0x12')](0xcc)[_0x4afc('0x13')]();});}};}function handleEntityNotFound(_0x1559b8,_0x3add4c){return function(_0x3ad7a5){if(!_0x3ad7a5){_0x1559b8['sendStatus'](0x194);}return _0x3ad7a5;};}function handleError(_0x5403e4,_0x3ecf2d){_0x3ecf2d=_0x3ecf2d||0x1f4;return function(_0x57f37c){logger[_0x4afc('0x1d')](_0x57f37c['stack']);if(_0x57f37c[_0x4afc('0x1e')]){delete _0x57f37c[_0x4afc('0x1e')];}_0x5403e4[_0x4afc('0x12')](_0x3ecf2d)[_0x4afc('0x1f')](_0x57f37c);};}exports[_0x4afc('0x20')]=function(_0x28a86c,_0x40a0db){var _0x383a71={},_0x2bb837={},_0x100220={'count':0x0,'rows':[]};var _0x4e8273=db[_0x4afc('0x21')][_0x4afc('0x22')];_0x2bb837['model']=_[_0x4afc('0x23')](_0x4e8273);var _0x244f6c={'dateStart':_0x28a86c[_0x4afc('0x24')]['dateStart'],'dateEnd':_0x28a86c['query']['dateEnd']};delete _0x28a86c[_0x4afc('0x24')][_0x4afc('0x25')];delete _0x28a86c['query'][_0x4afc('0x26')];_0x2bb837[_0x4afc('0x24')]=_['keys'](_0x28a86c['query']);_0x2bb837['filters']=_[_0x4afc('0x27')](_0x2bb837[_0x4afc('0x28')],_0x2bb837[_0x4afc('0x24')]);_0x383a71[_0x4afc('0x29')]=_[_0x4afc('0x27')](_0x2bb837[_0x4afc('0x28')],qs['fields'](_0x28a86c[_0x4afc('0x24')][_0x4afc('0x2a')]));_0x383a71[_0x4afc('0x29')]=_0x383a71[_0x4afc('0x29')][_0x4afc('0x2b')]?_0x383a71[_0x4afc('0x29')]:_0x2bb837[_0x4afc('0x28')];if(!_0x28a86c[_0x4afc('0x24')]['hasOwnProperty'](_0x4afc('0x2c'))){_0x383a71['limit']=qs['limit'](_0x28a86c[_0x4afc('0x24')][_0x4afc('0x2d')]);_0x383a71[_0x4afc('0x16')]=qs[_0x4afc('0x16')](_0x28a86c[_0x4afc('0x24')][_0x4afc('0x16')]);}_0x383a71['order']=qs[_0x4afc('0x2e')](_0x28a86c[_0x4afc('0x24')][_0x4afc('0x2e')]);_0x383a71[_0x4afc('0x2f')]=qs[_0x4afc('0x30')](_[_0x4afc('0x31')](_0x28a86c['query'],_0x2bb837[_0x4afc('0x30')]));if(_0x244f6c[_0x4afc('0x25')]){if(_0x244f6c[_0x4afc('0x26')]){_0x244f6c[_0x4afc('0x26')]=moment(_0x244f6c['dateEnd'])['add'](0x1,_0x4afc('0x32'));}else{_0x244f6c[_0x4afc('0x26')]=moment(_0x244f6c[_0x4afc('0x25')])['add'](0x1,'day');}_[_0x4afc('0x33')](_0x383a71['where'],{'createdAt':{'$gte':_0x244f6c['dateStart'],'$lte':_0x244f6c[_0x4afc('0x26')]}});}if(_0x28a86c[_0x4afc('0x24')][_0x4afc('0x34')]){_0x383a71[_0x4afc('0x2f')]=_[_0x4afc('0x33')](_0x383a71[_0x4afc('0x2f')],{'$or':_[_0x4afc('0x35')](_0x383a71[_0x4afc('0x29')],function(_0x3ccc5a){var _0x38f762={};_0x38f762[_0x3ccc5a]={'$like':'%'+_0x28a86c[_0x4afc('0x24')][_0x4afc('0x34')]+'%'};return _0x38f762;})});}_0x383a71=_[_0x4afc('0x33')]({},_0x383a71,_0x28a86c[_0x4afc('0x36')]);var _0x46dd2a={'where':_0x383a71['where']};return db[_0x4afc('0x21')][_0x4afc('0x15')](_0x46dd2a)[_0x4afc('0x1b')](function(_0xe6db12){_0x100220[_0x4afc('0x15')]=_0xe6db12;if(_0x28a86c[_0x4afc('0x24')][_0x4afc('0x37')]){_0x383a71['include']=[{'all':!![]}];}return db['AnalyticFieldReport']['findAll'](_0x383a71);})[_0x4afc('0x1b')](function(_0x105c03){_0x100220['rows']=_0x105c03;return _0x100220;})[_0x4afc('0x1b')](respondWithFilteredResult(_0x40a0db,_0x383a71))[_0x4afc('0x38')](handleError(_0x40a0db,null));};exports[_0x4afc('0x39')]=function(_0x397996,_0x545109){var _0x12b5db={'raw':![],'where':{'id':_0x397996[_0x4afc('0x3a')]['id']}},_0x45c9c3={};_0x45c9c3[_0x4afc('0x28')]=_[_0x4afc('0x23')](db[_0x4afc('0x21')]['rawAttributes']);_0x45c9c3[_0x4afc('0x24')]=_['keys'](_0x397996[_0x4afc('0x24')]);_0x45c9c3[_0x4afc('0x30')]=_[_0x4afc('0x27')](_0x45c9c3['model'],_0x45c9c3['query']);_0x12b5db[_0x4afc('0x29')]=_[_0x4afc('0x27')](_0x45c9c3[_0x4afc('0x28')],qs[_0x4afc('0x2a')](_0x397996[_0x4afc('0x24')][_0x4afc('0x2a')]));_0x12b5db[_0x4afc('0x29')]=_0x12b5db[_0x4afc('0x29')]['length']?_0x12b5db[_0x4afc('0x29')]:_0x45c9c3[_0x4afc('0x28')];if(_0x397996['query'][_0x4afc('0x37')]){_0x12b5db['include']=[{'all':!![]}];}_0x12b5db=_[_0x4afc('0x33')]({},_0x12b5db,_0x397996[_0x4afc('0x36')]);return db[_0x4afc('0x21')]['find'](_0x12b5db)[_0x4afc('0x1b')](handleEntityNotFound(_0x545109,null))[_0x4afc('0x1b')](respondWithResult(_0x545109,null))[_0x4afc('0x38')](handleError(_0x545109,null));};exports[_0x4afc('0x3b')]=function(_0x4772db,_0x19a0ac){return db['AnalyticFieldReport']['create'](_0x4772db['body'],{})[_0x4afc('0x1b')](respondWithResult(_0x19a0ac,0xc9))[_0x4afc('0x38')](handleError(_0x19a0ac,null));};exports[_0x4afc('0x3c')]=function(_0x269c24,_0xb5cca9){return db[_0x4afc('0x21')][_0x4afc('0x3c')](_0x269c24[_0x4afc('0x3d')],{'raw':![],'individualHooks':!![]})[_0x4afc('0x1b')](respondWithResult(_0xb5cca9,0xc9))[_0x4afc('0x38')](handleError(_0xb5cca9,null));};exports['update']=function(_0x40bb3b,_0x4d7e3f){if(_0x40bb3b['body']['id']){delete _0x40bb3b[_0x4afc('0x3d')]['id'];}return db['AnalyticFieldReport'][_0x4afc('0x3e')]({'where':{'id':_0x40bb3b[_0x4afc('0x3a')]['id']}})[_0x4afc('0x1b')](handleEntityNotFound(_0x4d7e3f,null))[_0x4afc('0x1b')](saveUpdates(_0x40bb3b['body'],null))[_0x4afc('0x1b')](respondWithResult(_0x4d7e3f,null))['catch'](handleError(_0x4d7e3f,null));};exports[_0x4afc('0x1c')]=function(_0x14afa7,_0x3625c9){return db[_0x4afc('0x21')][_0x4afc('0x3e')]({'where':{'id':_0x14afa7[_0x4afc('0x3a')]['id']}})[_0x4afc('0x1b')](handleEntityNotFound(_0x3625c9,null))[_0x4afc('0x1b')](removeEntity(_0x3625c9,null))[_0x4afc('0x38')](handleError(_0x3625c9,null));};exports[_0x4afc('0x3f')]=function(_0x322eb8,_0x3915d5){return db['AnalyticFieldReport'][_0x4afc('0x1c')]({'where':{'id':_0x322eb8[_0x4afc('0x24')][_0x4afc('0x40')]||[]},'raw':![],'individualHooks':!![]})[_0x4afc('0x1b')](respondWithResult(_0x3915d5,0xcc))[_0x4afc('0x38')](handleError(_0x3915d5,null));};exports[_0x4afc('0x41')]=function(_0x2fd538,_0x10c254,_0x369f01){return db[_0x4afc('0x42')][_0x4afc('0x43')]({'where':{'id':_0x2fd538[_0x4afc('0x3a')]['id']}})[_0x4afc('0x1b')](handleEntityNotFound(_0x10c254,null))['then'](function(_0x2abf25){if(_0x2abf25){return db['sequelize'][_0x4afc('0x44')](function(_0x2abc1b){return db[_0x4afc('0x21')][_0x4afc('0x1c')]({'where':{'CustomReportId':_0x2fd538['params']['id']},'transaction':_0x2abc1b})['then'](function(_0x240ea8){var _0x2f9790=_['map'](_0x2fd538[_0x4afc('0x3d')],function(_0x3af52c){delete _0x3af52c['id'];_0x3af52c[_0x4afc('0x45')]=_0x2fd538[_0x4afc('0x3a')]['id'];return _0x3af52c;});return db[_0x4afc('0x21')][_0x4afc('0x3c')](_0x2f9790,{'transaction':_0x2abc1b});});})[_0x4afc('0x1b')](function(){return db[_0x4afc('0x21')][_0x4afc('0x46')]({'where':{'CustomReportId':_0x2fd538[_0x4afc('0x3a')]['id']}});});}})[_0x4afc('0x1b')](respondWithResult(_0x10c254,null))[_0x4afc('0x38')](handleError(_0x10c254,null));};