Built motion from commit fe909640.|2.6.8
[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 _0xbc96=['zip-dir','fast-json-patch','moment','util','path','sox','ejs','fs-extra','lodash','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','set','apply','reject','save','update','then','destroy','stack','name','index','Migration','rawAttributes','fieldName','type','key','query','filters','intersection','attributes','fields','model','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','options','includeAll','findAll','rows','catch','eml-format','rimraf'];(function(_0x333e8f,_0x5ae86c){var _0x5873e6=function(_0x2dceb7){while(--_0x2dceb7){_0x333e8f['push'](_0x333e8f['shift']());}};_0x5873e6(++_0x5ae86c);}(_0xbc96,0xca));var _0x6bc9=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0xbc96[_0x3bf83f];return _0x22c4a9;};'use strict';var emlformat=require(_0x6bc9('0x0'));var rimraf=require(_0x6bc9('0x1'));var zipdir=require(_0x6bc9('0x2'));var jsonpatch=require(_0x6bc9('0x3'));var rp=require('request-promise');var moment=require(_0x6bc9('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x6bc9('0x5'));var path=require(_0x6bc9('0x6'));var sox=require(_0x6bc9('0x7'));var csv=require('to-csv');var ejs=require(_0x6bc9('0x8'));var fs=require('fs');var fs_extra=require(_0x6bc9('0x9'));var _=require(_0x6bc9('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x6bc9('0xb'));var deskjs=require(_0x6bc9('0xc'));var toCsv=require(_0x6bc9('0xd'));var querystring=require(_0x6bc9('0xe'));var Papa=require(_0x6bc9('0xf'));var Redis=require(_0x6bc9('0x10'));var authService=require(_0x6bc9('0x11'));var qs=require(_0x6bc9('0x12'));var as=require(_0x6bc9('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x6bc9('0x14'))(_0x6bc9('0x15'));var utils=require(_0x6bc9('0x16'));var config=require(_0x6bc9('0x17'));var licenseUtil=require(_0x6bc9('0x18'));var db=require(_0x6bc9('0x19'))['db'];function respondWithStatusCode(_0x3b3373,_0x550551){_0x550551=_0x550551||0xcc;return function(_0xa5223f){if(_0xa5223f){return _0x3b3373[_0x6bc9('0x1a')](_0x550551);}return _0x3b3373[_0x6bc9('0x1b')](_0x550551)[_0x6bc9('0x1c')]();};}function respondWithResult(_0x9e2b6,_0x5a9327){_0x5a9327=_0x5a9327||0xc8;return function(_0x2105f7){if(_0x2105f7){return _0x9e2b6[_0x6bc9('0x1b')](_0x5a9327)[_0x6bc9('0x1d')](_0x2105f7);}};}function respondWithFilteredResult(_0x4698f0,_0x502dc8){return function(_0x51ad8c){if(_0x51ad8c){var _0x15a3b0=typeof _0x502dc8[_0x6bc9('0x1e')]===_0x6bc9('0x1f')&&typeof _0x502dc8['limit']===_0x6bc9('0x1f');var _0x2d23d6=_0x51ad8c[_0x6bc9('0x20')];var _0x2ca785=_0x15a3b0?0x0:_0x502dc8[_0x6bc9('0x1e')];var _0x9c56e7=_0x15a3b0?_0x51ad8c[_0x6bc9('0x20')]:_0x502dc8['offset']+_0x502dc8['limit'];var _0x32b0b7;if(_0x9c56e7>=_0x2d23d6){_0x9c56e7=_0x2d23d6;_0x32b0b7=0xc8;}else{_0x32b0b7=0xce;}_0x4698f0[_0x6bc9('0x1b')](_0x32b0b7);return _0x4698f0[_0x6bc9('0x21')]('Content-Range',_0x2ca785+'-'+_0x9c56e7+'/'+_0x2d23d6)[_0x6bc9('0x1d')](_0x51ad8c);}return null;};}function patchUpdates(_0x5c5302){return function(_0x297f95){try{jsonpatch[_0x6bc9('0x22')](_0x297f95,_0x5c5302,!![]);}catch(_0x1e97ea){return BPromise[_0x6bc9('0x23')](_0x1e97ea);}return _0x297f95[_0x6bc9('0x24')]();};}function saveUpdates(_0x2189bd,_0x28dbef){return function(_0x31fae5){if(_0x31fae5){return _0x31fae5[_0x6bc9('0x25')](_0x2189bd)[_0x6bc9('0x26')](function(_0x1f7350){return _0x1f7350;});}return null;};}function removeEntity(_0x52e8a1,_0x2492f6){return function(_0x5b6789){if(_0x5b6789){return _0x5b6789[_0x6bc9('0x27')]()[_0x6bc9('0x26')](function(){_0x52e8a1['status'](0xcc)[_0x6bc9('0x1c')]();});}};}function handleEntityNotFound(_0x1956e0,_0x418802){return function(_0x5ad3c5){if(!_0x5ad3c5){_0x1956e0[_0x6bc9('0x1a')](0x194);}return _0x5ad3c5;};}function handleError(_0x1e417a,_0x55a639){_0x55a639=_0x55a639||0x1f4;return function(_0x389b2b){logger['error'](_0x389b2b[_0x6bc9('0x28')]);if(_0x389b2b['name']){delete _0x389b2b[_0x6bc9('0x29')];}_0x1e417a[_0x6bc9('0x1b')](_0x55a639)['send'](_0x389b2b);};}exports[_0x6bc9('0x2a')]=function(_0x4e135b,_0x5193a7){var _0x1f0012={},_0x5c149d={},_0x6d84c5={'count':0x0,'rows':[]};var _0x1d5078=_['map'](db[_0x6bc9('0x2b')][_0x6bc9('0x2c')],function(_0x2a2044){return{'name':_0x2a2044[_0x6bc9('0x2d')],'type':_0x2a2044[_0x6bc9('0x2e')][_0x6bc9('0x2f')]};});_0x5c149d['model']=_['map'](_0x1d5078,_0x6bc9('0x29'));_0x5c149d['query']=_['keys'](_0x4e135b[_0x6bc9('0x30')]);_0x5c149d[_0x6bc9('0x31')]=_[_0x6bc9('0x32')](_0x5c149d['model'],_0x5c149d[_0x6bc9('0x30')]);_0x1f0012[_0x6bc9('0x33')]=_[_0x6bc9('0x32')](_0x5c149d['model'],qs[_0x6bc9('0x34')](_0x4e135b[_0x6bc9('0x30')][_0x6bc9('0x34')]));_0x1f0012[_0x6bc9('0x33')]=_0x1f0012[_0x6bc9('0x33')]['length']?_0x1f0012[_0x6bc9('0x33')]:_0x5c149d[_0x6bc9('0x35')];if(!_0x4e135b[_0x6bc9('0x30')][_0x6bc9('0x36')](_0x6bc9('0x37'))){_0x1f0012[_0x6bc9('0x38')]=qs[_0x6bc9('0x38')](_0x4e135b['query'][_0x6bc9('0x38')]);_0x1f0012[_0x6bc9('0x1e')]=qs[_0x6bc9('0x1e')](_0x4e135b['query']['offset']);}_0x1f0012[_0x6bc9('0x39')]=qs[_0x6bc9('0x3a')](_0x4e135b[_0x6bc9('0x30')][_0x6bc9('0x3a')]);_0x1f0012[_0x6bc9('0x3b')]=qs[_0x6bc9('0x31')](_[_0x6bc9('0x3c')](_0x4e135b['query'],_0x5c149d[_0x6bc9('0x31')]),_0x1d5078);if(_0x4e135b[_0x6bc9('0x30')][_0x6bc9('0x3d')]){_0x1f0012[_0x6bc9('0x3b')]=_[_0x6bc9('0x3e')](_0x1f0012[_0x6bc9('0x3b')],{'$or':_['map'](_0x1d5078,function(_0x3b6307){if(_0x3b6307[_0x6bc9('0x2e')]!=='VIRTUAL'){var _0x54f85c={};_0x54f85c[_0x3b6307[_0x6bc9('0x29')]]={'$like':'%'+_0x4e135b[_0x6bc9('0x30')]['filter']+'%'};return _0x54f85c;}})});}_0x1f0012=_['merge']({},_0x1f0012,_0x4e135b[_0x6bc9('0x3f')]);var _0x58efca={'where':_0x1f0012[_0x6bc9('0x3b')]};return db[_0x6bc9('0x2b')][_0x6bc9('0x20')](_0x58efca)['then'](function(_0x417444){_0x6d84c5[_0x6bc9('0x20')]=_0x417444;if(_0x4e135b[_0x6bc9('0x30')][_0x6bc9('0x40')]){_0x1f0012['include']=[{'all':!![]}];}return db[_0x6bc9('0x2b')][_0x6bc9('0x41')](_0x1f0012);})[_0x6bc9('0x26')](function(_0xfb6dde){_0x6d84c5[_0x6bc9('0x42')]=_0xfb6dde;return _0x6d84c5;})['then'](respondWithFilteredResult(_0x5193a7,_0x1f0012))[_0x6bc9('0x43')](handleError(_0x5193a7,null));};