50bf070eafefd571cfc4f575c336eaea4a78b4ff
[motion2.git] / server / api / memberReport / memberReport.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 _0xf08f=['type','key','model','query','keys','filters','intersection','attributes','fields','length','sort','where','pick','VIRTUAL','filter','options','includeAll','rows','catch','include','find','create','params','describe','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','limit','count','json','apply','reject','save','update','then','destroy','error','stack','name','send','render','merge','body','contact','message','agent','index','map','MemberReport','rawAttributes','fieldName'];(function(_0x3d67b6,_0x3a4255){var _0x3d2fef=function(_0x51aa68){while(--_0x51aa68){_0x3d67b6['push'](_0x3d67b6['shift']());}};_0x3d2fef(++_0x3a4255);}(_0xf08f,0xfc));var _0xff08=function(_0x34bc30,_0x177cb0){_0x34bc30=_0x34bc30-0x0;var _0x5706de=_0xf08f[_0x34bc30];return _0x5706de;};'use strict';var emlformat=require(_0xff08('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xff08('0x1'));var rp=require(_0xff08('0x2'));var moment=require(_0xff08('0x3'));var BPromise=require(_0xff08('0x4'));var Mustache=require(_0xff08('0x5'));var util=require(_0xff08('0x6'));var path=require(_0xff08('0x7'));var sox=require(_0xff08('0x8'));var csv=require('to-csv');var ejs=require(_0xff08('0x9'));var fs=require('fs');var fs_extra=require(_0xff08('0xa'));var _=require(_0xff08('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xff08('0xc'));var deskjs=require(_0xff08('0xd'));var toCsv=require('to-csv');var querystring=require(_0xff08('0xe'));var Papa=require(_0xff08('0xf'));var Redis=require(_0xff08('0x10'));var authService=require(_0xff08('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xff08('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xff08('0x13'));var utils=require(_0xff08('0x14'));var config=require(_0xff08('0x15'));var licenseUtil=require(_0xff08('0x16'));var db=require(_0xff08('0x17'))['db'];function respondWithStatusCode(_0x36b1ab,_0x81631e){_0x81631e=_0x81631e||0xcc;return function(_0x240c7c){if(_0x240c7c){return _0x36b1ab[_0xff08('0x18')](_0x81631e);}return _0x36b1ab[_0xff08('0x19')](_0x81631e)['end']();};}function respondWithResult(_0x7698ed,_0xd803d4){_0xd803d4=_0xd803d4||0xc8;return function(_0x5c05b9){if(_0x5c05b9){return _0x7698ed[_0xff08('0x19')](_0xd803d4)['json'](_0x5c05b9);}};}function respondWithFilteredResult(_0x165442,_0x4edd55){return function(_0x8c0958){if(_0x8c0958){var _0x250d00=typeof _0x4edd55[_0xff08('0x1a')]===_0xff08('0x1b')&&typeof _0x4edd55[_0xff08('0x1c')]==='undefined';var _0xa5d9cc=_0x8c0958[_0xff08('0x1d')];var _0x4dcfcf=_0x250d00?0x0:_0x4edd55[_0xff08('0x1a')];var _0x4e626f=_0x250d00?_0x8c0958[_0xff08('0x1d')]:_0x4edd55[_0xff08('0x1a')]+_0x4edd55[_0xff08('0x1c')];var _0x5c56e5;if(_0x4e626f>=_0xa5d9cc){_0x4e626f=_0xa5d9cc;_0x5c56e5=0xc8;}else{_0x5c56e5=0xce;}_0x165442[_0xff08('0x19')](_0x5c56e5);return _0x165442['set']('Content-Range',_0x4dcfcf+'-'+_0x4e626f+'/'+_0xa5d9cc)[_0xff08('0x1e')](_0x8c0958);}return null;};}function patchUpdates(_0x4426b9){return function(_0x107e62){try{jsonpatch[_0xff08('0x1f')](_0x107e62,_0x4426b9,!![]);}catch(_0x3f8307){return BPromise[_0xff08('0x20')](_0x3f8307);}return _0x107e62[_0xff08('0x21')]();};}function saveUpdates(_0xfd7673,_0xbaeb6e){return function(_0x5648d7){if(_0x5648d7){return _0x5648d7[_0xff08('0x22')](_0xfd7673)[_0xff08('0x23')](function(_0x5097ff){return _0x5097ff;});}return null;};}function removeEntity(_0x3571c8,_0x311df6){return function(_0x2d3fb2){if(_0x2d3fb2){return _0x2d3fb2[_0xff08('0x24')]()[_0xff08('0x23')](function(){_0x3571c8[_0xff08('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4534bb,_0x567e31){return function(_0xff8a84){if(!_0xff8a84){_0x4534bb[_0xff08('0x18')](0x194);}return _0xff8a84;};}function handleError(_0x5d022f,_0x3d9cf1){_0x3d9cf1=_0x3d9cf1||0x1f4;return function(_0x4b652f){logger[_0xff08('0x25')](_0x4b652f[_0xff08('0x26')]);if(_0x4b652f[_0xff08('0x27')]){delete _0x4b652f[_0xff08('0x27')];}_0x5d022f[_0xff08('0x19')](_0x3d9cf1)[_0xff08('0x28')](_0x4b652f);};}function getMustacheRender(_0x43ec4a,_0x2305a9){return Mustache[_0xff08('0x29')](_0x43ec4a,_[_0xff08('0x2a')](_0x2305a9[_0xff08('0x2b')],{'contact':_0x2305a9[_0xff08('0x2c')],'message':_0x2305a9[_0xff08('0x2d')],'agent':_0x2305a9[_0xff08('0x2e')],'interaction':_0x2305a9['interaction'],'account':_0x2305a9['account']}))||'';}exports[_0xff08('0x2f')]=function(_0x5ea2ae,_0x3c84d4){var _0x61ce38={},_0x145359={},_0x1863c4={'count':0x0,'rows':[]};var _0x2b91e5=_[_0xff08('0x30')](db[_0xff08('0x31')][_0xff08('0x32')],function(_0x228226){return{'name':_0x228226[_0xff08('0x33')],'type':_0x228226[_0xff08('0x34')][_0xff08('0x35')]};});_0x145359[_0xff08('0x36')]=_[_0xff08('0x30')](_0x2b91e5,_0xff08('0x27'));_0x145359[_0xff08('0x37')]=_[_0xff08('0x38')](_0x5ea2ae[_0xff08('0x37')]);_0x145359[_0xff08('0x39')]=_[_0xff08('0x3a')](_0x145359[_0xff08('0x36')],_0x145359[_0xff08('0x37')]);_0x61ce38[_0xff08('0x3b')]=_[_0xff08('0x3a')](_0x145359[_0xff08('0x36')],qs[_0xff08('0x3c')](_0x5ea2ae[_0xff08('0x37')]['fields']));_0x61ce38[_0xff08('0x3b')]=_0x61ce38[_0xff08('0x3b')][_0xff08('0x3d')]?_0x61ce38[_0xff08('0x3b')]:_0x145359[_0xff08('0x36')];if(!_0x5ea2ae['query']['hasOwnProperty']('nolimit')){_0x61ce38[_0xff08('0x1c')]=qs[_0xff08('0x1c')](_0x5ea2ae[_0xff08('0x37')][_0xff08('0x1c')]);_0x61ce38[_0xff08('0x1a')]=qs[_0xff08('0x1a')](_0x5ea2ae['query'][_0xff08('0x1a')]);}_0x61ce38['order']=qs[_0xff08('0x3e')](_0x5ea2ae['query'][_0xff08('0x3e')]);_0x61ce38[_0xff08('0x3f')]=qs[_0xff08('0x39')](_[_0xff08('0x40')](_0x5ea2ae['query'],_0x145359['filters']),_0x2b91e5);if(_0x5ea2ae[_0xff08('0x37')]['filter']){_0x61ce38[_0xff08('0x3f')]=_[_0xff08('0x2a')](_0x61ce38[_0xff08('0x3f')],{'$or':_[_0xff08('0x30')](_0x2b91e5,function(_0x3a49b6){if(_0x3a49b6[_0xff08('0x34')]!==_0xff08('0x41')){var _0x4e2be4={};_0x4e2be4[_0x3a49b6[_0xff08('0x27')]]={'$like':'%'+_0x5ea2ae[_0xff08('0x37')][_0xff08('0x42')]+'%'};return _0x4e2be4;}})});}_0x61ce38=_['merge']({},_0x61ce38,_0x5ea2ae[_0xff08('0x43')]);var _0x298ae3={'where':_0x61ce38[_0xff08('0x3f')]};return db[_0xff08('0x31')][_0xff08('0x1d')](_0x298ae3)[_0xff08('0x23')](function(_0x1a5005){_0x1863c4[_0xff08('0x1d')]=_0x1a5005;if(_0x5ea2ae[_0xff08('0x37')][_0xff08('0x44')]){_0x61ce38['include']=[{'all':!![]}];}return db[_0xff08('0x31')]['findAll'](_0x61ce38);})[_0xff08('0x23')](function(_0x2dac3e){_0x1863c4[_0xff08('0x45')]=_0x2dac3e;return _0x1863c4;})[_0xff08('0x23')](respondWithFilteredResult(_0x3c84d4,_0x61ce38))[_0xff08('0x46')](handleError(_0x3c84d4,null));};exports['show']=function(_0x3e72e0,_0xb9ba36){var _0x3f0631={'raw':!![],'where':{'id':_0x3e72e0['params']['id']}},_0x5c4c75={};_0x5c4c75[_0xff08('0x36')]=_['keys'](db[_0xff08('0x31')][_0xff08('0x32')]);_0x5c4c75[_0xff08('0x37')]=_['keys'](_0x3e72e0[_0xff08('0x37')]);_0x5c4c75[_0xff08('0x39')]=_[_0xff08('0x3a')](_0x5c4c75[_0xff08('0x36')],_0x5c4c75[_0xff08('0x37')]);_0x3f0631[_0xff08('0x3b')]=_[_0xff08('0x3a')](_0x5c4c75['model'],qs[_0xff08('0x3c')](_0x3e72e0['query'][_0xff08('0x3c')]));_0x3f0631[_0xff08('0x3b')]=_0x3f0631[_0xff08('0x3b')][_0xff08('0x3d')]?_0x3f0631['attributes']:_0x5c4c75['model'];if(_0x3e72e0['query'][_0xff08('0x44')]){_0x3f0631[_0xff08('0x47')]=[{'all':!![]}];}_0x3f0631=_['merge']({},_0x3f0631,_0x3e72e0[_0xff08('0x43')]);return db[_0xff08('0x31')][_0xff08('0x48')](_0x3f0631)[_0xff08('0x23')](handleEntityNotFound(_0xb9ba36,null))['then'](respondWithResult(_0xb9ba36,null))[_0xff08('0x46')](handleError(_0xb9ba36,null));};exports[_0xff08('0x49')]=function(_0x1365a7,_0x263f35){return db['MemberReport'][_0xff08('0x49')](_0x1365a7[_0xff08('0x2b')],{})[_0xff08('0x23')](respondWithResult(_0x263f35,0xc9))[_0xff08('0x46')](handleError(_0x263f35,null));};exports[_0xff08('0x22')]=function(_0x120fbd,_0x4f19c6){if(_0x120fbd[_0xff08('0x2b')]['id']){delete _0x120fbd[_0xff08('0x2b')]['id'];}return db[_0xff08('0x31')][_0xff08('0x48')]({'where':{'id':_0x120fbd[_0xff08('0x4a')]['id']}})[_0xff08('0x23')](handleEntityNotFound(_0x4f19c6,null))[_0xff08('0x23')](saveUpdates(_0x120fbd['body'],null))['then'](respondWithResult(_0x4f19c6,null))[_0xff08('0x46')](handleError(_0x4f19c6,null));};exports['destroy']=function(_0x1b587f,_0x208f77){return db[_0xff08('0x31')][_0xff08('0x48')]({'where':{'id':_0x1b587f[_0xff08('0x4a')]['id']}})['then'](handleEntityNotFound(_0x208f77,null))[_0xff08('0x23')](removeEntity(_0x208f77,null))[_0xff08('0x46')](handleError(_0x208f77,null));};exports[_0xff08('0x4b')]=function(_0x10f5fe,_0x388d7c){return db[_0xff08('0x31')]['describe']()[_0xff08('0x23')](respondWithResult(_0x388d7c,null))['catch'](handleError(_0x388d7c,null));};