Built motion from commit 0900f080.|2.5.45
[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 _0xe7c1=['../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','offset','undefined','limit','count','status','set','Content-Range','json','apply','reject','save','update','then','destroy','error','stack','name','send','index','IntegrationReport','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','catch','show','params','keys','find','create','body','describe','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','fs-extra','squel','crypto','to-csv','querystring','papaparse','../../components/auth/service'];(function(_0x2879af,_0xde22c8){var _0x3fe016=function(_0x587ef4){while(--_0x587ef4){_0x2879af['push'](_0x2879af['shift']());}};_0x3fe016(++_0xde22c8);}(_0xe7c1,0x1cf));var _0x1e7c=function(_0x17d9e3,_0x1f969c){_0x17d9e3=_0x17d9e3-0x0;var _0x14192d=_0xe7c1[_0x17d9e3];return _0x14192d;};'use strict';var emlformat=require(_0x1e7c('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x1e7c('0x1'));var jsonpatch=require(_0x1e7c('0x2'));var rp=require(_0x1e7c('0x3'));var moment=require(_0x1e7c('0x4'));var BPromise=require(_0x1e7c('0x5'));var Mustache=require(_0x1e7c('0x6'));var util=require(_0x1e7c('0x7'));var path=require(_0x1e7c('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x1e7c('0x9'));var fs=require('fs');var fs_extra=require(_0x1e7c('0xa'));var _=require('lodash');var squel=require(_0x1e7c('0xb'));var crypto=require(_0x1e7c('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x1e7c('0xd'));var querystring=require(_0x1e7c('0xe'));var Papa=require(_0x1e7c('0xf'));var Redis=require('ioredis');var authService=require(_0x1e7c('0x10'));var qs=require(_0x1e7c('0x11'));var as=require(_0x1e7c('0x12'));var hardwareService=require(_0x1e7c('0x13'));var logger=require(_0x1e7c('0x14'))(_0x1e7c('0x15'));var utils=require(_0x1e7c('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x1e7c('0x17'));var db=require(_0x1e7c('0x18'))['db'];function respondWithStatusCode(_0x2c2b9a,_0xfcca82){_0xfcca82=_0xfcca82||0xcc;return function(_0x1b7b8c){if(_0x1b7b8c){return _0x2c2b9a[_0x1e7c('0x19')](_0xfcca82);}return _0x2c2b9a['status'](_0xfcca82)[_0x1e7c('0x1a')]();};}function respondWithResult(_0x21cc3c,_0x4ab3e8){_0x4ab3e8=_0x4ab3e8||0xc8;return function(_0x1998d7){if(_0x1998d7){return _0x21cc3c['status'](_0x4ab3e8)['json'](_0x1998d7);}};}function respondWithFilteredResult(_0xa95a94,_0x5aa2a5){return function(_0x14d591){if(_0x14d591){var _0x692e6c=typeof _0x5aa2a5[_0x1e7c('0x1b')]===_0x1e7c('0x1c')&&typeof _0x5aa2a5[_0x1e7c('0x1d')]===_0x1e7c('0x1c');var _0x44c4e9=_0x14d591[_0x1e7c('0x1e')];var _0x8fb7e4=_0x692e6c?0x0:_0x5aa2a5[_0x1e7c('0x1b')];var _0x1ce082=_0x692e6c?_0x14d591[_0x1e7c('0x1e')]:_0x5aa2a5['offset']+_0x5aa2a5[_0x1e7c('0x1d')];var _0x2a2e8d;if(_0x1ce082>=_0x44c4e9){_0x1ce082=_0x44c4e9;_0x2a2e8d=0xc8;}else{_0x2a2e8d=0xce;}_0xa95a94[_0x1e7c('0x1f')](_0x2a2e8d);return _0xa95a94[_0x1e7c('0x20')](_0x1e7c('0x21'),_0x8fb7e4+'-'+_0x1ce082+'/'+_0x44c4e9)[_0x1e7c('0x22')](_0x14d591);}return null;};}function patchUpdates(_0x256464){return function(_0x566d8e){try{jsonpatch[_0x1e7c('0x23')](_0x566d8e,_0x256464,!![]);}catch(_0x106454){return BPromise[_0x1e7c('0x24')](_0x106454);}return _0x566d8e[_0x1e7c('0x25')]();};}function saveUpdates(_0x5868a8,_0xda9e1a){return function(_0x2edec5){if(_0x2edec5){return _0x2edec5[_0x1e7c('0x26')](_0x5868a8)[_0x1e7c('0x27')](function(_0x211777){return _0x211777;});}return null;};}function removeEntity(_0x23da1a,_0x277ee4){return function(_0x4ed338){if(_0x4ed338){return _0x4ed338[_0x1e7c('0x28')]()[_0x1e7c('0x27')](function(){_0x23da1a[_0x1e7c('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2ef789,_0x4b2cf5){return function(_0x1e4eb2){if(!_0x1e4eb2){_0x2ef789[_0x1e7c('0x19')](0x194);}return _0x1e4eb2;};}function handleError(_0x228d0b,_0x54a001){_0x54a001=_0x54a001||0x1f4;return function(_0x596a9d){logger[_0x1e7c('0x29')](_0x596a9d[_0x1e7c('0x2a')]);if(_0x596a9d[_0x1e7c('0x2b')]){delete _0x596a9d[_0x1e7c('0x2b')];}_0x228d0b[_0x1e7c('0x1f')](_0x54a001)[_0x1e7c('0x2c')](_0x596a9d);};}exports[_0x1e7c('0x2d')]=function(_0x5b9c08,_0x312e07){var _0x388816={},_0x371521={},_0x267991={'count':0x0,'rows':[]};var _0x78b414=_['map'](db[_0x1e7c('0x2e')][_0x1e7c('0x2f')],function(_0x27054c){return{'name':_0x27054c[_0x1e7c('0x30')],'type':_0x27054c[_0x1e7c('0x31')][_0x1e7c('0x32')]};});_0x371521[_0x1e7c('0x33')]=_[_0x1e7c('0x34')](_0x78b414,_0x1e7c('0x2b'));_0x371521[_0x1e7c('0x35')]=_['keys'](_0x5b9c08['query']);_0x371521[_0x1e7c('0x36')]=_[_0x1e7c('0x37')](_0x371521['model'],_0x371521[_0x1e7c('0x35')]);_0x388816[_0x1e7c('0x38')]=_[_0x1e7c('0x37')](_0x371521[_0x1e7c('0x33')],qs[_0x1e7c('0x39')](_0x5b9c08[_0x1e7c('0x35')]['fields']));_0x388816[_0x1e7c('0x38')]=_0x388816[_0x1e7c('0x38')][_0x1e7c('0x3a')]?_0x388816['attributes']:_0x371521[_0x1e7c('0x33')];if(!_0x5b9c08[_0x1e7c('0x35')][_0x1e7c('0x3b')](_0x1e7c('0x3c'))){_0x388816[_0x1e7c('0x1d')]=qs[_0x1e7c('0x1d')](_0x5b9c08[_0x1e7c('0x35')]['limit']);_0x388816[_0x1e7c('0x1b')]=qs[_0x1e7c('0x1b')](_0x5b9c08[_0x1e7c('0x35')][_0x1e7c('0x1b')]);}_0x388816[_0x1e7c('0x3d')]=qs[_0x1e7c('0x3e')](_0x5b9c08[_0x1e7c('0x35')][_0x1e7c('0x3e')]);_0x388816[_0x1e7c('0x3f')]=qs[_0x1e7c('0x36')](_[_0x1e7c('0x40')](_0x5b9c08['query'],_0x371521[_0x1e7c('0x36')]),_0x78b414);if(_0x5b9c08[_0x1e7c('0x35')][_0x1e7c('0x41')]){_0x388816[_0x1e7c('0x3f')]=_['merge'](_0x388816['where'],{'$or':_['map'](_0x78b414,function(_0x58bb1a){if(_0x58bb1a[_0x1e7c('0x31')]!=='VIRTUAL'){var _0x1e45e4={};_0x1e45e4[_0x58bb1a[_0x1e7c('0x2b')]]={'$like':'%'+_0x5b9c08[_0x1e7c('0x35')][_0x1e7c('0x41')]+'%'};return _0x1e45e4;}})});}_0x388816=_[_0x1e7c('0x42')]({},_0x388816,_0x5b9c08[_0x1e7c('0x43')]);var _0x594d49={'where':_0x388816['where']};return db[_0x1e7c('0x2e')][_0x1e7c('0x1e')](_0x594d49)[_0x1e7c('0x27')](function(_0x52e264){_0x267991[_0x1e7c('0x1e')]=_0x52e264;if(_0x5b9c08['query'][_0x1e7c('0x44')]){_0x388816[_0x1e7c('0x45')]=[{'all':!![]}];}return db[_0x1e7c('0x2e')][_0x1e7c('0x46')](_0x388816);})[_0x1e7c('0x27')](function(_0x4bb588){_0x267991[_0x1e7c('0x47')]=_0x4bb588;return _0x267991;})['then'](respondWithFilteredResult(_0x312e07,_0x388816))[_0x1e7c('0x48')](handleError(_0x312e07,null));};exports[_0x1e7c('0x49')]=function(_0x1b6785,_0x29bb59){var _0x4461e0={'raw':![],'where':{'id':_0x1b6785[_0x1e7c('0x4a')]['id']}},_0x3adb3b={};_0x3adb3b[_0x1e7c('0x33')]=_[_0x1e7c('0x4b')](db[_0x1e7c('0x2e')][_0x1e7c('0x2f')]);_0x3adb3b['query']=_[_0x1e7c('0x4b')](_0x1b6785[_0x1e7c('0x35')]);_0x3adb3b[_0x1e7c('0x36')]=_[_0x1e7c('0x37')](_0x3adb3b[_0x1e7c('0x33')],_0x3adb3b['query']);_0x4461e0[_0x1e7c('0x38')]=_[_0x1e7c('0x37')](_0x3adb3b[_0x1e7c('0x33')],qs[_0x1e7c('0x39')](_0x1b6785[_0x1e7c('0x35')]['fields']));_0x4461e0[_0x1e7c('0x38')]=_0x4461e0[_0x1e7c('0x38')][_0x1e7c('0x3a')]?_0x4461e0[_0x1e7c('0x38')]:_0x3adb3b[_0x1e7c('0x33')];if(_0x1b6785[_0x1e7c('0x35')]['includeAll']){_0x4461e0[_0x1e7c('0x45')]=[{'all':!![]}];}_0x4461e0=_[_0x1e7c('0x42')]({},_0x4461e0,_0x1b6785[_0x1e7c('0x43')]);return db[_0x1e7c('0x2e')][_0x1e7c('0x4c')](_0x4461e0)[_0x1e7c('0x27')](handleEntityNotFound(_0x29bb59,null))['then'](respondWithResult(_0x29bb59,null))[_0x1e7c('0x48')](handleError(_0x29bb59,null));};exports['create']=function(_0xc6cc1d,_0x3495ee){return db[_0x1e7c('0x2e')][_0x1e7c('0x4d')](_0xc6cc1d[_0x1e7c('0x4e')],{})['then'](respondWithResult(_0x3495ee,0xc9))['catch'](handleError(_0x3495ee,null));};exports[_0x1e7c('0x26')]=function(_0x4e89f0,_0xed9f2e){if(_0x4e89f0['body']['id']){delete _0x4e89f0[_0x1e7c('0x4e')]['id'];}return db[_0x1e7c('0x2e')][_0x1e7c('0x4c')]({'where':{'id':_0x4e89f0[_0x1e7c('0x4a')]['id']}})[_0x1e7c('0x27')](handleEntityNotFound(_0xed9f2e,null))['then'](saveUpdates(_0x4e89f0[_0x1e7c('0x4e')],null))[_0x1e7c('0x27')](respondWithResult(_0xed9f2e,null))['catch'](handleError(_0xed9f2e,null));};exports[_0x1e7c('0x28')]=function(_0x374fbb,_0x4c045d){return db['IntegrationReport'][_0x1e7c('0x4c')]({'where':{'id':_0x374fbb['params']['id']}})[_0x1e7c('0x27')](handleEntityNotFound(_0x4c045d,null))[_0x1e7c('0x27')](removeEntity(_0x4c045d,null))[_0x1e7c('0x48')](handleError(_0x4c045d,null));};exports['describe']=function(_0x4aeb81,_0x539b59){return db['IntegrationReport'][_0x1e7c('0x4f')]()[_0x1e7c('0x27')](respondWithResult(_0x539b59,null))[_0x1e7c('0x48')](handleError(_0x539b59,null));};