Built motion from commit 8271bb6f.|2.6.28
[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 _0xbdf3=['rows','catch','rimraf','zip-dir','request-promise','bluebird','mustache','sox','to-csv','ejs','fs-extra','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','sendStatus','stack','name','send','index','map','Migration','rawAttributes','fieldName','type','model','query','filters','intersection','fields','attributes','hasOwnProperty','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll'];(function(_0x24a09c,_0x5e54d4){var _0x32d7c2=function(_0x353deb){while(--_0x353deb){_0x24a09c['push'](_0x24a09c['shift']());}};_0x32d7c2(++_0x5e54d4);}(_0xbdf3,0x10a));var _0x3bdf=function(_0x1667df,_0x266940){_0x1667df=_0x1667df-0x0;var _0x341abf=_0xbdf3[_0x1667df];return _0x341abf;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3bdf('0x0'));var zipdir=require(_0x3bdf('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x3bdf('0x2'));var moment=require('moment');var BPromise=require(_0x3bdf('0x3'));var Mustache=require(_0x3bdf('0x4'));var util=require('util');var path=require('path');var sox=require(_0x3bdf('0x5'));var csv=require(_0x3bdf('0x6'));var ejs=require(_0x3bdf('0x7'));var fs=require('fs');var fs_extra=require(_0x3bdf('0x8'));var _=require(_0x3bdf('0x9'));var squel=require('squel');var crypto=require(_0x3bdf('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x3bdf('0xb'));var toCsv=require(_0x3bdf('0x6'));var querystring=require(_0x3bdf('0xc'));var Papa=require(_0x3bdf('0xd'));var Redis=require(_0x3bdf('0xe'));var authService=require(_0x3bdf('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3bdf('0x10'));var logger=require(_0x3bdf('0x11'))(_0x3bdf('0x12'));var utils=require(_0x3bdf('0x13'));var config=require(_0x3bdf('0x14'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x419fd7,_0x51a88f){_0x51a88f=_0x51a88f||0xcc;return function(_0x4237d1){if(_0x4237d1){return _0x419fd7['sendStatus'](_0x51a88f);}return _0x419fd7['status'](_0x51a88f)[_0x3bdf('0x15')]();};}function respondWithResult(_0x66026b,_0x38a735){_0x38a735=_0x38a735||0xc8;return function(_0x4b3cda){if(_0x4b3cda){return _0x66026b[_0x3bdf('0x16')](_0x38a735)[_0x3bdf('0x17')](_0x4b3cda);}};}function respondWithFilteredResult(_0x2e15a1,_0x373708){return function(_0x2847fd){if(_0x2847fd){var _0x3ca17a=typeof _0x373708[_0x3bdf('0x18')]===_0x3bdf('0x19')&&typeof _0x373708[_0x3bdf('0x1a')]===_0x3bdf('0x19');var _0x38fa8a=_0x2847fd[_0x3bdf('0x1b')];var _0x51b247=_0x3ca17a?0x0:_0x373708[_0x3bdf('0x18')];var _0x16f3aa=_0x3ca17a?_0x2847fd[_0x3bdf('0x1b')]:_0x373708[_0x3bdf('0x18')]+_0x373708['limit'];var _0x3fd8ef;if(_0x16f3aa>=_0x38fa8a){_0x16f3aa=_0x38fa8a;_0x3fd8ef=0xc8;}else{_0x3fd8ef=0xce;}_0x2e15a1[_0x3bdf('0x16')](_0x3fd8ef);return _0x2e15a1[_0x3bdf('0x1c')](_0x3bdf('0x1d'),_0x51b247+'-'+_0x16f3aa+'/'+_0x38fa8a)['json'](_0x2847fd);}return null;};}function patchUpdates(_0x1fe112){return function(_0x1762c4){try{jsonpatch[_0x3bdf('0x1e')](_0x1762c4,_0x1fe112,!![]);}catch(_0x4cefd9){return BPromise[_0x3bdf('0x1f')](_0x4cefd9);}return _0x1762c4[_0x3bdf('0x20')]();};}function saveUpdates(_0x5248ba,_0xd18285){return function(_0x23ab3c){if(_0x23ab3c){return _0x23ab3c[_0x3bdf('0x21')](_0x5248ba)[_0x3bdf('0x22')](function(_0x2900c1){return _0x2900c1;});}return null;};}function removeEntity(_0x48951d,_0x173d2b){return function(_0x2bc07d){if(_0x2bc07d){return _0x2bc07d[_0x3bdf('0x23')]()[_0x3bdf('0x22')](function(){_0x48951d[_0x3bdf('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x7495f4,_0x59869d){return function(_0x541f97){if(!_0x541f97){_0x7495f4[_0x3bdf('0x24')](0x194);}return _0x541f97;};}function handleError(_0x14d6c5,_0x3892f8){_0x3892f8=_0x3892f8||0x1f4;return function(_0x453427){logger['error'](_0x453427[_0x3bdf('0x25')]);if(_0x453427[_0x3bdf('0x26')]){delete _0x453427[_0x3bdf('0x26')];}_0x14d6c5['status'](_0x3892f8)[_0x3bdf('0x27')](_0x453427);};}exports[_0x3bdf('0x28')]=function(_0x1298b9,_0x175bd7){var _0x49966f={},_0x40c95b={},_0x511e7b={'count':0x0,'rows':[]};var _0x527bf2=_[_0x3bdf('0x29')](db[_0x3bdf('0x2a')][_0x3bdf('0x2b')],function(_0x56387c){return{'name':_0x56387c[_0x3bdf('0x2c')],'type':_0x56387c[_0x3bdf('0x2d')]['key']};});_0x40c95b[_0x3bdf('0x2e')]=_['map'](_0x527bf2,_0x3bdf('0x26'));_0x40c95b[_0x3bdf('0x2f')]=_['keys'](_0x1298b9[_0x3bdf('0x2f')]);_0x40c95b[_0x3bdf('0x30')]=_['intersection'](_0x40c95b['model'],_0x40c95b[_0x3bdf('0x2f')]);_0x49966f['attributes']=_[_0x3bdf('0x31')](_0x40c95b[_0x3bdf('0x2e')],qs[_0x3bdf('0x32')](_0x1298b9['query'][_0x3bdf('0x32')]));_0x49966f[_0x3bdf('0x33')]=_0x49966f[_0x3bdf('0x33')]['length']?_0x49966f[_0x3bdf('0x33')]:_0x40c95b['model'];if(!_0x1298b9['query'][_0x3bdf('0x34')]('nolimit')){_0x49966f[_0x3bdf('0x1a')]=qs[_0x3bdf('0x1a')](_0x1298b9[_0x3bdf('0x2f')]['limit']);_0x49966f['offset']=qs[_0x3bdf('0x18')](_0x1298b9[_0x3bdf('0x2f')]['offset']);}_0x49966f[_0x3bdf('0x35')]=qs[_0x3bdf('0x36')](_0x1298b9[_0x3bdf('0x2f')][_0x3bdf('0x36')]);_0x49966f[_0x3bdf('0x37')]=qs[_0x3bdf('0x30')](_[_0x3bdf('0x38')](_0x1298b9['query'],_0x40c95b[_0x3bdf('0x30')]),_0x527bf2);if(_0x1298b9['query'][_0x3bdf('0x39')]){_0x49966f['where']=_['merge'](_0x49966f['where'],{'$or':_['map'](_0x527bf2,function(_0x4633c9){if(_0x4633c9[_0x3bdf('0x2d')]!==_0x3bdf('0x3a')){var _0x30e4ae={};_0x30e4ae[_0x4633c9['name']]={'$like':'%'+_0x1298b9['query']['filter']+'%'};return _0x30e4ae;}})});}_0x49966f=_[_0x3bdf('0x3b')]({},_0x49966f,_0x1298b9[_0x3bdf('0x3c')]);var _0x3bde1a={'where':_0x49966f[_0x3bdf('0x37')]};return db[_0x3bdf('0x2a')][_0x3bdf('0x1b')](_0x3bde1a)[_0x3bdf('0x22')](function(_0x44e2a6){_0x511e7b[_0x3bdf('0x1b')]=_0x44e2a6;if(_0x1298b9[_0x3bdf('0x2f')][_0x3bdf('0x3d')]){_0x49966f[_0x3bdf('0x3e')]=[{'all':!![]}];}return db[_0x3bdf('0x2a')][_0x3bdf('0x3f')](_0x49966f);})[_0x3bdf('0x22')](function(_0x1fedfc){_0x511e7b[_0x3bdf('0x40')]=_0x1fedfc;return _0x511e7b;})['then'](respondWithFilteredResult(_0x175bd7,_0x49966f))[_0x3bdf('0x41')](handleError(_0x175bd7,null));};