15b8e8b621f8ec1f1f493383a653016dbc3d3af7
[motion2.git] / server / api / integrationReport / integrationReport.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 _0x483f=['destroy','sendStatus','error','stack','send','index','IntegrationReport','rawAttributes','fieldName','type','model','map','query','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','filters','pick','where','merge','VIRTUAL','filter','findAll','rows','catch','show','params','keys','length','includeAll','options','find','create','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','fs-extra','squel','crypto','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','status','end','count','offset','Content-Range','json','save','update','then'];(function(_0x231559,_0x6c65b4){var _0x4251b4=function(_0x298524){while(--_0x298524){_0x231559['push'](_0x231559['shift']());}};_0x4251b4(++_0x6c65b4);}(_0x483f,0xfb));var _0xf483=function(_0x3b6f04,_0x560cef){_0x3b6f04=_0x3b6f04-0x0;var _0x497c6d=_0x483f[_0x3b6f04];return _0x497c6d;};'use strict';var emlformat=require(_0xf483('0x0'));var rimraf=require(_0xf483('0x1'));var zipdir=require(_0xf483('0x2'));var jsonpatch=require(_0xf483('0x3'));var rp=require(_0xf483('0x4'));var moment=require('moment');var BPromise=require(_0xf483('0x5'));var Mustache=require(_0xf483('0x6'));var util=require(_0xf483('0x7'));var path=require(_0xf483('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xf483('0x9'));var _=require('lodash');var squel=require(_0xf483('0xa'));var crypto=require(_0xf483('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xf483('0xc'));var toCsv=require(_0xf483('0xd'));var querystring=require(_0xf483('0xe'));var Papa=require('papaparse');var Redis=require(_0xf483('0xf'));var authService=require(_0xf483('0x10'));var qs=require(_0xf483('0x11'));var as=require(_0xf483('0x12'));var hardwareService=require(_0xf483('0x13'));var logger=require(_0xf483('0x14'))('api');var utils=require(_0xf483('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xf483('0x16'));var db=require(_0xf483('0x17'))['db'];function respondWithStatusCode(_0x57b725,_0x1d0775){_0x1d0775=_0x1d0775||0xcc;return function(_0x34318a){if(_0x34318a){return _0x57b725['sendStatus'](_0x1d0775);}return _0x57b725[_0xf483('0x18')](_0x1d0775)[_0xf483('0x19')]();};}function respondWithResult(_0x543990,_0x57aca){_0x57aca=_0x57aca||0xc8;return function(_0x35c4c0){if(_0x35c4c0){return _0x543990['status'](_0x57aca)['json'](_0x35c4c0);}};}function respondWithFilteredResult(_0x3ebe56,_0x25b869){return function(_0x32dab8){if(_0x32dab8){var _0x1c5633=_0x32dab8[_0xf483('0x1a')],_0x5e6bad=_0x25b869[_0xf483('0x1b')],_0x460c2a=_0x25b869[_0xf483('0x1b')]+_0x25b869['limit'],_0x571553;if(_0x460c2a>=_0x1c5633){_0x460c2a=_0x1c5633;_0x571553=0xc8;}else{_0x571553=0xce;}_0x3ebe56['status'](_0x571553);return _0x3ebe56['set'](_0xf483('0x1c'),_0x5e6bad+'-'+_0x460c2a+'/'+_0x1c5633)[_0xf483('0x1d')](_0x32dab8);}return null;};}function patchUpdates(_0x488647){return function(_0x48e128){try{jsonpatch['apply'](_0x48e128,_0x488647,!![]);}catch(_0x35a6f9){return BPromise['reject'](_0x35a6f9);}return _0x48e128[_0xf483('0x1e')]();};}function saveUpdates(_0x45f762,_0xefc457){return function(_0x2a429c){if(_0x2a429c){return _0x2a429c[_0xf483('0x1f')](_0x45f762)[_0xf483('0x20')](function(_0x293949){return _0x293949;});}return null;};}function removeEntity(_0x23b3fc,_0xd8930e){return function(_0x36c6af){if(_0x36c6af){return _0x36c6af[_0xf483('0x21')]()[_0xf483('0x20')](function(){_0x23b3fc['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0xd5c46e,_0x295941){return function(_0xe46a41){if(!_0xe46a41){_0xd5c46e[_0xf483('0x22')](0x194);}return _0xe46a41;};}function handleError(_0x3a567a,_0x27e817){_0x27e817=_0x27e817||0x1f4;return function(_0x52e517){logger[_0xf483('0x23')](_0x52e517[_0xf483('0x24')]);if(_0x52e517['name']){delete _0x52e517['name'];}_0x3a567a[_0xf483('0x18')](_0x27e817)[_0xf483('0x25')](_0x52e517);};}exports[_0xf483('0x26')]=function(_0x5300af,_0x49e2b1){var _0x2f9a3d={},_0x28897b={},_0x26d812={'count':0x0,'rows':[]};var _0x3d13a9=_['map'](db[_0xf483('0x27')][_0xf483('0x28')],function(_0x388d49){return{'name':_0x388d49[_0xf483('0x29')],'type':_0x388d49[_0xf483('0x2a')]['key']};});_0x28897b[_0xf483('0x2b')]=_[_0xf483('0x2c')](_0x3d13a9,'name');_0x28897b[_0xf483('0x2d')]=_['keys'](_0x5300af['query']);_0x28897b['filters']=_[_0xf483('0x2e')](_0x28897b['model'],_0x28897b['query']);_0x2f9a3d[_0xf483('0x2f')]=_['intersection'](_0x28897b[_0xf483('0x2b')],qs[_0xf483('0x30')](_0x5300af[_0xf483('0x2d')]['fields']));_0x2f9a3d[_0xf483('0x2f')]=_0x2f9a3d[_0xf483('0x2f')]['length']?_0x2f9a3d[_0xf483('0x2f')]:_0x28897b[_0xf483('0x2b')];if(!_0x5300af['query'][_0xf483('0x31')](_0xf483('0x32'))){_0x2f9a3d[_0xf483('0x33')]=qs[_0xf483('0x33')](_0x5300af[_0xf483('0x2d')][_0xf483('0x33')]);_0x2f9a3d[_0xf483('0x1b')]=qs[_0xf483('0x1b')](_0x5300af[_0xf483('0x2d')][_0xf483('0x1b')]);}_0x2f9a3d[_0xf483('0x34')]=qs['sort'](_0x5300af[_0xf483('0x2d')]['sort']);_0x2f9a3d['where']=qs[_0xf483('0x35')](_[_0xf483('0x36')](_0x5300af['query'],_0x28897b['filters']),_0x3d13a9);if(_0x5300af[_0xf483('0x2d')]['filter']){_0x2f9a3d[_0xf483('0x37')]=_[_0xf483('0x38')](_0x2f9a3d[_0xf483('0x37')],{'$or':_[_0xf483('0x2c')](_0x3d13a9,function(_0x43d5fd){if(_0x43d5fd[_0xf483('0x2a')]!==_0xf483('0x39')){var _0x1de3ef={};_0x1de3ef[_0x43d5fd['name']]={'$like':'%'+_0x5300af[_0xf483('0x2d')][_0xf483('0x3a')]+'%'};return _0x1de3ef;}})});}_0x2f9a3d=_[_0xf483('0x38')]({},_0x2f9a3d,_0x5300af['options']);var _0x27860c={'where':_0x2f9a3d[_0xf483('0x37')]};return db[_0xf483('0x27')][_0xf483('0x1a')](_0x27860c)[_0xf483('0x20')](function(_0x3b97ec){_0x26d812[_0xf483('0x1a')]=_0x3b97ec;if(_0x5300af['query']['includeAll']){_0x2f9a3d['include']=[{'all':!![]}];}return db[_0xf483('0x27')][_0xf483('0x3b')](_0x2f9a3d);})[_0xf483('0x20')](function(_0x36f11c){_0x26d812[_0xf483('0x3c')]=_0x36f11c;return _0x26d812;})[_0xf483('0x20')](respondWithFilteredResult(_0x49e2b1,_0x2f9a3d))[_0xf483('0x3d')](handleError(_0x49e2b1,null));};exports[_0xf483('0x3e')]=function(_0x26377d,_0x5c048b){var _0xb9a586={'raw':![],'where':{'id':_0x26377d[_0xf483('0x3f')]['id']}},_0x1696f8={};_0x1696f8[_0xf483('0x2b')]=_[_0xf483('0x40')](db[_0xf483('0x27')][_0xf483('0x28')]);_0x1696f8[_0xf483('0x2d')]=_[_0xf483('0x40')](_0x26377d[_0xf483('0x2d')]);_0x1696f8[_0xf483('0x35')]=_[_0xf483('0x2e')](_0x1696f8[_0xf483('0x2b')],_0x1696f8[_0xf483('0x2d')]);_0xb9a586[_0xf483('0x2f')]=_[_0xf483('0x2e')](_0x1696f8[_0xf483('0x2b')],qs['fields'](_0x26377d[_0xf483('0x2d')][_0xf483('0x30')]));_0xb9a586[_0xf483('0x2f')]=_0xb9a586[_0xf483('0x2f')][_0xf483('0x41')]?_0xb9a586['attributes']:_0x1696f8[_0xf483('0x2b')];if(_0x26377d[_0xf483('0x2d')][_0xf483('0x42')]){_0xb9a586['include']=[{'all':!![]}];}_0xb9a586=_[_0xf483('0x38')]({},_0xb9a586,_0x26377d[_0xf483('0x43')]);return db['IntegrationReport'][_0xf483('0x44')](_0xb9a586)[_0xf483('0x20')](handleEntityNotFound(_0x5c048b,null))[_0xf483('0x20')](respondWithResult(_0x5c048b,null))[_0xf483('0x3d')](handleError(_0x5c048b,null));};exports['create']=function(_0x5dfe01,_0x25f502){return db[_0xf483('0x27')][_0xf483('0x45')](_0x5dfe01[_0xf483('0x46')],{})['then'](respondWithResult(_0x25f502,0xc9))['catch'](handleError(_0x25f502,null));};exports[_0xf483('0x1f')]=function(_0xbf2ddb,_0x390376){if(_0xbf2ddb['body']['id']){delete _0xbf2ddb[_0xf483('0x46')]['id'];}return db[_0xf483('0x27')]['find']({'where':{'id':_0xbf2ddb[_0xf483('0x3f')]['id']}})[_0xf483('0x20')](handleEntityNotFound(_0x390376,null))[_0xf483('0x20')](saveUpdates(_0xbf2ddb[_0xf483('0x46')],null))[_0xf483('0x20')](respondWithResult(_0x390376,null))[_0xf483('0x3d')](handleError(_0x390376,null));};exports[_0xf483('0x21')]=function(_0xd4d4e,_0x55f9e3){return db[_0xf483('0x27')]['find']({'where':{'id':_0xd4d4e[_0xf483('0x3f')]['id']}})['then'](handleEntityNotFound(_0x55f9e3,null))[_0xf483('0x20')](removeEntity(_0x55f9e3,null))[_0xf483('0x3d')](handleError(_0x55f9e3,null));};exports['describe']=function(_0x1a192e,_0x442526){return db[_0xf483('0x27')]['describe']()[_0xf483('0x20')](respondWithResult(_0x442526,null))[_0xf483('0x3d')](handleError(_0x442526,null));};