Built motion from commit a61a4a20.|2.5.46
[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 _0x59b2=['nolimit','order','sort','where','pick','filters','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','to-csv','papaparse','../../components/parsers/qs','api','../../config/utils','../../mysqldb','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','then','destroy','end','sendStatus','error','stack','name','send','map','Migration','rawAttributes','type','model','query','keys','fields','attributes','length'];(function(_0x220b5f,_0x10f186){var _0x28389e=function(_0x10de49){while(--_0x10de49){_0x220b5f['push'](_0x220b5f['shift']());}};_0x28389e(++_0x10f186);}(_0x59b2,0xcc));var _0x259b=function(_0x1481d2,_0x2c97b0){_0x1481d2=_0x1481d2-0x0;var _0xeaa21f=_0x59b2[_0x1481d2];return _0xeaa21f;};'use strict';var emlformat=require(_0x259b('0x0'));var rimraf=require(_0x259b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x259b('0x2'));var rp=require('request-promise');var moment=require(_0x259b('0x3'));var BPromise=require(_0x259b('0x4'));var Mustache=require(_0x259b('0x5'));var util=require(_0x259b('0x6'));var path=require(_0x259b('0x7'));var sox=require(_0x259b('0x8'));var csv=require('to-csv');var ejs=require(_0x259b('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x259b('0xa'));var squel=require(_0x259b('0xb'));var crypto=require(_0x259b('0xc'));var jsforce=require(_0x259b('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x259b('0xe'));var querystring=require('querystring');var Papa=require(_0x259b('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x259b('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x259b('0x11'));var utils=require(_0x259b('0x12'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x259b('0x13'))['db'];function respondWithStatusCode(_0x5b3093,_0x1229bc){_0x1229bc=_0x1229bc||0xcc;return function(_0x5f51b1){if(_0x5f51b1){return _0x5b3093['sendStatus'](_0x1229bc);}return _0x5b3093[_0x259b('0x14')](_0x1229bc)['end']();};}function respondWithResult(_0x3aa341,_0x1a75ab){_0x1a75ab=_0x1a75ab||0xc8;return function(_0x1fedfa){if(_0x1fedfa){return _0x3aa341[_0x259b('0x14')](_0x1a75ab)[_0x259b('0x15')](_0x1fedfa);}};}function respondWithFilteredResult(_0x28d2d2,_0x51010c){return function(_0x2d6d33){if(_0x2d6d33){var _0xdbe96a=typeof _0x51010c[_0x259b('0x16')]===_0x259b('0x17')&&typeof _0x51010c[_0x259b('0x18')]===_0x259b('0x17');var _0x24ecd9=_0x2d6d33['count'];var _0x2902c8=_0xdbe96a?0x0:_0x51010c[_0x259b('0x16')];var _0x2acde3=_0xdbe96a?_0x2d6d33[_0x259b('0x19')]:_0x51010c[_0x259b('0x16')]+_0x51010c[_0x259b('0x18')];var _0x501015;if(_0x2acde3>=_0x24ecd9){_0x2acde3=_0x24ecd9;_0x501015=0xc8;}else{_0x501015=0xce;}_0x28d2d2[_0x259b('0x14')](_0x501015);return _0x28d2d2[_0x259b('0x1a')](_0x259b('0x1b'),_0x2902c8+'-'+_0x2acde3+'/'+_0x24ecd9)['json'](_0x2d6d33);}return null;};}function patchUpdates(_0x175d33){return function(_0x8f1506){try{jsonpatch[_0x259b('0x1c')](_0x8f1506,_0x175d33,!![]);}catch(_0x33c2b3){return BPromise['reject'](_0x33c2b3);}return _0x8f1506[_0x259b('0x1d')]();};}function saveUpdates(_0x464c12,_0x2b8823){return function(_0x26b437){if(_0x26b437){return _0x26b437['update'](_0x464c12)[_0x259b('0x1e')](function(_0x38c201){return _0x38c201;});}return null;};}function removeEntity(_0x3c9db6,_0x4958be){return function(_0x41cbb5){if(_0x41cbb5){return _0x41cbb5[_0x259b('0x1f')]()[_0x259b('0x1e')](function(){_0x3c9db6[_0x259b('0x14')](0xcc)[_0x259b('0x20')]();});}};}function handleEntityNotFound(_0x4850f1,_0x82ceb3){return function(_0x4b6eca){if(!_0x4b6eca){_0x4850f1[_0x259b('0x21')](0x194);}return _0x4b6eca;};}function handleError(_0x351c87,_0x596ca3){_0x596ca3=_0x596ca3||0x1f4;return function(_0x4b59b1){logger[_0x259b('0x22')](_0x4b59b1[_0x259b('0x23')]);if(_0x4b59b1['name']){delete _0x4b59b1[_0x259b('0x24')];}_0x351c87[_0x259b('0x14')](_0x596ca3)[_0x259b('0x25')](_0x4b59b1);};}exports['index']=function(_0x29868,_0xc2644e){var _0xa04289={},_0x433719={},_0x442655={'count':0x0,'rows':[]};var _0x5d8e6a=_[_0x259b('0x26')](db[_0x259b('0x27')][_0x259b('0x28')],function(_0xd70d0b){return{'name':_0xd70d0b['fieldName'],'type':_0xd70d0b[_0x259b('0x29')]['key']};});_0x433719[_0x259b('0x2a')]=_['map'](_0x5d8e6a,_0x259b('0x24'));_0x433719[_0x259b('0x2b')]=_[_0x259b('0x2c')](_0x29868[_0x259b('0x2b')]);_0x433719['filters']=_['intersection'](_0x433719[_0x259b('0x2a')],_0x433719['query']);_0xa04289['attributes']=_['intersection'](_0x433719[_0x259b('0x2a')],qs[_0x259b('0x2d')](_0x29868['query']['fields']));_0xa04289[_0x259b('0x2e')]=_0xa04289[_0x259b('0x2e')][_0x259b('0x2f')]?_0xa04289['attributes']:_0x433719['model'];if(!_0x29868[_0x259b('0x2b')]['hasOwnProperty'](_0x259b('0x30'))){_0xa04289[_0x259b('0x18')]=qs[_0x259b('0x18')](_0x29868[_0x259b('0x2b')][_0x259b('0x18')]);_0xa04289[_0x259b('0x16')]=qs[_0x259b('0x16')](_0x29868['query']['offset']);}_0xa04289[_0x259b('0x31')]=qs['sort'](_0x29868[_0x259b('0x2b')][_0x259b('0x32')]);_0xa04289[_0x259b('0x33')]=qs['filters'](_[_0x259b('0x34')](_0x29868[_0x259b('0x2b')],_0x433719[_0x259b('0x35')]),_0x5d8e6a);if(_0x29868['query']['filter']){_0xa04289['where']=_[_0x259b('0x36')](_0xa04289[_0x259b('0x33')],{'$or':_[_0x259b('0x26')](_0x5d8e6a,function(_0xc6452c){if(_0xc6452c['type']!==_0x259b('0x37')){var _0x12fa38={};_0x12fa38[_0xc6452c[_0x259b('0x24')]]={'$like':'%'+_0x29868[_0x259b('0x2b')][_0x259b('0x38')]+'%'};return _0x12fa38;}})});}_0xa04289=_['merge']({},_0xa04289,_0x29868[_0x259b('0x39')]);var _0x556028={'where':_0xa04289[_0x259b('0x33')]};return db[_0x259b('0x27')][_0x259b('0x19')](_0x556028)[_0x259b('0x1e')](function(_0x1d3b3a){_0x442655[_0x259b('0x19')]=_0x1d3b3a;if(_0x29868[_0x259b('0x2b')][_0x259b('0x3a')]){_0xa04289[_0x259b('0x3b')]=[{'all':!![]}];}return db['Migration'][_0x259b('0x3c')](_0xa04289);})[_0x259b('0x1e')](function(_0x23027e){_0x442655[_0x259b('0x3d')]=_0x23027e;return _0x442655;})['then'](respondWithFilteredResult(_0xc2644e,_0xa04289))[_0x259b('0x3e')](handleError(_0xc2644e,null));};