19eac4e3eb86e74ed931c5747c00c50db7d61c10
[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 _0x273c=['request-promise','bluebird','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/license/util','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range','apply','save','update','then','destroy','error','stack','name','index','map','Migration','rawAttributes','fieldName','type','key','query','keys','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','VIRTUAL','merge','options','include','findAll','catch','rimraf','zip-dir','fast-json-patch'];(function(_0x258919,_0x1754e6){var _0xfbd68b=function(_0x3bc3e9){while(--_0x3bc3e9){_0x258919['push'](_0x258919['shift']());}};_0xfbd68b(++_0x1754e6);}(_0x273c,0x89));var _0xc273=function(_0x500c0,_0xdb6a03){_0x500c0=_0x500c0-0x0;var _0xdd146f=_0x273c[_0x500c0];return _0xdd146f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xc273('0x0'));var zipdir=require(_0xc273('0x1'));var jsonpatch=require(_0xc273('0x2'));var rp=require(_0xc273('0x3'));var moment=require('moment');var BPromise=require(_0xc273('0x4'));var Mustache=require('mustache');var util=require(_0xc273('0x5'));var path=require(_0xc273('0x6'));var sox=require(_0xc273('0x7'));var csv=require(_0xc273('0x8'));var ejs=require(_0xc273('0x9'));var fs=require('fs');var fs_extra=require(_0xc273('0xa'));var _=require('lodash');var squel=require(_0xc273('0xb'));var crypto=require(_0xc273('0xc'));var jsforce=require(_0xc273('0xd'));var deskjs=require(_0xc273('0xe'));var toCsv=require(_0xc273('0x8'));var querystring=require(_0xc273('0xf'));var Papa=require(_0xc273('0x10'));var Redis=require(_0xc273('0x11'));var authService=require(_0xc273('0x12'));var qs=require(_0xc273('0x13'));var as=require(_0xc273('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xc273('0x15'));var utils=require(_0xc273('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xc273('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1861e8,_0x5a7795){_0x5a7795=_0x5a7795||0xcc;return function(_0x4219b7){if(_0x4219b7){return _0x1861e8[_0xc273('0x18')](_0x5a7795);}return _0x1861e8['status'](_0x5a7795)[_0xc273('0x19')]();};}function respondWithResult(_0x21f8a8,_0x516983){_0x516983=_0x516983||0xc8;return function(_0x160088){if(_0x160088){return _0x21f8a8[_0xc273('0x1a')](_0x516983)[_0xc273('0x1b')](_0x160088);}};}function respondWithFilteredResult(_0x3d9ed1,_0x10fcbb){return function(_0x3a882e){if(_0x3a882e){var _0x334e2e=typeof _0x10fcbb[_0xc273('0x1c')]===_0xc273('0x1d')&&typeof _0x10fcbb['limit']==='undefined';var _0xaea6e6=_0x3a882e[_0xc273('0x1e')];var _0x40c23b=_0x334e2e?0x0:_0x10fcbb['offset'];var _0x44bf09=_0x334e2e?_0x3a882e[_0xc273('0x1e')]:_0x10fcbb[_0xc273('0x1c')]+_0x10fcbb[_0xc273('0x1f')];var _0x54566e;if(_0x44bf09>=_0xaea6e6){_0x44bf09=_0xaea6e6;_0x54566e=0xc8;}else{_0x54566e=0xce;}_0x3d9ed1[_0xc273('0x1a')](_0x54566e);return _0x3d9ed1[_0xc273('0x20')](_0xc273('0x21'),_0x40c23b+'-'+_0x44bf09+'/'+_0xaea6e6)[_0xc273('0x1b')](_0x3a882e);}return null;};}function patchUpdates(_0x21bd96){return function(_0x1b6d74){try{jsonpatch[_0xc273('0x22')](_0x1b6d74,_0x21bd96,!![]);}catch(_0x114bdb){return BPromise['reject'](_0x114bdb);}return _0x1b6d74[_0xc273('0x23')]();};}function saveUpdates(_0x1d402f,_0x270794){return function(_0x52d980){if(_0x52d980){return _0x52d980[_0xc273('0x24')](_0x1d402f)[_0xc273('0x25')](function(_0x1147f2){return _0x1147f2;});}return null;};}function removeEntity(_0x4712ec,_0x4dabe3){return function(_0x2ff23c){if(_0x2ff23c){return _0x2ff23c[_0xc273('0x26')]()[_0xc273('0x25')](function(){_0x4712ec[_0xc273('0x1a')](0xcc)[_0xc273('0x19')]();});}};}function handleEntityNotFound(_0x4d8607,_0x1a87e4){return function(_0x5dbfb8){if(!_0x5dbfb8){_0x4d8607['sendStatus'](0x194);}return _0x5dbfb8;};}function handleError(_0x1a31af,_0x2ede29){_0x2ede29=_0x2ede29||0x1f4;return function(_0x3833eb){logger[_0xc273('0x27')](_0x3833eb[_0xc273('0x28')]);if(_0x3833eb[_0xc273('0x29')]){delete _0x3833eb[_0xc273('0x29')];}_0x1a31af[_0xc273('0x1a')](_0x2ede29)['send'](_0x3833eb);};}exports[_0xc273('0x2a')]=function(_0x452e00,_0x337348){var _0x12be15={},_0x4921e0={},_0x24e7ce={'count':0x0,'rows':[]};var _0x5948e4=_[_0xc273('0x2b')](db[_0xc273('0x2c')][_0xc273('0x2d')],function(_0x1a3416){return{'name':_0x1a3416[_0xc273('0x2e')],'type':_0x1a3416[_0xc273('0x2f')][_0xc273('0x30')]};});_0x4921e0['model']=_[_0xc273('0x2b')](_0x5948e4,_0xc273('0x29'));_0x4921e0[_0xc273('0x31')]=_[_0xc273('0x32')](_0x452e00['query']);_0x4921e0['filters']=_[_0xc273('0x33')](_0x4921e0[_0xc273('0x34')],_0x4921e0[_0xc273('0x31')]);_0x12be15['attributes']=_['intersection'](_0x4921e0[_0xc273('0x34')],qs[_0xc273('0x35')](_0x452e00[_0xc273('0x31')][_0xc273('0x35')]));_0x12be15['attributes']=_0x12be15[_0xc273('0x36')][_0xc273('0x37')]?_0x12be15[_0xc273('0x36')]:_0x4921e0['model'];if(!_0x452e00['query'][_0xc273('0x38')](_0xc273('0x39'))){_0x12be15[_0xc273('0x1f')]=qs['limit'](_0x452e00[_0xc273('0x31')][_0xc273('0x1f')]);_0x12be15['offset']=qs[_0xc273('0x1c')](_0x452e00['query'][_0xc273('0x1c')]);}_0x12be15[_0xc273('0x3a')]=qs[_0xc273('0x3b')](_0x452e00[_0xc273('0x31')][_0xc273('0x3b')]);_0x12be15[_0xc273('0x3c')]=qs[_0xc273('0x3d')](_[_0xc273('0x3e')](_0x452e00['query'],_0x4921e0[_0xc273('0x3d')]),_0x5948e4);if(_0x452e00[_0xc273('0x31')][_0xc273('0x3f')]){_0x12be15['where']=_['merge'](_0x12be15[_0xc273('0x3c')],{'$or':_[_0xc273('0x2b')](_0x5948e4,function(_0x180ee7){if(_0x180ee7['type']!==_0xc273('0x40')){var _0x2fab90={};_0x2fab90[_0x180ee7[_0xc273('0x29')]]={'$like':'%'+_0x452e00['query'][_0xc273('0x3f')]+'%'};return _0x2fab90;}})});}_0x12be15=_[_0xc273('0x41')]({},_0x12be15,_0x452e00[_0xc273('0x42')]);var _0x1bd4fb={'where':_0x12be15['where']};return db[_0xc273('0x2c')][_0xc273('0x1e')](_0x1bd4fb)[_0xc273('0x25')](function(_0x3cc255){_0x24e7ce[_0xc273('0x1e')]=_0x3cc255;if(_0x452e00[_0xc273('0x31')]['includeAll']){_0x12be15[_0xc273('0x43')]=[{'all':!![]}];}return db['Migration'][_0xc273('0x44')](_0x12be15);})[_0xc273('0x25')](function(_0x1281bb){_0x24e7ce['rows']=_0x1281bb;return _0x24e7ce;})[_0xc273('0x25')](respondWithFilteredResult(_0x337348,_0x12be15))[_0xc273('0x45')](handleError(_0x337348,null));};