Built motion from commit 97153652.|2.6.26
[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 _0x9849=['rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filter','merge','VIRTUAL','include','findAll','rows','eml-format','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','update','then','destroy','end','error','stack','name','index','map'];(function(_0x1aab74,_0x38a57b){var _0x396af2=function(_0x1c2e0d){while(--_0x1c2e0d){_0x1aab74['push'](_0x1aab74['shift']());}};_0x396af2(++_0x38a57b);}(_0x9849,0x1a2));var _0x9984=function(_0xd1d19a,_0x1933f0){_0xd1d19a=_0xd1d19a-0x0;var _0x52a79d=_0x9849[_0xd1d19a];return _0x52a79d;};'use strict';var emlformat=require(_0x9984('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x9984('0x1'));var jsonpatch=require(_0x9984('0x2'));var rp=require(_0x9984('0x3'));var moment=require(_0x9984('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x9984('0x5'));var path=require(_0x9984('0x6'));var sox=require(_0x9984('0x7'));var csv=require(_0x9984('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9984('0x9'));var _=require(_0x9984('0xa'));var squel=require(_0x9984('0xb'));var crypto=require(_0x9984('0xc'));var jsforce=require(_0x9984('0xd'));var deskjs=require(_0x9984('0xe'));var toCsv=require(_0x9984('0x8'));var querystring=require(_0x9984('0xf'));var Papa=require(_0x9984('0x10'));var Redis=require(_0x9984('0x11'));var authService=require(_0x9984('0x12'));var qs=require(_0x9984('0x13'));var as=require(_0x9984('0x14'));var hardwareService=require(_0x9984('0x15'));var logger=require(_0x9984('0x16'))(_0x9984('0x17'));var utils=require('../../config/utils');var config=require(_0x9984('0x18'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2e9d04,_0x100695){_0x100695=_0x100695||0xcc;return function(_0x14adec){if(_0x14adec){return _0x2e9d04[_0x9984('0x19')](_0x100695);}return _0x2e9d04[_0x9984('0x1a')](_0x100695)['end']();};}function respondWithResult(_0x5edc5f,_0x299fac){_0x299fac=_0x299fac||0xc8;return function(_0x1dcfa4){if(_0x1dcfa4){return _0x5edc5f['status'](_0x299fac)[_0x9984('0x1b')](_0x1dcfa4);}};}function respondWithFilteredResult(_0x511c42,_0x308d27){return function(_0x11219a){if(_0x11219a){var _0x29e2d9=typeof _0x308d27[_0x9984('0x1c')]===_0x9984('0x1d')&&typeof _0x308d27['limit']===_0x9984('0x1d');var _0xeda05f=_0x11219a[_0x9984('0x1e')];var _0x247546=_0x29e2d9?0x0:_0x308d27[_0x9984('0x1c')];var _0xf9e5be=_0x29e2d9?_0x11219a[_0x9984('0x1e')]:_0x308d27['offset']+_0x308d27[_0x9984('0x1f')];var _0x565680;if(_0xf9e5be>=_0xeda05f){_0xf9e5be=_0xeda05f;_0x565680=0xc8;}else{_0x565680=0xce;}_0x511c42['status'](_0x565680);return _0x511c42[_0x9984('0x20')](_0x9984('0x21'),_0x247546+'-'+_0xf9e5be+'/'+_0xeda05f)[_0x9984('0x1b')](_0x11219a);}return null;};}function patchUpdates(_0x3f307f){return function(_0x2d81f9){try{jsonpatch[_0x9984('0x22')](_0x2d81f9,_0x3f307f,!![]);}catch(_0x3e4686){return BPromise['reject'](_0x3e4686);}return _0x2d81f9['save']();};}function saveUpdates(_0x352fdd,_0x36a213){return function(_0x19942f){if(_0x19942f){return _0x19942f[_0x9984('0x23')](_0x352fdd)[_0x9984('0x24')](function(_0x330fb4){return _0x330fb4;});}return null;};}function removeEntity(_0x37132a,_0x15812c){return function(_0x55bacb){if(_0x55bacb){return _0x55bacb[_0x9984('0x25')]()[_0x9984('0x24')](function(){_0x37132a[_0x9984('0x1a')](0xcc)[_0x9984('0x26')]();});}};}function handleEntityNotFound(_0x5a514b,_0x22e042){return function(_0x5b0552){if(!_0x5b0552){_0x5a514b[_0x9984('0x19')](0x194);}return _0x5b0552;};}function handleError(_0x579533,_0x257d3e){_0x257d3e=_0x257d3e||0x1f4;return function(_0x494da7){logger[_0x9984('0x27')](_0x494da7[_0x9984('0x28')]);if(_0x494da7[_0x9984('0x29')]){delete _0x494da7[_0x9984('0x29')];}_0x579533[_0x9984('0x1a')](_0x257d3e)['send'](_0x494da7);};}exports[_0x9984('0x2a')]=function(_0x154a4d,_0x495175){var _0x4f31ae={},_0x474236={},_0x38416c={'count':0x0,'rows':[]};var _0x19ffc4=_[_0x9984('0x2b')](db['Migration'][_0x9984('0x2c')],function(_0x34627c){return{'name':_0x34627c[_0x9984('0x2d')],'type':_0x34627c[_0x9984('0x2e')][_0x9984('0x2f')]};});_0x474236[_0x9984('0x30')]=_[_0x9984('0x2b')](_0x19ffc4,_0x9984('0x29'));_0x474236[_0x9984('0x31')]=_[_0x9984('0x32')](_0x154a4d[_0x9984('0x31')]);_0x474236[_0x9984('0x33')]=_[_0x9984('0x34')](_0x474236[_0x9984('0x30')],_0x474236[_0x9984('0x31')]);_0x4f31ae[_0x9984('0x35')]=_[_0x9984('0x34')](_0x474236['model'],qs[_0x9984('0x36')](_0x154a4d[_0x9984('0x31')][_0x9984('0x36')]));_0x4f31ae[_0x9984('0x35')]=_0x4f31ae[_0x9984('0x35')][_0x9984('0x37')]?_0x4f31ae[_0x9984('0x35')]:_0x474236[_0x9984('0x30')];if(!_0x154a4d[_0x9984('0x31')][_0x9984('0x38')]('nolimit')){_0x4f31ae[_0x9984('0x1f')]=qs[_0x9984('0x1f')](_0x154a4d[_0x9984('0x31')][_0x9984('0x1f')]);_0x4f31ae[_0x9984('0x1c')]=qs[_0x9984('0x1c')](_0x154a4d[_0x9984('0x31')][_0x9984('0x1c')]);}_0x4f31ae[_0x9984('0x39')]=qs[_0x9984('0x3a')](_0x154a4d['query'][_0x9984('0x3a')]);_0x4f31ae[_0x9984('0x3b')]=qs['filters'](_['pick'](_0x154a4d[_0x9984('0x31')],_0x474236['filters']),_0x19ffc4);if(_0x154a4d[_0x9984('0x31')][_0x9984('0x3c')]){_0x4f31ae[_0x9984('0x3b')]=_[_0x9984('0x3d')](_0x4f31ae[_0x9984('0x3b')],{'$or':_[_0x9984('0x2b')](_0x19ffc4,function(_0x248227){if(_0x248227[_0x9984('0x2e')]!==_0x9984('0x3e')){var _0xe6865f={};_0xe6865f[_0x248227['name']]={'$like':'%'+_0x154a4d['query'][_0x9984('0x3c')]+'%'};return _0xe6865f;}})});}_0x4f31ae=_['merge']({},_0x4f31ae,_0x154a4d['options']);var _0x39e293={'where':_0x4f31ae[_0x9984('0x3b')]};return db['Migration'][_0x9984('0x1e')](_0x39e293)[_0x9984('0x24')](function(_0x35916b){_0x38416c['count']=_0x35916b;if(_0x154a4d[_0x9984('0x31')]['includeAll']){_0x4f31ae[_0x9984('0x3f')]=[{'all':!![]}];}return db['Migration'][_0x9984('0x40')](_0x4f31ae);})['then'](function(_0x56145a){_0x38416c[_0x9984('0x41')]=_0x56145a;return _0x38416c;})['then'](respondWithFilteredResult(_0x495175,_0x4f31ae))['catch'](handleError(_0x495175,null));};