4eb781cfb96acdda2d7eaa4911bbedca7c374e83
[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 _0xeeb0=['jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','json','count','offset','status','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','where','filter','merge','VIRTUAL','Migration','findAll','rows','catch','eml-format','zip-dir','request-promise','bluebird','mustache','util','path','sox','to-csv','squel','crypto'];(function(_0x4ea096,_0x44d8a8){var _0x50145a=function(_0x1f12ae){while(--_0x1f12ae){_0x4ea096['push'](_0x4ea096['shift']());}};_0x50145a(++_0x44d8a8);}(_0xeeb0,0x1ca));var _0x0eeb=function(_0x3de7e0,_0x28cbff){_0x3de7e0=_0x3de7e0-0x0;var _0x11d0b3=_0xeeb0[_0x3de7e0];return _0x11d0b3;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x0eeb('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x0eeb('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0eeb('0x2'));var moment=require('moment');var BPromise=require(_0x0eeb('0x3'));var Mustache=require(_0x0eeb('0x4'));var util=require(_0x0eeb('0x5'));var path=require(_0x0eeb('0x6'));var sox=require(_0x0eeb('0x7'));var csv=require(_0x0eeb('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x0eeb('0x9'));var crypto=require(_0x0eeb('0xa'));var jsforce=require(_0x0eeb('0xb'));var deskjs=require(_0x0eeb('0xc'));var toCsv=require('to-csv');var querystring=require(_0x0eeb('0xd'));var Papa=require(_0x0eeb('0xe'));var Redis=require(_0x0eeb('0xf'));var authService=require(_0x0eeb('0x10'));var qs=require(_0x0eeb('0x11'));var as=require(_0x0eeb('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0eeb('0x13'))(_0x0eeb('0x14'));var utils=require(_0x0eeb('0x15'));var config=require(_0x0eeb('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x0eeb('0x17'))['db'];function respondWithStatusCode(_0x20c916,_0x24268f){_0x24268f=_0x24268f||0xcc;return function(_0xd9c945){if(_0xd9c945){return _0x20c916[_0x0eeb('0x18')](_0x24268f);}return _0x20c916['status'](_0x24268f)[_0x0eeb('0x19')]();};}function respondWithResult(_0x1495aa,_0x3e6765){_0x3e6765=_0x3e6765||0xc8;return function(_0x31870d){if(_0x31870d){return _0x1495aa['status'](_0x3e6765)[_0x0eeb('0x1a')](_0x31870d);}};}function respondWithFilteredResult(_0x35f325,_0x1beaf9){return function(_0x2fad59){if(_0x2fad59){var _0x204b0e=_0x2fad59[_0x0eeb('0x1b')],_0x425c6c=_0x1beaf9[_0x0eeb('0x1c')],_0x45a9ac=_0x1beaf9[_0x0eeb('0x1c')]+_0x1beaf9['limit'],_0x3995a2;if(_0x45a9ac>=_0x204b0e){_0x45a9ac=_0x204b0e;_0x3995a2=0xc8;}else{_0x3995a2=0xce;}_0x35f325[_0x0eeb('0x1d')](_0x3995a2);return _0x35f325[_0x0eeb('0x1e')](_0x0eeb('0x1f'),_0x425c6c+'-'+_0x45a9ac+'/'+_0x204b0e)[_0x0eeb('0x1a')](_0x2fad59);}return null;};}function patchUpdates(_0x3344f8){return function(_0x58677b){try{jsonpatch[_0x0eeb('0x20')](_0x58677b,_0x3344f8,!![]);}catch(_0x1772a7){return BPromise[_0x0eeb('0x21')](_0x1772a7);}return _0x58677b['save']();};}function saveUpdates(_0x163476,_0x51603e){return function(_0x474953){if(_0x474953){return _0x474953[_0x0eeb('0x22')](_0x163476)[_0x0eeb('0x23')](function(_0x18debb){return _0x18debb;});}return null;};}function removeEntity(_0x517ea7,_0x118661){return function(_0x5d06c3){if(_0x5d06c3){return _0x5d06c3[_0x0eeb('0x24')]()['then'](function(){_0x517ea7['status'](0xcc)[_0x0eeb('0x19')]();});}};}function handleEntityNotFound(_0x310ab6,_0x5851e2){return function(_0x31d9ce){if(!_0x31d9ce){_0x310ab6[_0x0eeb('0x18')](0x194);}return _0x31d9ce;};}function handleError(_0x2c5f80,_0x2cc415){_0x2cc415=_0x2cc415||0x1f4;return function(_0x4032b4){logger[_0x0eeb('0x25')](_0x4032b4[_0x0eeb('0x26')]);if(_0x4032b4[_0x0eeb('0x27')]){delete _0x4032b4['name'];}_0x2c5f80[_0x0eeb('0x1d')](_0x2cc415)[_0x0eeb('0x28')](_0x4032b4);};}exports[_0x0eeb('0x29')]=function(_0x407c7c,_0x55d011){var _0x1457cd={},_0x393a7d={},_0x2ae6a9={'count':0x0,'rows':[]};var _0x397377=_[_0x0eeb('0x2a')](db['Migration'][_0x0eeb('0x2b')],function(_0x3592fd){return{'name':_0x3592fd[_0x0eeb('0x2c')],'type':_0x3592fd[_0x0eeb('0x2d')][_0x0eeb('0x2e')]};});_0x393a7d[_0x0eeb('0x2f')]=_['map'](_0x397377,_0x0eeb('0x27'));_0x393a7d[_0x0eeb('0x30')]=_[_0x0eeb('0x31')](_0x407c7c[_0x0eeb('0x30')]);_0x393a7d[_0x0eeb('0x32')]=_[_0x0eeb('0x33')](_0x393a7d['model'],_0x393a7d[_0x0eeb('0x30')]);_0x1457cd[_0x0eeb('0x34')]=_['intersection'](_0x393a7d[_0x0eeb('0x2f')],qs[_0x0eeb('0x35')](_0x407c7c[_0x0eeb('0x30')][_0x0eeb('0x35')]));_0x1457cd[_0x0eeb('0x34')]=_0x1457cd[_0x0eeb('0x34')]['length']?_0x1457cd['attributes']:_0x393a7d[_0x0eeb('0x2f')];if(!_0x407c7c[_0x0eeb('0x30')][_0x0eeb('0x36')](_0x0eeb('0x37'))){_0x1457cd['limit']=qs[_0x0eeb('0x38')](_0x407c7c[_0x0eeb('0x30')]['limit']);_0x1457cd[_0x0eeb('0x1c')]=qs[_0x0eeb('0x1c')](_0x407c7c['query'][_0x0eeb('0x1c')]);}_0x1457cd[_0x0eeb('0x39')]=qs[_0x0eeb('0x3a')](_0x407c7c[_0x0eeb('0x30')][_0x0eeb('0x3a')]);_0x1457cd[_0x0eeb('0x3b')]=qs[_0x0eeb('0x32')](_['pick'](_0x407c7c['query'],_0x393a7d['filters']),_0x397377);if(_0x407c7c[_0x0eeb('0x30')][_0x0eeb('0x3c')]){_0x1457cd['where']=_[_0x0eeb('0x3d')](_0x1457cd[_0x0eeb('0x3b')],{'$or':_[_0x0eeb('0x2a')](_0x397377,function(_0x3ae7dc){if(_0x3ae7dc[_0x0eeb('0x2d')]!==_0x0eeb('0x3e')){var _0x1817cd={};_0x1817cd[_0x3ae7dc['name']]={'$like':'%'+_0x407c7c['query'][_0x0eeb('0x3c')]+'%'};return _0x1817cd;}})});}_0x1457cd=_['merge']({},_0x1457cd,_0x407c7c['options']);var _0x430c96={'where':_0x1457cd['where']};return db[_0x0eeb('0x3f')][_0x0eeb('0x1b')](_0x430c96)['then'](function(_0x27d3c7){_0x2ae6a9['count']=_0x27d3c7;if(_0x407c7c[_0x0eeb('0x30')]['includeAll']){_0x1457cd['include']=[{'all':!![]}];}return db[_0x0eeb('0x3f')][_0x0eeb('0x40')](_0x1457cd);})[_0x0eeb('0x23')](function(_0x572b98){_0x2ae6a9[_0x0eeb('0x41')]=_0x572b98;return _0x2ae6a9;})[_0x0eeb('0x23')](respondWithFilteredResult(_0x55d011,_0x1457cd))[_0x0eeb('0x42')](handleError(_0x55d011,null));};