Built motion from commit 00bf23f6.|2.6.16
[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 _0x7326=['sort','where','filters','filter','merge','VIRTUAL','include','findAll','rows','catch','show','params','keys','includeAll','create','body','find','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','index','map','IntegrationReport','rawAttributes','type','key','model','query','intersection','fields','attributes','length','hasOwnProperty'];(function(_0x35534f,_0x32a7c0){var _0x2ff1c8=function(_0x36701c){while(--_0x36701c){_0x35534f['push'](_0x35534f['shift']());}};_0x2ff1c8(++_0x32a7c0);}(_0x7326,0x193));var _0x6732=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0x7326[_0x3bf83f];return _0x22c4a9;};'use strict';var emlformat=require(_0x6732('0x0'));var rimraf=require(_0x6732('0x1'));var zipdir=require(_0x6732('0x2'));var jsonpatch=require(_0x6732('0x3'));var rp=require(_0x6732('0x4'));var moment=require(_0x6732('0x5'));var BPromise=require(_0x6732('0x6'));var Mustache=require(_0x6732('0x7'));var util=require(_0x6732('0x8'));var path=require(_0x6732('0x9'));var sox=require(_0x6732('0xa'));var csv=require(_0x6732('0xb'));var ejs=require(_0x6732('0xc'));var fs=require('fs');var fs_extra=require(_0x6732('0xd'));var _=require(_0x6732('0xe'));var squel=require(_0x6732('0xf'));var crypto=require(_0x6732('0x10'));var jsforce=require('jsforce');var deskjs=require(_0x6732('0x11'));var toCsv=require(_0x6732('0xb'));var querystring=require('querystring');var Papa=require(_0x6732('0x12'));var Redis=require(_0x6732('0x13'));var authService=require(_0x6732('0x14'));var qs=require(_0x6732('0x15'));var as=require(_0x6732('0x16'));var hardwareService=require(_0x6732('0x17'));var logger=require('../../config/logger')(_0x6732('0x18'));var utils=require(_0x6732('0x19'));var config=require(_0x6732('0x1a'));var licenseUtil=require(_0x6732('0x1b'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x439381,_0x16cb7e){_0x16cb7e=_0x16cb7e||0xcc;return function(_0x381a99){if(_0x381a99){return _0x439381[_0x6732('0x1c')](_0x16cb7e);}return _0x439381[_0x6732('0x1d')](_0x16cb7e)[_0x6732('0x1e')]();};}function respondWithResult(_0x158b2d,_0x2f3c2e){_0x2f3c2e=_0x2f3c2e||0xc8;return function(_0x11bb24){if(_0x11bb24){return _0x158b2d['status'](_0x2f3c2e)[_0x6732('0x1f')](_0x11bb24);}};}function respondWithFilteredResult(_0x42c1f1,_0x20154b){return function(_0x5d1f15){if(_0x5d1f15){var _0x209256=typeof _0x20154b['offset']==='undefined'&&typeof _0x20154b[_0x6732('0x20')]==='undefined';var _0x9bab47=_0x5d1f15[_0x6732('0x21')];var _0x2fe19b=_0x209256?0x0:_0x20154b['offset'];var _0x233692=_0x209256?_0x5d1f15[_0x6732('0x21')]:_0x20154b[_0x6732('0x22')]+_0x20154b[_0x6732('0x20')];var _0x521381;if(_0x233692>=_0x9bab47){_0x233692=_0x9bab47;_0x521381=0xc8;}else{_0x521381=0xce;}_0x42c1f1[_0x6732('0x1d')](_0x521381);return _0x42c1f1[_0x6732('0x23')](_0x6732('0x24'),_0x2fe19b+'-'+_0x233692+'/'+_0x9bab47)[_0x6732('0x1f')](_0x5d1f15);}return null;};}function patchUpdates(_0x1a8819){return function(_0x21341e){try{jsonpatch[_0x6732('0x25')](_0x21341e,_0x1a8819,!![]);}catch(_0x4adda0){return BPromise[_0x6732('0x26')](_0x4adda0);}return _0x21341e[_0x6732('0x27')]();};}function saveUpdates(_0x19d368,_0x44f01a){return function(_0x1ff202){if(_0x1ff202){return _0x1ff202[_0x6732('0x28')](_0x19d368)[_0x6732('0x29')](function(_0x408784){return _0x408784;});}return null;};}function removeEntity(_0x1c23a4,_0x1d3785){return function(_0x4f7f3e){if(_0x4f7f3e){return _0x4f7f3e[_0x6732('0x2a')]()[_0x6732('0x29')](function(){_0x1c23a4[_0x6732('0x1d')](0xcc)[_0x6732('0x1e')]();});}};}function handleEntityNotFound(_0x331342,_0x152144){return function(_0x730eed){if(!_0x730eed){_0x331342[_0x6732('0x1c')](0x194);}return _0x730eed;};}function handleError(_0x1d4781,_0x51ce51){_0x51ce51=_0x51ce51||0x1f4;return function(_0x1b096d){logger[_0x6732('0x2b')](_0x1b096d[_0x6732('0x2c')]);if(_0x1b096d[_0x6732('0x2d')]){delete _0x1b096d['name'];}_0x1d4781[_0x6732('0x1d')](_0x51ce51)['send'](_0x1b096d);};}exports[_0x6732('0x2e')]=function(_0x45d5c1,_0x16f183){var _0x292971={},_0x29b549={},_0x147420={'count':0x0,'rows':[]};var _0x53ab06=_[_0x6732('0x2f')](db[_0x6732('0x30')][_0x6732('0x31')],function(_0x3fc173){return{'name':_0x3fc173['fieldName'],'type':_0x3fc173[_0x6732('0x32')][_0x6732('0x33')]};});_0x29b549[_0x6732('0x34')]=_['map'](_0x53ab06,_0x6732('0x2d'));_0x29b549[_0x6732('0x35')]=_['keys'](_0x45d5c1[_0x6732('0x35')]);_0x29b549['filters']=_[_0x6732('0x36')](_0x29b549[_0x6732('0x34')],_0x29b549[_0x6732('0x35')]);_0x292971['attributes']=_['intersection'](_0x29b549[_0x6732('0x34')],qs[_0x6732('0x37')](_0x45d5c1[_0x6732('0x35')][_0x6732('0x37')]));_0x292971[_0x6732('0x38')]=_0x292971[_0x6732('0x38')][_0x6732('0x39')]?_0x292971['attributes']:_0x29b549[_0x6732('0x34')];if(!_0x45d5c1[_0x6732('0x35')][_0x6732('0x3a')]('nolimit')){_0x292971[_0x6732('0x20')]=qs['limit'](_0x45d5c1[_0x6732('0x35')][_0x6732('0x20')]);_0x292971[_0x6732('0x22')]=qs[_0x6732('0x22')](_0x45d5c1[_0x6732('0x35')][_0x6732('0x22')]);}_0x292971['order']=qs['sort'](_0x45d5c1[_0x6732('0x35')][_0x6732('0x3b')]);_0x292971[_0x6732('0x3c')]=qs[_0x6732('0x3d')](_['pick'](_0x45d5c1[_0x6732('0x35')],_0x29b549[_0x6732('0x3d')]),_0x53ab06);if(_0x45d5c1[_0x6732('0x35')][_0x6732('0x3e')]){_0x292971[_0x6732('0x3c')]=_[_0x6732('0x3f')](_0x292971[_0x6732('0x3c')],{'$or':_['map'](_0x53ab06,function(_0x468cf4){if(_0x468cf4[_0x6732('0x32')]!==_0x6732('0x40')){var _0x125641={};_0x125641[_0x468cf4[_0x6732('0x2d')]]={'$like':'%'+_0x45d5c1[_0x6732('0x35')][_0x6732('0x3e')]+'%'};return _0x125641;}})});}_0x292971=_[_0x6732('0x3f')]({},_0x292971,_0x45d5c1['options']);var _0x39c871={'where':_0x292971['where']};return db['IntegrationReport'][_0x6732('0x21')](_0x39c871)['then'](function(_0x1aa7e3){_0x147420[_0x6732('0x21')]=_0x1aa7e3;if(_0x45d5c1['query']['includeAll']){_0x292971[_0x6732('0x41')]=[{'all':!![]}];}return db[_0x6732('0x30')][_0x6732('0x42')](_0x292971);})[_0x6732('0x29')](function(_0x3c8817){_0x147420[_0x6732('0x43')]=_0x3c8817;return _0x147420;})[_0x6732('0x29')](respondWithFilteredResult(_0x16f183,_0x292971))[_0x6732('0x44')](handleError(_0x16f183,null));};exports[_0x6732('0x45')]=function(_0xbaa023,_0x5a54e0){var _0x14615a={'raw':![],'where':{'id':_0xbaa023[_0x6732('0x46')]['id']}},_0x453af5={};_0x453af5[_0x6732('0x34')]=_[_0x6732('0x47')](db[_0x6732('0x30')][_0x6732('0x31')]);_0x453af5[_0x6732('0x35')]=_[_0x6732('0x47')](_0xbaa023['query']);_0x453af5[_0x6732('0x3d')]=_['intersection'](_0x453af5[_0x6732('0x34')],_0x453af5[_0x6732('0x35')]);_0x14615a[_0x6732('0x38')]=_[_0x6732('0x36')](_0x453af5[_0x6732('0x34')],qs[_0x6732('0x37')](_0xbaa023[_0x6732('0x35')][_0x6732('0x37')]));_0x14615a[_0x6732('0x38')]=_0x14615a['attributes'][_0x6732('0x39')]?_0x14615a[_0x6732('0x38')]:_0x453af5['model'];if(_0xbaa023[_0x6732('0x35')][_0x6732('0x48')]){_0x14615a[_0x6732('0x41')]=[{'all':!![]}];}_0x14615a=_[_0x6732('0x3f')]({},_0x14615a,_0xbaa023['options']);return db[_0x6732('0x30')]['find'](_0x14615a)[_0x6732('0x29')](handleEntityNotFound(_0x5a54e0,null))['then'](respondWithResult(_0x5a54e0,null))['catch'](handleError(_0x5a54e0,null));};exports[_0x6732('0x49')]=function(_0x3bf65c,_0x2c1e22){return db[_0x6732('0x30')]['create'](_0x3bf65c[_0x6732('0x4a')],{})[_0x6732('0x29')](respondWithResult(_0x2c1e22,0xc9))[_0x6732('0x44')](handleError(_0x2c1e22,null));};exports[_0x6732('0x28')]=function(_0x4214a3,_0x5a1258){if(_0x4214a3[_0x6732('0x4a')]['id']){delete _0x4214a3[_0x6732('0x4a')]['id'];}return db[_0x6732('0x30')][_0x6732('0x4b')]({'where':{'id':_0x4214a3[_0x6732('0x46')]['id']}})[_0x6732('0x29')](handleEntityNotFound(_0x5a1258,null))['then'](saveUpdates(_0x4214a3[_0x6732('0x4a')],null))[_0x6732('0x29')](respondWithResult(_0x5a1258,null))['catch'](handleError(_0x5a1258,null));};exports[_0x6732('0x2a')]=function(_0x4ec544,_0x54352d){return db[_0x6732('0x30')][_0x6732('0x4b')]({'where':{'id':_0x4ec544[_0x6732('0x46')]['id']}})[_0x6732('0x29')](handleEntityNotFound(_0x54352d,null))['then'](removeEntity(_0x54352d,null))[_0x6732('0x44')](handleError(_0x54352d,null));};exports[_0x6732('0x4c')]=function(_0x533ce5,_0x30769d){return db[_0x6732('0x30')][_0x6732('0x4c')]()[_0x6732('0x29')](respondWithResult(_0x30769d,null))[_0x6732('0x44')](handleError(_0x30769d,null));};