1d788f5e79fce180230c5d137fa7ad8af3f66c9d
[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 _0x47f6=['squel','crypto','desk.js','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','count','offset','limit','Content-Range','apply','reject','save','update','then','destroy','error','stack','send','rawAttributes','fieldName','name','query','filters','intersection','attributes','model','fields','length','nolimit','order','sort','where','pick','filter','type','VIRTUAL','options','Migration','includeAll','include','rows','catch','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x47f6,0x7c));var _0x647f=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x47f6[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require(_0x647f('0x0'));var emlformat=require(_0x647f('0x1'));var rimraf=require(_0x647f('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x647f('0x3'));var rp=require(_0x647f('0x4'));var moment=require(_0x647f('0x5'));var BPromise=require(_0x647f('0x6'));var Mustache=require(_0x647f('0x7'));var util=require(_0x647f('0x8'));var path=require(_0x647f('0x9'));var sox=require(_0x647f('0xa'));var csv=require(_0x647f('0xb'));var ejs=require(_0x647f('0xc'));var fs=require('fs');var _=require(_0x647f('0xd'));var squel=require(_0x647f('0xe'));var crypto=require(_0x647f('0xf'));var jsforce=require('jsforce');var deskjs=require(_0x647f('0x10'));var toCsv=require(_0x647f('0xb'));var querystring=require('querystring');var Papa=require(_0x647f('0x11'));var Redis=require(_0x647f('0x12'));var authService=require(_0x647f('0x13'));var qs=require(_0x647f('0x14'));var as=require(_0x647f('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x647f('0x16'))(_0x647f('0x17'));var utils=require(_0x647f('0x18'));var config=require(_0x647f('0x19'));var licenseUtil=require(_0x647f('0x1a'));var db=require(_0x647f('0x1b'))['db'];function respondWithStatusCode(_0x56ddfb,_0x2051f8){_0x2051f8=_0x2051f8||0xcc;return function(_0x27647a){if(_0x27647a){return _0x56ddfb[_0x647f('0x1c')](_0x2051f8);}return _0x56ddfb[_0x647f('0x1d')](_0x2051f8)[_0x647f('0x1e')]();};}function respondWithResult(_0x355d02,_0x222903){_0x222903=_0x222903||0xc8;return function(_0x1fdbcb){if(_0x1fdbcb){return _0x355d02['status'](_0x222903)[_0x647f('0x1f')](_0x1fdbcb);}};}function respondWithFilteredResult(_0x29569d,_0x5dffa0){return function(_0x4ae31b){if(_0x4ae31b){var _0x536c45=_0x4ae31b[_0x647f('0x20')],_0x1e66e8=_0x5dffa0[_0x647f('0x21')],_0x2f99f7=_0x5dffa0[_0x647f('0x21')]+_0x5dffa0[_0x647f('0x22')],_0x43f931;if(_0x2f99f7>=_0x536c45){_0x2f99f7=_0x536c45;_0x43f931=0xc8;}else{_0x43f931=0xce;}_0x29569d[_0x647f('0x1d')](_0x43f931);return _0x29569d['set'](_0x647f('0x23'),_0x1e66e8+'-'+_0x2f99f7+'/'+_0x536c45)['json'](_0x4ae31b);}return null;};}function patchUpdates(_0x3f435a){return function(_0x223196){try{jsonpatch[_0x647f('0x24')](_0x223196,_0x3f435a,!![]);}catch(_0x4158d5){return BPromise[_0x647f('0x25')](_0x4158d5);}return _0x223196[_0x647f('0x26')]();};}function saveUpdates(_0x157704,_0x3dd034){return function(_0x5b5e5d){if(_0x5b5e5d){return _0x5b5e5d[_0x647f('0x27')](_0x157704)[_0x647f('0x28')](function(_0x51d3be){return _0x51d3be;});}return null;};}function removeEntity(_0x4518f1,_0x4872d6){return function(_0x488dce){if(_0x488dce){return _0x488dce[_0x647f('0x29')]()[_0x647f('0x28')](function(){_0x4518f1[_0x647f('0x1d')](0xcc)[_0x647f('0x1e')]();});}};}function handleEntityNotFound(_0x3bbabb,_0x63b34a){return function(_0x3a57e6){if(!_0x3a57e6){_0x3bbabb[_0x647f('0x1c')](0x194);}return _0x3a57e6;};}function handleError(_0x23346a,_0x5d1566){_0x5d1566=_0x5d1566||0x1f4;return function(_0x180fd5){logger[_0x647f('0x2a')](_0x180fd5[_0x647f('0x2b')]);if(_0x180fd5['name']){delete _0x180fd5['name'];}_0x23346a[_0x647f('0x1d')](_0x5d1566)[_0x647f('0x2c')](_0x180fd5);};}exports['index']=function(_0x2024b2,_0x4cc14b){var _0x867dd5={},_0x6aba18={},_0xf87517={'count':0x0,'rows':[]};var _0x3b50a3=_['map'](db['Migration'][_0x647f('0x2d')],function(_0x4b66c2){return{'name':_0x4b66c2[_0x647f('0x2e')],'type':_0x4b66c2['type']['key']};});_0x6aba18['model']=_['map'](_0x3b50a3,_0x647f('0x2f'));_0x6aba18[_0x647f('0x30')]=_['keys'](_0x2024b2[_0x647f('0x30')]);_0x6aba18[_0x647f('0x31')]=_[_0x647f('0x32')](_0x6aba18['model'],_0x6aba18[_0x647f('0x30')]);_0x867dd5[_0x647f('0x33')]=_['intersection'](_0x6aba18[_0x647f('0x34')],qs[_0x647f('0x35')](_0x2024b2['query'][_0x647f('0x35')]));_0x867dd5[_0x647f('0x33')]=_0x867dd5['attributes'][_0x647f('0x36')]?_0x867dd5[_0x647f('0x33')]:_0x6aba18[_0x647f('0x34')];if(!_0x2024b2['query']['hasOwnProperty'](_0x647f('0x37'))){_0x867dd5['limit']=qs[_0x647f('0x22')](_0x2024b2[_0x647f('0x30')][_0x647f('0x22')]);_0x867dd5[_0x647f('0x21')]=qs['offset'](_0x2024b2['query'][_0x647f('0x21')]);}_0x867dd5[_0x647f('0x38')]=qs[_0x647f('0x39')](_0x2024b2['query'][_0x647f('0x39')]);_0x867dd5[_0x647f('0x3a')]=qs['filters'](_[_0x647f('0x3b')](_0x2024b2[_0x647f('0x30')],_0x6aba18[_0x647f('0x31')]),_0x3b50a3);if(_0x2024b2[_0x647f('0x30')][_0x647f('0x3c')]){_0x867dd5[_0x647f('0x3a')]=_['merge'](_0x867dd5[_0x647f('0x3a')],{'$or':_['map'](_0x3b50a3,function(_0x530312){if(_0x530312[_0x647f('0x3d')]!==_0x647f('0x3e')){var _0x36f1a2={};_0x36f1a2[_0x530312['name']]={'$like':'%'+_0x2024b2[_0x647f('0x30')]['filter']+'%'};return _0x36f1a2;}})});}_0x867dd5=_['merge']({},_0x867dd5,_0x2024b2[_0x647f('0x3f')]);var _0x390def={'where':_0x867dd5[_0x647f('0x3a')]};return db[_0x647f('0x40')][_0x647f('0x20')](_0x390def)[_0x647f('0x28')](function(_0x1a5b09){_0xf87517[_0x647f('0x20')]=_0x1a5b09;if(_0x2024b2['query'][_0x647f('0x41')]){_0x867dd5[_0x647f('0x42')]=[{'all':!![]}];}return db['Migration']['findAll'](_0x867dd5);})[_0x647f('0x28')](function(_0x2a1f90){_0xf87517[_0x647f('0x43')]=_0x2a1f90;return _0xf87517;})['then'](respondWithFilteredResult(_0x4cc14b,_0x867dd5))[_0x647f('0x44')](handleError(_0x4cc14b,null));};