209bef7b32315d886db6815dcda7ebc2889093b8
[motion2.git] / server / api / migration / migration.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 _0xad87=['reject','save','update','then','destroy','error','stack','name','send','index','map','Migration','rawAttributes','type','key','model','query','filters','intersection','attributes','fields','length','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply'];(function(_0x25c25f,_0x3a85f7){var _0x2dee5e=function(_0xb35a56){while(--_0xb35a56){_0x25c25f['push'](_0x25c25f['shift']());}};_0x2dee5e(++_0x3a85f7);}(_0xad87,0x18b));var _0x7ad8=function(_0x4b174a,_0x33a017){_0x4b174a=_0x4b174a-0x0;var _0x3cd7bf=_0xad87[_0x4b174a];return _0x3cd7bf;};'use strict';var emlformat=require(_0x7ad8('0x0'));var rimraf=require(_0x7ad8('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x7ad8('0x2'));var rp=require(_0x7ad8('0x3'));var moment=require(_0x7ad8('0x4'));var BPromise=require(_0x7ad8('0x5'));var Mustache=require('mustache');var util=require(_0x7ad8('0x6'));var path=require(_0x7ad8('0x7'));var sox=require(_0x7ad8('0x8'));var csv=require(_0x7ad8('0x9'));var ejs=require(_0x7ad8('0xa'));var fs=require('fs');var fs_extra=require(_0x7ad8('0xb'));var _=require(_0x7ad8('0xc'));var squel=require(_0x7ad8('0xd'));var crypto=require('crypto');var jsforce=require(_0x7ad8('0xe'));var deskjs=require(_0x7ad8('0xf'));var toCsv=require(_0x7ad8('0x9'));var querystring=require(_0x7ad8('0x10'));var Papa=require(_0x7ad8('0x11'));var Redis=require(_0x7ad8('0x12'));var authService=require(_0x7ad8('0x13'));var qs=require(_0x7ad8('0x14'));var as=require(_0x7ad8('0x15'));var hardwareService=require(_0x7ad8('0x16'));var logger=require('../../config/logger')(_0x7ad8('0x17'));var utils=require('../../config/utils');var config=require(_0x7ad8('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x7ad8('0x19'))['db'];function respondWithStatusCode(_0x3af7fc,_0x3c5fc2){_0x3c5fc2=_0x3c5fc2||0xcc;return function(_0x2741f6){if(_0x2741f6){return _0x3af7fc[_0x7ad8('0x1a')](_0x3c5fc2);}return _0x3af7fc[_0x7ad8('0x1b')](_0x3c5fc2)[_0x7ad8('0x1c')]();};}function respondWithResult(_0x58343c,_0x596846){_0x596846=_0x596846||0xc8;return function(_0x2bd218){if(_0x2bd218){return _0x58343c['status'](_0x596846)[_0x7ad8('0x1d')](_0x2bd218);}};}function respondWithFilteredResult(_0x2ecb91,_0x1682ec){return function(_0x281253){if(_0x281253){var _0x1c3dca=typeof _0x1682ec['offset']===_0x7ad8('0x1e')&&typeof _0x1682ec[_0x7ad8('0x1f')]==='undefined';var _0x459fb1=_0x281253[_0x7ad8('0x20')];var _0x118f2f=_0x1c3dca?0x0:_0x1682ec[_0x7ad8('0x21')];var _0xba7f16=_0x1c3dca?_0x281253[_0x7ad8('0x20')]:_0x1682ec[_0x7ad8('0x21')]+_0x1682ec['limit'];var _0x1e567d;if(_0xba7f16>=_0x459fb1){_0xba7f16=_0x459fb1;_0x1e567d=0xc8;}else{_0x1e567d=0xce;}_0x2ecb91['status'](_0x1e567d);return _0x2ecb91[_0x7ad8('0x22')](_0x7ad8('0x23'),_0x118f2f+'-'+_0xba7f16+'/'+_0x459fb1)[_0x7ad8('0x1d')](_0x281253);}return null;};}function patchUpdates(_0x257789){return function(_0x1476ea){try{jsonpatch[_0x7ad8('0x24')](_0x1476ea,_0x257789,!![]);}catch(_0x3e7c7f){return BPromise[_0x7ad8('0x25')](_0x3e7c7f);}return _0x1476ea[_0x7ad8('0x26')]();};}function saveUpdates(_0x5db5d0,_0x150e57){return function(_0x2a4ff5){if(_0x2a4ff5){return _0x2a4ff5[_0x7ad8('0x27')](_0x5db5d0)[_0x7ad8('0x28')](function(_0x1142ba){return _0x1142ba;});}return null;};}function removeEntity(_0x1942c1,_0x49fcd0){return function(_0x6d073e){if(_0x6d073e){return _0x6d073e[_0x7ad8('0x29')]()[_0x7ad8('0x28')](function(){_0x1942c1[_0x7ad8('0x1b')](0xcc)[_0x7ad8('0x1c')]();});}};}function handleEntityNotFound(_0x1bad88,_0x197ac6){return function(_0x5498a4){if(!_0x5498a4){_0x1bad88[_0x7ad8('0x1a')](0x194);}return _0x5498a4;};}function handleError(_0x524f4e,_0xa5568c){_0xa5568c=_0xa5568c||0x1f4;return function(_0xd8bd67){logger[_0x7ad8('0x2a')](_0xd8bd67[_0x7ad8('0x2b')]);if(_0xd8bd67[_0x7ad8('0x2c')]){delete _0xd8bd67['name'];}_0x524f4e['status'](_0xa5568c)[_0x7ad8('0x2d')](_0xd8bd67);};}exports[_0x7ad8('0x2e')]=function(_0x38831f,_0x477602){var _0x561383={},_0x46fa67={},_0x455ad4={'count':0x0,'rows':[]};var _0x3084f3=_[_0x7ad8('0x2f')](db[_0x7ad8('0x30')][_0x7ad8('0x31')],function(_0x5317e4){return{'name':_0x5317e4['fieldName'],'type':_0x5317e4[_0x7ad8('0x32')][_0x7ad8('0x33')]};});_0x46fa67[_0x7ad8('0x34')]=_[_0x7ad8('0x2f')](_0x3084f3,_0x7ad8('0x2c'));_0x46fa67[_0x7ad8('0x35')]=_['keys'](_0x38831f['query']);_0x46fa67[_0x7ad8('0x36')]=_[_0x7ad8('0x37')](_0x46fa67['model'],_0x46fa67['query']);_0x561383[_0x7ad8('0x38')]=_[_0x7ad8('0x37')](_0x46fa67[_0x7ad8('0x34')],qs[_0x7ad8('0x39')](_0x38831f[_0x7ad8('0x35')][_0x7ad8('0x39')]));_0x561383['attributes']=_0x561383[_0x7ad8('0x38')][_0x7ad8('0x3a')]?_0x561383[_0x7ad8('0x38')]:_0x46fa67[_0x7ad8('0x34')];if(!_0x38831f['query']['hasOwnProperty']('nolimit')){_0x561383[_0x7ad8('0x1f')]=qs[_0x7ad8('0x1f')](_0x38831f[_0x7ad8('0x35')]['limit']);_0x561383[_0x7ad8('0x21')]=qs[_0x7ad8('0x21')](_0x38831f[_0x7ad8('0x35')]['offset']);}_0x561383[_0x7ad8('0x3b')]=qs[_0x7ad8('0x3c')](_0x38831f[_0x7ad8('0x35')][_0x7ad8('0x3c')]);_0x561383[_0x7ad8('0x3d')]=qs[_0x7ad8('0x36')](_[_0x7ad8('0x3e')](_0x38831f[_0x7ad8('0x35')],_0x46fa67[_0x7ad8('0x36')]),_0x3084f3);if(_0x38831f['query'][_0x7ad8('0x3f')]){_0x561383[_0x7ad8('0x3d')]=_[_0x7ad8('0x40')](_0x561383[_0x7ad8('0x3d')],{'$or':_[_0x7ad8('0x2f')](_0x3084f3,function(_0x505a3e){if(_0x505a3e[_0x7ad8('0x32')]!==_0x7ad8('0x41')){var _0x45d55e={};_0x45d55e[_0x505a3e[_0x7ad8('0x2c')]]={'$like':'%'+_0x38831f[_0x7ad8('0x35')][_0x7ad8('0x3f')]+'%'};return _0x45d55e;}})});}_0x561383=_[_0x7ad8('0x40')]({},_0x561383,_0x38831f[_0x7ad8('0x42')]);var _0x1a19e6={'where':_0x561383[_0x7ad8('0x3d')]};return db[_0x7ad8('0x30')][_0x7ad8('0x20')](_0x1a19e6)[_0x7ad8('0x28')](function(_0x1f3c79){_0x455ad4[_0x7ad8('0x20')]=_0x1f3c79;if(_0x38831f[_0x7ad8('0x35')][_0x7ad8('0x43')]){_0x561383[_0x7ad8('0x44')]=[{'all':!![]}];}return db[_0x7ad8('0x30')][_0x7ad8('0x45')](_0x561383);})[_0x7ad8('0x28')](function(_0x10dbef){_0x455ad4[_0x7ad8('0x46')]=_0x10dbef;return _0x455ad4;})['then'](respondWithFilteredResult(_0x477602,_0x561383))[_0x7ad8('0x47')](handleError(_0x477602,null));};