Built motion from commit 5ad77b03.|2.6.3
[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 _0x5f8e=['pick','filter','where','merge','VIRTUAL','options','then','include','rows','catch','show','keys','includeAll','find','create','body','params','describe','fast-json-patch','moment','mustache','util','path','to-csv','fs-extra','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','sendStatus','error','stack','name','send','index','map','IntegrationReport','rawAttributes','fieldName','type','key','model','query','attributes','intersection','fields','length','hasOwnProperty','sort','filters'];(function(_0x32585c,_0x51b850){var _0x129ed7=function(_0x599fdf){while(--_0x599fdf){_0x32585c['push'](_0x32585c['shift']());}};_0x129ed7(++_0x51b850);}(_0x5f8e,0x1c2));var _0xe5f8=function(_0x26fc81,_0x57fc19){_0x26fc81=_0x26fc81-0x0;var _0x9feece=_0x5f8e[_0x26fc81];return _0x9feece;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xe5f8('0x0'));var rp=require('request-promise');var moment=require(_0xe5f8('0x1'));var BPromise=require('bluebird');var Mustache=require(_0xe5f8('0x2'));var util=require(_0xe5f8('0x3'));var path=require(_0xe5f8('0x4'));var sox=require('sox');var csv=require(_0xe5f8('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe5f8('0x6'));var _=require('lodash');var squel=require(_0xe5f8('0x7'));var crypto=require('crypto');var jsforce=require(_0xe5f8('0x8'));var deskjs=require('desk.js');var toCsv=require(_0xe5f8('0x5'));var querystring=require(_0xe5f8('0x9'));var Papa=require(_0xe5f8('0xa'));var Redis=require(_0xe5f8('0xb'));var authService=require(_0xe5f8('0xc'));var qs=require(_0xe5f8('0xd'));var as=require(_0xe5f8('0xe'));var hardwareService=require(_0xe5f8('0xf'));var logger=require(_0xe5f8('0x10'))('api');var utils=require(_0xe5f8('0x11'));var config=require('../../config/environment');var licenseUtil=require(_0xe5f8('0x12'));var db=require(_0xe5f8('0x13'))['db'];function respondWithStatusCode(_0x13d1aa,_0x448935){_0x448935=_0x448935||0xcc;return function(_0x3b940a){if(_0x3b940a){return _0x13d1aa['sendStatus'](_0x448935);}return _0x13d1aa[_0xe5f8('0x14')](_0x448935)[_0xe5f8('0x15')]();};}function respondWithResult(_0x21f3d6,_0x2045bb){_0x2045bb=_0x2045bb||0xc8;return function(_0x250d0b){if(_0x250d0b){return _0x21f3d6['status'](_0x2045bb)[_0xe5f8('0x16')](_0x250d0b);}};}function respondWithFilteredResult(_0x505745,_0x1fe34f){return function(_0x224ef9){if(_0x224ef9){var _0x47d085=typeof _0x1fe34f[_0xe5f8('0x17')]===_0xe5f8('0x18')&&typeof _0x1fe34f[_0xe5f8('0x19')]==='undefined';var _0x16fafc=_0x224ef9[_0xe5f8('0x1a')];var _0x1cda5c=_0x47d085?0x0:_0x1fe34f[_0xe5f8('0x17')];var _0x4918ed=_0x47d085?_0x224ef9[_0xe5f8('0x1a')]:_0x1fe34f['offset']+_0x1fe34f[_0xe5f8('0x19')];var _0x5c912a;if(_0x4918ed>=_0x16fafc){_0x4918ed=_0x16fafc;_0x5c912a=0xc8;}else{_0x5c912a=0xce;}_0x505745[_0xe5f8('0x14')](_0x5c912a);return _0x505745[_0xe5f8('0x1b')](_0xe5f8('0x1c'),_0x1cda5c+'-'+_0x4918ed+'/'+_0x16fafc)[_0xe5f8('0x16')](_0x224ef9);}return null;};}function patchUpdates(_0x58683f){return function(_0x170a28){try{jsonpatch[_0xe5f8('0x1d')](_0x170a28,_0x58683f,!![]);}catch(_0x1a1c4d){return BPromise[_0xe5f8('0x1e')](_0x1a1c4d);}return _0x170a28[_0xe5f8('0x1f')]();};}function saveUpdates(_0x1f457c,_0x68e133){return function(_0x4dd06c){if(_0x4dd06c){return _0x4dd06c[_0xe5f8('0x20')](_0x1f457c)['then'](function(_0x389a6f){return _0x389a6f;});}return null;};}function removeEntity(_0x2f8d9d,_0x4d4f3f){return function(_0x1016b8){if(_0x1016b8){return _0x1016b8['destroy']()['then'](function(){_0x2f8d9d['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x553cab,_0x49b824){return function(_0x329faf){if(!_0x329faf){_0x553cab[_0xe5f8('0x21')](0x194);}return _0x329faf;};}function handleError(_0x43e66b,_0x22f21f){_0x22f21f=_0x22f21f||0x1f4;return function(_0x1302cf){logger[_0xe5f8('0x22')](_0x1302cf[_0xe5f8('0x23')]);if(_0x1302cf[_0xe5f8('0x24')]){delete _0x1302cf[_0xe5f8('0x24')];}_0x43e66b['status'](_0x22f21f)[_0xe5f8('0x25')](_0x1302cf);};}exports[_0xe5f8('0x26')]=function(_0xddc5e8,_0x47af7b){var _0x36aa04={},_0x165e9b={},_0xa96ad9={'count':0x0,'rows':[]};var _0x401598=_[_0xe5f8('0x27')](db[_0xe5f8('0x28')][_0xe5f8('0x29')],function(_0x239f9d){return{'name':_0x239f9d[_0xe5f8('0x2a')],'type':_0x239f9d[_0xe5f8('0x2b')][_0xe5f8('0x2c')]};});_0x165e9b[_0xe5f8('0x2d')]=_[_0xe5f8('0x27')](_0x401598,_0xe5f8('0x24'));_0x165e9b['query']=_['keys'](_0xddc5e8['query']);_0x165e9b['filters']=_['intersection'](_0x165e9b[_0xe5f8('0x2d')],_0x165e9b[_0xe5f8('0x2e')]);_0x36aa04[_0xe5f8('0x2f')]=_[_0xe5f8('0x30')](_0x165e9b['model'],qs[_0xe5f8('0x31')](_0xddc5e8[_0xe5f8('0x2e')][_0xe5f8('0x31')]));_0x36aa04[_0xe5f8('0x2f')]=_0x36aa04['attributes'][_0xe5f8('0x32')]?_0x36aa04[_0xe5f8('0x2f')]:_0x165e9b['model'];if(!_0xddc5e8[_0xe5f8('0x2e')][_0xe5f8('0x33')]('nolimit')){_0x36aa04[_0xe5f8('0x19')]=qs['limit'](_0xddc5e8[_0xe5f8('0x2e')][_0xe5f8('0x19')]);_0x36aa04[_0xe5f8('0x17')]=qs['offset'](_0xddc5e8[_0xe5f8('0x2e')][_0xe5f8('0x17')]);}_0x36aa04['order']=qs[_0xe5f8('0x34')](_0xddc5e8[_0xe5f8('0x2e')][_0xe5f8('0x34')]);_0x36aa04['where']=qs[_0xe5f8('0x35')](_[_0xe5f8('0x36')](_0xddc5e8[_0xe5f8('0x2e')],_0x165e9b[_0xe5f8('0x35')]),_0x401598);if(_0xddc5e8[_0xe5f8('0x2e')][_0xe5f8('0x37')]){_0x36aa04[_0xe5f8('0x38')]=_[_0xe5f8('0x39')](_0x36aa04['where'],{'$or':_[_0xe5f8('0x27')](_0x401598,function(_0x3700cd){if(_0x3700cd[_0xe5f8('0x2b')]!==_0xe5f8('0x3a')){var _0x45e7c2={};_0x45e7c2[_0x3700cd[_0xe5f8('0x24')]]={'$like':'%'+_0xddc5e8['query']['filter']+'%'};return _0x45e7c2;}})});}_0x36aa04=_[_0xe5f8('0x39')]({},_0x36aa04,_0xddc5e8[_0xe5f8('0x3b')]);var _0x3e70a3={'where':_0x36aa04[_0xe5f8('0x38')]};return db[_0xe5f8('0x28')][_0xe5f8('0x1a')](_0x3e70a3)[_0xe5f8('0x3c')](function(_0x201c54){_0xa96ad9['count']=_0x201c54;if(_0xddc5e8[_0xe5f8('0x2e')]['includeAll']){_0x36aa04[_0xe5f8('0x3d')]=[{'all':!![]}];}return db[_0xe5f8('0x28')]['findAll'](_0x36aa04);})['then'](function(_0x44c1d4){_0xa96ad9[_0xe5f8('0x3e')]=_0x44c1d4;return _0xa96ad9;})[_0xe5f8('0x3c')](respondWithFilteredResult(_0x47af7b,_0x36aa04))[_0xe5f8('0x3f')](handleError(_0x47af7b,null));};exports[_0xe5f8('0x40')]=function(_0xadb8ac,_0x2dde06){var _0x10ce63={'raw':![],'where':{'id':_0xadb8ac['params']['id']}},_0x1e1c2e={};_0x1e1c2e[_0xe5f8('0x2d')]=_[_0xe5f8('0x41')](db['IntegrationReport']['rawAttributes']);_0x1e1c2e[_0xe5f8('0x2e')]=_[_0xe5f8('0x41')](_0xadb8ac['query']);_0x1e1c2e[_0xe5f8('0x35')]=_[_0xe5f8('0x30')](_0x1e1c2e['model'],_0x1e1c2e['query']);_0x10ce63[_0xe5f8('0x2f')]=_[_0xe5f8('0x30')](_0x1e1c2e[_0xe5f8('0x2d')],qs[_0xe5f8('0x31')](_0xadb8ac[_0xe5f8('0x2e')][_0xe5f8('0x31')]));_0x10ce63[_0xe5f8('0x2f')]=_0x10ce63['attributes'][_0xe5f8('0x32')]?_0x10ce63[_0xe5f8('0x2f')]:_0x1e1c2e[_0xe5f8('0x2d')];if(_0xadb8ac[_0xe5f8('0x2e')][_0xe5f8('0x42')]){_0x10ce63[_0xe5f8('0x3d')]=[{'all':!![]}];}_0x10ce63=_[_0xe5f8('0x39')]({},_0x10ce63,_0xadb8ac['options']);return db[_0xe5f8('0x28')][_0xe5f8('0x43')](_0x10ce63)[_0xe5f8('0x3c')](handleEntityNotFound(_0x2dde06,null))[_0xe5f8('0x3c')](respondWithResult(_0x2dde06,null))[_0xe5f8('0x3f')](handleError(_0x2dde06,null));};exports[_0xe5f8('0x44')]=function(_0x4a9826,_0x510abc){return db[_0xe5f8('0x28')][_0xe5f8('0x44')](_0x4a9826[_0xe5f8('0x45')],{})[_0xe5f8('0x3c')](respondWithResult(_0x510abc,0xc9))[_0xe5f8('0x3f')](handleError(_0x510abc,null));};exports[_0xe5f8('0x20')]=function(_0x56ee60,_0x1c606b){if(_0x56ee60[_0xe5f8('0x45')]['id']){delete _0x56ee60[_0xe5f8('0x45')]['id'];}return db['IntegrationReport']['find']({'where':{'id':_0x56ee60[_0xe5f8('0x46')]['id']}})[_0xe5f8('0x3c')](handleEntityNotFound(_0x1c606b,null))[_0xe5f8('0x3c')](saveUpdates(_0x56ee60[_0xe5f8('0x45')],null))['then'](respondWithResult(_0x1c606b,null))[_0xe5f8('0x3f')](handleError(_0x1c606b,null));};exports['destroy']=function(_0x53dba0,_0x3a362a){return db[_0xe5f8('0x28')][_0xe5f8('0x43')]({'where':{'id':_0x53dba0['params']['id']}})['then'](handleEntityNotFound(_0x3a362a,null))['then'](removeEntity(_0x3a362a,null))['catch'](handleError(_0x3a362a,null));};exports[_0xe5f8('0x47')]=function(_0x5935cd,_0x59dfa3){return db[_0xe5f8('0x28')][_0xe5f8('0x47')]()[_0xe5f8('0x3c')](respondWithResult(_0x59dfa3,null))[_0xe5f8('0x3f')](handleError(_0x59dfa3,null));};