9b5c4ca3708567c3fcf324e4ba694b40f5b1a020
[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 _0x425b=['desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','count','set','Content-Range','reject','update','then','destroy','error','name','rawAttributes','fieldName','key','model','map','query','intersection','fields','attributes','hasOwnProperty','sort','where','filters','pick','filter','merge','type','VIRTUAL','options','IntegrationReport','include','catch','show','keys','includeAll','create','body','find','params','describe','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','ejs','lodash','squel','jsforce'];(function(_0x5a1549,_0x3baba3){var _0x49e883=function(_0x28adb3){while(--_0x28adb3){_0x5a1549['push'](_0x5a1549['shift']());}};_0x49e883(++_0x3baba3);}(_0x425b,0xbf));var _0xb425=function(_0x751cb9,_0xf40eec){_0x751cb9=_0x751cb9-0x0;var _0x110c59=_0x425b[_0x751cb9];return _0x110c59;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xb425('0x0'));var zipdir=require(_0xb425('0x1'));var jsonpatch=require(_0xb425('0x2'));var rp=require(_0xb425('0x3'));var moment=require(_0xb425('0x4'));var BPromise=require(_0xb425('0x5'));var Mustache=require('mustache');var util=require(_0xb425('0x6'));var path=require('path');var sox=require(_0xb425('0x7'));var csv=require(_0xb425('0x8'));var ejs=require(_0xb425('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb425('0xa'));var squel=require(_0xb425('0xb'));var crypto=require('crypto');var jsforce=require(_0xb425('0xc'));var deskjs=require(_0xb425('0xd'));var toCsv=require(_0xb425('0x8'));var querystring=require(_0xb425('0xe'));var Papa=require('papaparse');var Redis=require(_0xb425('0xf'));var authService=require(_0xb425('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xb425('0x11'));var hardwareService=require(_0xb425('0x12'));var logger=require(_0xb425('0x13'))('api');var utils=require(_0xb425('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xb425('0x15'));var db=require(_0xb425('0x16'))['db'];function respondWithStatusCode(_0x2ce284,_0xbc6388){_0xbc6388=_0xbc6388||0xcc;return function(_0x9a4653){if(_0x9a4653){return _0x2ce284[_0xb425('0x17')](_0xbc6388);}return _0x2ce284[_0xb425('0x18')](_0xbc6388)[_0xb425('0x19')]();};}function respondWithResult(_0x48d950,_0x12770d){_0x12770d=_0x12770d||0xc8;return function(_0x2903ef){if(_0x2903ef){return _0x48d950[_0xb425('0x18')](_0x12770d)[_0xb425('0x1a')](_0x2903ef);}};}function respondWithFilteredResult(_0x3425be,_0x10f736){return function(_0x4a764c){if(_0x4a764c){var _0x234d30=typeof _0x10f736[_0xb425('0x1b')]==='undefined'&&typeof _0x10f736[_0xb425('0x1c')]==='undefined';var _0x49ac7f=_0x4a764c['count'];var _0x3fdab7=_0x234d30?0x0:_0x10f736[_0xb425('0x1b')];var _0x55aea7=_0x234d30?_0x4a764c[_0xb425('0x1d')]:_0x10f736[_0xb425('0x1b')]+_0x10f736['limit'];var _0x3250a3;if(_0x55aea7>=_0x49ac7f){_0x55aea7=_0x49ac7f;_0x3250a3=0xc8;}else{_0x3250a3=0xce;}_0x3425be[_0xb425('0x18')](_0x3250a3);return _0x3425be[_0xb425('0x1e')](_0xb425('0x1f'),_0x3fdab7+'-'+_0x55aea7+'/'+_0x49ac7f)['json'](_0x4a764c);}return null;};}function patchUpdates(_0x5cd299){return function(_0x6dadad){try{jsonpatch['apply'](_0x6dadad,_0x5cd299,!![]);}catch(_0x54b447){return BPromise[_0xb425('0x20')](_0x54b447);}return _0x6dadad['save']();};}function saveUpdates(_0xa29eaf,_0x262574){return function(_0x4a3599){if(_0x4a3599){return _0x4a3599[_0xb425('0x21')](_0xa29eaf)[_0xb425('0x22')](function(_0x4a666d){return _0x4a666d;});}return null;};}function removeEntity(_0x538db9,_0x5ae32c){return function(_0x3f40d9){if(_0x3f40d9){return _0x3f40d9[_0xb425('0x23')]()[_0xb425('0x22')](function(){_0x538db9[_0xb425('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x8aa476,_0x271c43){return function(_0x2093db){if(!_0x2093db){_0x8aa476[_0xb425('0x17')](0x194);}return _0x2093db;};}function handleError(_0x126d6e,_0x401fe7){_0x401fe7=_0x401fe7||0x1f4;return function(_0x2b904e){logger[_0xb425('0x24')](_0x2b904e['stack']);if(_0x2b904e[_0xb425('0x25')]){delete _0x2b904e[_0xb425('0x25')];}_0x126d6e[_0xb425('0x18')](_0x401fe7)['send'](_0x2b904e);};}exports['index']=function(_0x21bd9e,_0x397fde){var _0x26fd85={},_0x2aaaab={},_0x218030={'count':0x0,'rows':[]};var _0x25ba62=_['map'](db['IntegrationReport'][_0xb425('0x26')],function(_0x3b23ce){return{'name':_0x3b23ce[_0xb425('0x27')],'type':_0x3b23ce['type'][_0xb425('0x28')]};});_0x2aaaab[_0xb425('0x29')]=_[_0xb425('0x2a')](_0x25ba62,'name');_0x2aaaab[_0xb425('0x2b')]=_['keys'](_0x21bd9e[_0xb425('0x2b')]);_0x2aaaab['filters']=_[_0xb425('0x2c')](_0x2aaaab['model'],_0x2aaaab[_0xb425('0x2b')]);_0x26fd85['attributes']=_[_0xb425('0x2c')](_0x2aaaab[_0xb425('0x29')],qs[_0xb425('0x2d')](_0x21bd9e[_0xb425('0x2b')][_0xb425('0x2d')]));_0x26fd85['attributes']=_0x26fd85[_0xb425('0x2e')]['length']?_0x26fd85[_0xb425('0x2e')]:_0x2aaaab[_0xb425('0x29')];if(!_0x21bd9e[_0xb425('0x2b')][_0xb425('0x2f')]('nolimit')){_0x26fd85[_0xb425('0x1c')]=qs[_0xb425('0x1c')](_0x21bd9e['query']['limit']);_0x26fd85[_0xb425('0x1b')]=qs[_0xb425('0x1b')](_0x21bd9e[_0xb425('0x2b')][_0xb425('0x1b')]);}_0x26fd85['order']=qs[_0xb425('0x30')](_0x21bd9e['query']['sort']);_0x26fd85[_0xb425('0x31')]=qs[_0xb425('0x32')](_[_0xb425('0x33')](_0x21bd9e['query'],_0x2aaaab[_0xb425('0x32')]),_0x25ba62);if(_0x21bd9e[_0xb425('0x2b')][_0xb425('0x34')]){_0x26fd85[_0xb425('0x31')]=_[_0xb425('0x35')](_0x26fd85['where'],{'$or':_[_0xb425('0x2a')](_0x25ba62,function(_0x83a2b2){if(_0x83a2b2[_0xb425('0x36')]!==_0xb425('0x37')){var _0x27c595={};_0x27c595[_0x83a2b2[_0xb425('0x25')]]={'$like':'%'+_0x21bd9e[_0xb425('0x2b')]['filter']+'%'};return _0x27c595;}})});}_0x26fd85=_[_0xb425('0x35')]({},_0x26fd85,_0x21bd9e[_0xb425('0x38')]);var _0x39bd14={'where':_0x26fd85[_0xb425('0x31')]};return db[_0xb425('0x39')]['count'](_0x39bd14)[_0xb425('0x22')](function(_0x12dc8e){_0x218030['count']=_0x12dc8e;if(_0x21bd9e['query']['includeAll']){_0x26fd85[_0xb425('0x3a')]=[{'all':!![]}];}return db[_0xb425('0x39')]['findAll'](_0x26fd85);})[_0xb425('0x22')](function(_0x475cc5){_0x218030['rows']=_0x475cc5;return _0x218030;})[_0xb425('0x22')](respondWithFilteredResult(_0x397fde,_0x26fd85))[_0xb425('0x3b')](handleError(_0x397fde,null));};exports[_0xb425('0x3c')]=function(_0xe1d0cf,_0x117a94){var _0x4bb3b2={'raw':![],'where':{'id':_0xe1d0cf['params']['id']}},_0x4566f5={};_0x4566f5[_0xb425('0x29')]=_[_0xb425('0x3d')](db[_0xb425('0x39')][_0xb425('0x26')]);_0x4566f5['query']=_[_0xb425('0x3d')](_0xe1d0cf[_0xb425('0x2b')]);_0x4566f5[_0xb425('0x32')]=_['intersection'](_0x4566f5[_0xb425('0x29')],_0x4566f5[_0xb425('0x2b')]);_0x4bb3b2['attributes']=_['intersection'](_0x4566f5[_0xb425('0x29')],qs[_0xb425('0x2d')](_0xe1d0cf[_0xb425('0x2b')][_0xb425('0x2d')]));_0x4bb3b2[_0xb425('0x2e')]=_0x4bb3b2[_0xb425('0x2e')]['length']?_0x4bb3b2[_0xb425('0x2e')]:_0x4566f5['model'];if(_0xe1d0cf['query'][_0xb425('0x3e')]){_0x4bb3b2[_0xb425('0x3a')]=[{'all':!![]}];}_0x4bb3b2=_['merge']({},_0x4bb3b2,_0xe1d0cf[_0xb425('0x38')]);return db[_0xb425('0x39')]['find'](_0x4bb3b2)[_0xb425('0x22')](handleEntityNotFound(_0x117a94,null))[_0xb425('0x22')](respondWithResult(_0x117a94,null))['catch'](handleError(_0x117a94,null));};exports[_0xb425('0x3f')]=function(_0x1af8b8,_0x4dfa12){return db[_0xb425('0x39')]['create'](_0x1af8b8[_0xb425('0x40')],{})[_0xb425('0x22')](respondWithResult(_0x4dfa12,0xc9))['catch'](handleError(_0x4dfa12,null));};exports[_0xb425('0x21')]=function(_0x112c1d,_0x41a2d5){if(_0x112c1d['body']['id']){delete _0x112c1d[_0xb425('0x40')]['id'];}return db[_0xb425('0x39')][_0xb425('0x41')]({'where':{'id':_0x112c1d['params']['id']}})[_0xb425('0x22')](handleEntityNotFound(_0x41a2d5,null))[_0xb425('0x22')](saveUpdates(_0x112c1d[_0xb425('0x40')],null))['then'](respondWithResult(_0x41a2d5,null))[_0xb425('0x3b')](handleError(_0x41a2d5,null));};exports[_0xb425('0x23')]=function(_0x402589,_0x46a6eb){return db[_0xb425('0x39')][_0xb425('0x41')]({'where':{'id':_0x402589[_0xb425('0x42')]['id']}})[_0xb425('0x22')](handleEntityNotFound(_0x46a6eb,null))[_0xb425('0x22')](removeEntity(_0x46a6eb,null))['catch'](handleError(_0x46a6eb,null));};exports[_0xb425('0x43')]=function(_0xcf8a4d,_0x406fa3){return db[_0xb425('0x39')][_0xb425('0x43')]()['then'](respondWithResult(_0x406fa3,null))[_0xb425('0x3b')](handleError(_0x406fa3,null));};