5bd3e1b20f8674c1ec74d3f4371266f1112eab94
[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 _0xd69e=['json','apply','reject','save','update','then','destroy','sendStatus','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','sort','where','pick','filter','merge','Migration','includeAll','findAll','rows','catch','eml-format','rimraf','zip-dir','request-promise','moment','sox','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/license/util','end','status','offset','undefined','limit','count','set'];(function(_0xb83ec2,_0x18e73b){var _0x4d2fbf=function(_0x16538a){while(--_0x16538a){_0xb83ec2['push'](_0xb83ec2['shift']());}};_0x4d2fbf(++_0x18e73b);}(_0xd69e,0xa0));var _0xed69=function(_0x413feb,_0x10477f){_0x413feb=_0x413feb-0x0;var _0x40ee88=_0xd69e[_0x413feb];return _0x40ee88;};'use strict';var emlformat=require(_0xed69('0x0'));var rimraf=require(_0xed69('0x1'));var zipdir=require(_0xed69('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xed69('0x3'));var moment=require(_0xed69('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0xed69('0x5'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xed69('0x6'));var _=require(_0xed69('0x7'));var squel=require(_0xed69('0x8'));var crypto=require(_0xed69('0x9'));var jsforce=require('jsforce');var deskjs=require(_0xed69('0xa'));var toCsv=require('to-csv');var querystring=require(_0xed69('0xb'));var Papa=require(_0xed69('0xc'));var Redis=require('ioredis');var authService=require(_0xed69('0xd'));var qs=require(_0xed69('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xed69('0xf'));var logger=require('../../config/logger')(_0xed69('0x10'));var utils=require(_0xed69('0x11'));var config=require('../../config/environment');var licenseUtil=require(_0xed69('0x12'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x456e35,_0x39fe5e){_0x39fe5e=_0x39fe5e||0xcc;return function(_0x382f4b){if(_0x382f4b){return _0x456e35['sendStatus'](_0x39fe5e);}return _0x456e35['status'](_0x39fe5e)[_0xed69('0x13')]();};}function respondWithResult(_0x137f8c,_0x6c3dab){_0x6c3dab=_0x6c3dab||0xc8;return function(_0x476524){if(_0x476524){return _0x137f8c[_0xed69('0x14')](_0x6c3dab)['json'](_0x476524);}};}function respondWithFilteredResult(_0xc03c8d,_0x1e318a){return function(_0x19af14){if(_0x19af14){var _0x118ab3=typeof _0x1e318a[_0xed69('0x15')]===_0xed69('0x16')&&typeof _0x1e318a[_0xed69('0x17')]===_0xed69('0x16');var _0x1e7446=_0x19af14[_0xed69('0x18')];var _0x4df35e=_0x118ab3?0x0:_0x1e318a['offset'];var _0x553824=_0x118ab3?_0x19af14[_0xed69('0x18')]:_0x1e318a[_0xed69('0x15')]+_0x1e318a[_0xed69('0x17')];var _0x576a71;if(_0x553824>=_0x1e7446){_0x553824=_0x1e7446;_0x576a71=0xc8;}else{_0x576a71=0xce;}_0xc03c8d[_0xed69('0x14')](_0x576a71);return _0xc03c8d[_0xed69('0x19')]('Content-Range',_0x4df35e+'-'+_0x553824+'/'+_0x1e7446)[_0xed69('0x1a')](_0x19af14);}return null;};}function patchUpdates(_0x10285d){return function(_0x1fcd0e){try{jsonpatch[_0xed69('0x1b')](_0x1fcd0e,_0x10285d,!![]);}catch(_0x4ef2fe){return BPromise[_0xed69('0x1c')](_0x4ef2fe);}return _0x1fcd0e[_0xed69('0x1d')]();};}function saveUpdates(_0x5c3a04,_0x12a1b7){return function(_0x350f01){if(_0x350f01){return _0x350f01[_0xed69('0x1e')](_0x5c3a04)[_0xed69('0x1f')](function(_0xa3486a){return _0xa3486a;});}return null;};}function removeEntity(_0x169398,_0x513337){return function(_0x35e7ec){if(_0x35e7ec){return _0x35e7ec[_0xed69('0x20')]()[_0xed69('0x1f')](function(){_0x169398[_0xed69('0x14')](0xcc)[_0xed69('0x13')]();});}};}function handleEntityNotFound(_0xd182bd,_0x33f01f){return function(_0x1e34c8){if(!_0x1e34c8){_0xd182bd[_0xed69('0x21')](0x194);}return _0x1e34c8;};}function handleError(_0x25a097,_0x360fa5){_0x360fa5=_0x360fa5||0x1f4;return function(_0x4c2986){logger['error'](_0x4c2986[_0xed69('0x22')]);if(_0x4c2986[_0xed69('0x23')]){delete _0x4c2986[_0xed69('0x23')];}_0x25a097[_0xed69('0x14')](_0x360fa5)[_0xed69('0x24')](_0x4c2986);};}exports[_0xed69('0x25')]=function(_0x5b6ee3,_0x3ec72b){var _0x28cbc8={},_0x1b24d7={},_0x582fdc={'count':0x0,'rows':[]};var _0x53b95c=_[_0xed69('0x26')](db['Migration'][_0xed69('0x27')],function(_0x234c8a){return{'name':_0x234c8a[_0xed69('0x28')],'type':_0x234c8a[_0xed69('0x29')][_0xed69('0x2a')]};});_0x1b24d7[_0xed69('0x2b')]=_[_0xed69('0x26')](_0x53b95c,'name');_0x1b24d7[_0xed69('0x2c')]=_[_0xed69('0x2d')](_0x5b6ee3[_0xed69('0x2c')]);_0x1b24d7[_0xed69('0x2e')]=_[_0xed69('0x2f')](_0x1b24d7[_0xed69('0x2b')],_0x1b24d7[_0xed69('0x2c')]);_0x28cbc8['attributes']=_['intersection'](_0x1b24d7[_0xed69('0x2b')],qs[_0xed69('0x30')](_0x5b6ee3[_0xed69('0x2c')][_0xed69('0x30')]));_0x28cbc8[_0xed69('0x31')]=_0x28cbc8[_0xed69('0x31')]['length']?_0x28cbc8[_0xed69('0x31')]:_0x1b24d7[_0xed69('0x2b')];if(!_0x5b6ee3[_0xed69('0x2c')][_0xed69('0x32')](_0xed69('0x33'))){_0x28cbc8[_0xed69('0x17')]=qs['limit'](_0x5b6ee3['query']['limit']);_0x28cbc8[_0xed69('0x15')]=qs[_0xed69('0x15')](_0x5b6ee3[_0xed69('0x2c')][_0xed69('0x15')]);}_0x28cbc8['order']=qs[_0xed69('0x34')](_0x5b6ee3[_0xed69('0x2c')]['sort']);_0x28cbc8[_0xed69('0x35')]=qs[_0xed69('0x2e')](_[_0xed69('0x36')](_0x5b6ee3[_0xed69('0x2c')],_0x1b24d7['filters']),_0x53b95c);if(_0x5b6ee3[_0xed69('0x2c')][_0xed69('0x37')]){_0x28cbc8[_0xed69('0x35')]=_[_0xed69('0x38')](_0x28cbc8[_0xed69('0x35')],{'$or':_[_0xed69('0x26')](_0x53b95c,function(_0x32b40a){if(_0x32b40a[_0xed69('0x29')]!=='VIRTUAL'){var _0x43047a={};_0x43047a[_0x32b40a['name']]={'$like':'%'+_0x5b6ee3[_0xed69('0x2c')][_0xed69('0x37')]+'%'};return _0x43047a;}})});}_0x28cbc8=_[_0xed69('0x38')]({},_0x28cbc8,_0x5b6ee3['options']);var _0x46a72b={'where':_0x28cbc8['where']};return db[_0xed69('0x39')][_0xed69('0x18')](_0x46a72b)[_0xed69('0x1f')](function(_0x39c99d){_0x582fdc[_0xed69('0x18')]=_0x39c99d;if(_0x5b6ee3[_0xed69('0x2c')][_0xed69('0x3a')]){_0x28cbc8['include']=[{'all':!![]}];}return db['Migration'][_0xed69('0x3b')](_0x28cbc8);})[_0xed69('0x1f')](function(_0x3fac9c){_0x582fdc[_0xed69('0x3c')]=_0x3fac9c;return _0x582fdc;})['then'](respondWithFilteredResult(_0x3ec72b,_0x28cbc8))[_0xed69('0x3d')](handleError(_0x3ec72b,null));};