2a7c6ec2dbb125ea7dc4b400fd756e7466a48a8a
[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 _0x6a94=['querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','send','index','Migration','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filter','merge','map','VIRTUAL','includeAll','include','findAll','rows','catch','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js'];(function(_0x5b6d38,_0x6be810){var _0x3e29eb=function(_0x3e584e){while(--_0x3e584e){_0x5b6d38['push'](_0x5b6d38['shift']());}};_0x3e29eb(++_0x6be810);}(_0x6a94,0x7f));var _0x46a9=function(_0x441691,_0x29feae){_0x441691=_0x441691-0x0;var _0x19a11d=_0x6a94[_0x441691];return _0x19a11d;};'use strict';var emlformat=require(_0x46a9('0x0'));var rimraf=require(_0x46a9('0x1'));var zipdir=require(_0x46a9('0x2'));var jsonpatch=require(_0x46a9('0x3'));var rp=require('request-promise');var moment=require(_0x46a9('0x4'));var BPromise=require(_0x46a9('0x5'));var Mustache=require(_0x46a9('0x6'));var util=require('util');var path=require('path');var sox=require(_0x46a9('0x7'));var csv=require(_0x46a9('0x8'));var ejs=require(_0x46a9('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x46a9('0xa'));var squel=require(_0x46a9('0xb'));var crypto=require(_0x46a9('0xc'));var jsforce=require(_0x46a9('0xd'));var deskjs=require(_0x46a9('0xe'));var toCsv=require('to-csv');var querystring=require(_0x46a9('0xf'));var Papa=require(_0x46a9('0x10'));var Redis=require(_0x46a9('0x11'));var authService=require(_0x46a9('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x46a9('0x13'));var hardwareService=require(_0x46a9('0x14'));var logger=require('../../config/logger')(_0x46a9('0x15'));var utils=require(_0x46a9('0x16'));var config=require(_0x46a9('0x17'));var licenseUtil=require(_0x46a9('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4d7331,_0xf02d12){_0xf02d12=_0xf02d12||0xcc;return function(_0x544a51){if(_0x544a51){return _0x4d7331['sendStatus'](_0xf02d12);}return _0x4d7331[_0x46a9('0x19')](_0xf02d12)[_0x46a9('0x1a')]();};}function respondWithResult(_0x3419d4,_0xdfe81c){_0xdfe81c=_0xdfe81c||0xc8;return function(_0x4baaf7){if(_0x4baaf7){return _0x3419d4[_0x46a9('0x19')](_0xdfe81c)[_0x46a9('0x1b')](_0x4baaf7);}};}function respondWithFilteredResult(_0x233e27,_0x457c69){return function(_0x550d22){if(_0x550d22){var _0x59a0d3=typeof _0x457c69['offset']===_0x46a9('0x1c')&&typeof _0x457c69[_0x46a9('0x1d')]==='undefined';var _0x588f49=_0x550d22[_0x46a9('0x1e')];var _0x5a3205=_0x59a0d3?0x0:_0x457c69['offset'];var _0x6881cf=_0x59a0d3?_0x550d22[_0x46a9('0x1e')]:_0x457c69[_0x46a9('0x1f')]+_0x457c69[_0x46a9('0x1d')];var _0x3af7ce;if(_0x6881cf>=_0x588f49){_0x6881cf=_0x588f49;_0x3af7ce=0xc8;}else{_0x3af7ce=0xce;}_0x233e27['status'](_0x3af7ce);return _0x233e27[_0x46a9('0x20')](_0x46a9('0x21'),_0x5a3205+'-'+_0x6881cf+'/'+_0x588f49)[_0x46a9('0x1b')](_0x550d22);}return null;};}function patchUpdates(_0x352b86){return function(_0x4a530e){try{jsonpatch[_0x46a9('0x22')](_0x4a530e,_0x352b86,!![]);}catch(_0x31b8cb){return BPromise[_0x46a9('0x23')](_0x31b8cb);}return _0x4a530e[_0x46a9('0x24')]();};}function saveUpdates(_0x2125b7,_0x516680){return function(_0x22f047){if(_0x22f047){return _0x22f047[_0x46a9('0x25')](_0x2125b7)[_0x46a9('0x26')](function(_0x1cf610){return _0x1cf610;});}return null;};}function removeEntity(_0x4e38fb,_0x1b8e55){return function(_0xfa9258){if(_0xfa9258){return _0xfa9258[_0x46a9('0x27')]()['then'](function(){_0x4e38fb[_0x46a9('0x19')](0xcc)[_0x46a9('0x1a')]();});}};}function handleEntityNotFound(_0x1c7138,_0x1bb724){return function(_0xf17b25){if(!_0xf17b25){_0x1c7138[_0x46a9('0x28')](0x194);}return _0xf17b25;};}function handleError(_0x136872,_0x3ed869){_0x3ed869=_0x3ed869||0x1f4;return function(_0x34e2e8){logger[_0x46a9('0x29')](_0x34e2e8[_0x46a9('0x2a')]);if(_0x34e2e8[_0x46a9('0x2b')]){delete _0x34e2e8[_0x46a9('0x2b')];}_0x136872['status'](_0x3ed869)[_0x46a9('0x2c')](_0x34e2e8);};}exports[_0x46a9('0x2d')]=function(_0x263ef5,_0x57232a){var _0x4787c0={},_0x5b2740={},_0x475ca2={'count':0x0,'rows':[]};var _0x4f2e26=_['map'](db[_0x46a9('0x2e')][_0x46a9('0x2f')],function(_0x482073){return{'name':_0x482073[_0x46a9('0x30')],'type':_0x482073[_0x46a9('0x31')]['key']};});_0x5b2740[_0x46a9('0x32')]=_['map'](_0x4f2e26,'name');_0x5b2740[_0x46a9('0x33')]=_[_0x46a9('0x34')](_0x263ef5[_0x46a9('0x33')]);_0x5b2740[_0x46a9('0x35')]=_[_0x46a9('0x36')](_0x5b2740[_0x46a9('0x32')],_0x5b2740[_0x46a9('0x33')]);_0x4787c0[_0x46a9('0x37')]=_[_0x46a9('0x36')](_0x5b2740[_0x46a9('0x32')],qs[_0x46a9('0x38')](_0x263ef5['query'][_0x46a9('0x38')]));_0x4787c0[_0x46a9('0x37')]=_0x4787c0[_0x46a9('0x37')][_0x46a9('0x39')]?_0x4787c0[_0x46a9('0x37')]:_0x5b2740[_0x46a9('0x32')];if(!_0x263ef5[_0x46a9('0x33')][_0x46a9('0x3a')]('nolimit')){_0x4787c0[_0x46a9('0x1d')]=qs[_0x46a9('0x1d')](_0x263ef5[_0x46a9('0x33')][_0x46a9('0x1d')]);_0x4787c0[_0x46a9('0x1f')]=qs[_0x46a9('0x1f')](_0x263ef5[_0x46a9('0x33')][_0x46a9('0x1f')]);}_0x4787c0[_0x46a9('0x3b')]=qs['sort'](_0x263ef5[_0x46a9('0x33')][_0x46a9('0x3c')]);_0x4787c0[_0x46a9('0x3d')]=qs[_0x46a9('0x35')](_['pick'](_0x263ef5[_0x46a9('0x33')],_0x5b2740[_0x46a9('0x35')]),_0x4f2e26);if(_0x263ef5[_0x46a9('0x33')][_0x46a9('0x3e')]){_0x4787c0[_0x46a9('0x3d')]=_[_0x46a9('0x3f')](_0x4787c0[_0x46a9('0x3d')],{'$or':_[_0x46a9('0x40')](_0x4f2e26,function(_0x3bf9fa){if(_0x3bf9fa[_0x46a9('0x31')]!==_0x46a9('0x41')){var _0x5a754e={};_0x5a754e[_0x3bf9fa[_0x46a9('0x2b')]]={'$like':'%'+_0x263ef5[_0x46a9('0x33')][_0x46a9('0x3e')]+'%'};return _0x5a754e;}})});}_0x4787c0=_['merge']({},_0x4787c0,_0x263ef5['options']);var _0x527aa6={'where':_0x4787c0['where']};return db[_0x46a9('0x2e')][_0x46a9('0x1e')](_0x527aa6)[_0x46a9('0x26')](function(_0x3f43dd){_0x475ca2[_0x46a9('0x1e')]=_0x3f43dd;if(_0x263ef5[_0x46a9('0x33')][_0x46a9('0x42')]){_0x4787c0[_0x46a9('0x43')]=[{'all':!![]}];}return db[_0x46a9('0x2e')][_0x46a9('0x44')](_0x4787c0);})['then'](function(_0x4f6ba3){_0x475ca2[_0x46a9('0x45')]=_0x4f6ba3;return _0x475ca2;})[_0x46a9('0x26')](respondWithFilteredResult(_0x57232a,_0x4787c0))[_0x46a9('0x46')](handleError(_0x57232a,null));};