b024453f81330c63c7e239b03e38ab09717d994a
[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 _0x4097=['where','filter','merge','VIRTUAL','includeAll','include','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','limit','count','set','apply','save','update','then','destroy','error','stack','name','send','index','Migration','rawAttributes','fieldName','type','key','model','map','query','keys','intersection','fields','attributes','length','nolimit','order','sort'];(function(_0x47b6f3,_0x23c755){var _0xe548c0=function(_0x3496c5){while(--_0x3496c5){_0x47b6f3['push'](_0x47b6f3['shift']());}};_0xe548c0(++_0x23c755);}(_0x4097,0x198));var _0x7409=function(_0x21eeb4,_0x306590){_0x21eeb4=_0x21eeb4-0x0;var _0x12a3fb=_0x4097[_0x21eeb4];return _0x12a3fb;};'use strict';var emlformat=require(_0x7409('0x0'));var rimraf=require(_0x7409('0x1'));var zipdir=require(_0x7409('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7409('0x3'));var moment=require(_0x7409('0x4'));var BPromise=require(_0x7409('0x5'));var Mustache=require('mustache');var util=require(_0x7409('0x6'));var path=require(_0x7409('0x7'));var sox=require(_0x7409('0x8'));var csv=require(_0x7409('0x9'));var ejs=require(_0x7409('0xa'));var fs=require('fs');var fs_extra=require(_0x7409('0xb'));var _=require(_0x7409('0xc'));var squel=require('squel');var crypto=require(_0x7409('0xd'));var jsforce=require(_0x7409('0xe'));var deskjs=require(_0x7409('0xf'));var toCsv=require('to-csv');var querystring=require(_0x7409('0x10'));var Papa=require(_0x7409('0x11'));var Redis=require(_0x7409('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x7409('0x13'));var as=require(_0x7409('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x7409('0x15'))(_0x7409('0x16'));var utils=require(_0x7409('0x17'));var config=require(_0x7409('0x18'));var licenseUtil=require(_0x7409('0x19'));var db=require(_0x7409('0x1a'))['db'];function respondWithStatusCode(_0x5ade8b,_0x45d56c){_0x45d56c=_0x45d56c||0xcc;return function(_0x36613c){if(_0x36613c){return _0x5ade8b[_0x7409('0x1b')](_0x45d56c);}return _0x5ade8b['status'](_0x45d56c)[_0x7409('0x1c')]();};}function respondWithResult(_0x371346,_0x114052){_0x114052=_0x114052||0xc8;return function(_0x4056cb){if(_0x4056cb){return _0x371346[_0x7409('0x1d')](_0x114052)[_0x7409('0x1e')](_0x4056cb);}};}function respondWithFilteredResult(_0x318a69,_0x5627b7){return function(_0xbf1450){if(_0xbf1450){var _0x2ae939=typeof _0x5627b7[_0x7409('0x1f')]==='undefined'&&typeof _0x5627b7[_0x7409('0x20')]==='undefined';var _0x1bf1a4=_0xbf1450['count'];var _0x504331=_0x2ae939?0x0:_0x5627b7[_0x7409('0x1f')];var _0x165a27=_0x2ae939?_0xbf1450[_0x7409('0x21')]:_0x5627b7[_0x7409('0x1f')]+_0x5627b7[_0x7409('0x20')];var _0x578b5f;if(_0x165a27>=_0x1bf1a4){_0x165a27=_0x1bf1a4;_0x578b5f=0xc8;}else{_0x578b5f=0xce;}_0x318a69[_0x7409('0x1d')](_0x578b5f);return _0x318a69[_0x7409('0x22')]('Content-Range',_0x504331+'-'+_0x165a27+'/'+_0x1bf1a4)[_0x7409('0x1e')](_0xbf1450);}return null;};}function patchUpdates(_0x405299){return function(_0x29ca97){try{jsonpatch[_0x7409('0x23')](_0x29ca97,_0x405299,!![]);}catch(_0x371b94){return BPromise['reject'](_0x371b94);}return _0x29ca97[_0x7409('0x24')]();};}function saveUpdates(_0xc7cc9f,_0x24082b){return function(_0x847dd){if(_0x847dd){return _0x847dd[_0x7409('0x25')](_0xc7cc9f)[_0x7409('0x26')](function(_0x27a1ee){return _0x27a1ee;});}return null;};}function removeEntity(_0x3d262b,_0x50575f){return function(_0x56fe9b){if(_0x56fe9b){return _0x56fe9b[_0x7409('0x27')]()['then'](function(){_0x3d262b[_0x7409('0x1d')](0xcc)[_0x7409('0x1c')]();});}};}function handleEntityNotFound(_0x84c85c,_0x252e47){return function(_0x12be89){if(!_0x12be89){_0x84c85c[_0x7409('0x1b')](0x194);}return _0x12be89;};}function handleError(_0x2f0068,_0x3a34b8){_0x3a34b8=_0x3a34b8||0x1f4;return function(_0x33b739){logger[_0x7409('0x28')](_0x33b739[_0x7409('0x29')]);if(_0x33b739[_0x7409('0x2a')]){delete _0x33b739[_0x7409('0x2a')];}_0x2f0068[_0x7409('0x1d')](_0x3a34b8)[_0x7409('0x2b')](_0x33b739);};}exports[_0x7409('0x2c')]=function(_0x308b4e,_0x1f7070){var _0x5ab375={},_0x4d672d={},_0x3448da={'count':0x0,'rows':[]};var _0x5d2b36=_['map'](db[_0x7409('0x2d')][_0x7409('0x2e')],function(_0x25bc2e){return{'name':_0x25bc2e[_0x7409('0x2f')],'type':_0x25bc2e[_0x7409('0x30')][_0x7409('0x31')]};});_0x4d672d[_0x7409('0x32')]=_[_0x7409('0x33')](_0x5d2b36,_0x7409('0x2a'));_0x4d672d[_0x7409('0x34')]=_[_0x7409('0x35')](_0x308b4e[_0x7409('0x34')]);_0x4d672d['filters']=_[_0x7409('0x36')](_0x4d672d[_0x7409('0x32')],_0x4d672d[_0x7409('0x34')]);_0x5ab375['attributes']=_[_0x7409('0x36')](_0x4d672d[_0x7409('0x32')],qs['fields'](_0x308b4e[_0x7409('0x34')][_0x7409('0x37')]));_0x5ab375[_0x7409('0x38')]=_0x5ab375['attributes'][_0x7409('0x39')]?_0x5ab375[_0x7409('0x38')]:_0x4d672d['model'];if(!_0x308b4e['query']['hasOwnProperty'](_0x7409('0x3a'))){_0x5ab375['limit']=qs[_0x7409('0x20')](_0x308b4e[_0x7409('0x34')]['limit']);_0x5ab375[_0x7409('0x1f')]=qs[_0x7409('0x1f')](_0x308b4e[_0x7409('0x34')][_0x7409('0x1f')]);}_0x5ab375[_0x7409('0x3b')]=qs['sort'](_0x308b4e[_0x7409('0x34')][_0x7409('0x3c')]);_0x5ab375[_0x7409('0x3d')]=qs['filters'](_['pick'](_0x308b4e[_0x7409('0x34')],_0x4d672d['filters']),_0x5d2b36);if(_0x308b4e[_0x7409('0x34')][_0x7409('0x3e')]){_0x5ab375[_0x7409('0x3d')]=_[_0x7409('0x3f')](_0x5ab375[_0x7409('0x3d')],{'$or':_[_0x7409('0x33')](_0x5d2b36,function(_0x3d0777){if(_0x3d0777[_0x7409('0x30')]!==_0x7409('0x40')){var _0x2d38ab={};_0x2d38ab[_0x3d0777[_0x7409('0x2a')]]={'$like':'%'+_0x308b4e[_0x7409('0x34')][_0x7409('0x3e')]+'%'};return _0x2d38ab;}})});}_0x5ab375=_[_0x7409('0x3f')]({},_0x5ab375,_0x308b4e['options']);var _0x58698b={'where':_0x5ab375[_0x7409('0x3d')]};return db[_0x7409('0x2d')][_0x7409('0x21')](_0x58698b)[_0x7409('0x26')](function(_0x54dc0a){_0x3448da[_0x7409('0x21')]=_0x54dc0a;if(_0x308b4e[_0x7409('0x34')][_0x7409('0x41')]){_0x5ab375[_0x7409('0x42')]=[{'all':!![]}];}return db['Migration']['findAll'](_0x5ab375);})['then'](function(_0x4aa654){_0x3448da['rows']=_0x4aa654;return _0x3448da;})[_0x7409('0x26')](respondWithFilteredResult(_0x1f7070,_0x5ab375))['catch'](handleError(_0x1f7070,null));};