Built motion from commit 497d3d92.|2.5.43
[motion2.git] / server / api / intDynamics365Configuration / intDynamics365Configuration.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 _0xf7ae=['fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','offset','undefined','limit','count','json','apply','reject','update','then','sendStatus','error','name','status','send','index','map','Dynamics365Configuration','rawAttributes','type','key','model','query','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filters','filter','where','merge','includeAll','include','findAll','rows','show','params','keys','intersection','options','find','create','body','catch','getFields','findOne','getSubjects','Dynamics365Field','getDescriptions','eml-format','rimraf','zip-dir'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xf7ae,0x99));var _0xef7a=function(_0x291962,_0x54b037){_0x291962=_0x291962-0x0;var _0xbd4ab0=_0xf7ae[_0x291962];return _0xbd4ab0;};'use strict';var emlformat=require(_0xef7a('0x0'));var rimraf=require(_0xef7a('0x1'));var zipdir=require(_0xef7a('0x2'));var jsonpatch=require(_0xef7a('0x3'));var rp=require(_0xef7a('0x4'));var moment=require('moment');var BPromise=require(_0xef7a('0x5'));var Mustache=require(_0xef7a('0x6'));var util=require('util');var path=require(_0xef7a('0x7'));var sox=require(_0xef7a('0x8'));var csv=require(_0xef7a('0x9'));var ejs=require(_0xef7a('0xa'));var fs=require('fs');var fs_extra=require(_0xef7a('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xef7a('0xc'));var jsforce=require(_0xef7a('0xd'));var deskjs=require(_0xef7a('0xe'));var toCsv=require(_0xef7a('0x9'));var querystring=require(_0xef7a('0xf'));var Papa=require(_0xef7a('0x10'));var Redis=require(_0xef7a('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xef7a('0x12'));var as=require(_0xef7a('0x13'));var hardwareService=require(_0xef7a('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0xef7a('0x15'));var config=require(_0xef7a('0x16'));var licenseUtil=require(_0xef7a('0x17'));var db=require(_0xef7a('0x18'))['db'];function respondWithStatusCode(_0x539c8e,_0x413c91){_0x413c91=_0x413c91||0xcc;return function(_0x51cf83){if(_0x51cf83){return _0x539c8e['sendStatus'](_0x413c91);}return _0x539c8e['status'](_0x413c91)[_0xef7a('0x19')]();};}function respondWithResult(_0x5cf1d3,_0x29ea60){_0x29ea60=_0x29ea60||0xc8;return function(_0x4d1b01){if(_0x4d1b01){return _0x5cf1d3['status'](_0x29ea60)['json'](_0x4d1b01);}};}function respondWithFilteredResult(_0x238084,_0x232fd1){return function(_0x271700){if(_0x271700){var _0x31fea8=typeof _0x232fd1[_0xef7a('0x1a')]===_0xef7a('0x1b')&&typeof _0x232fd1[_0xef7a('0x1c')]===_0xef7a('0x1b');var _0x187ae9=_0x271700['count'];var _0x4295cd=_0x31fea8?0x0:_0x232fd1[_0xef7a('0x1a')];var _0x5c2f8c=_0x31fea8?_0x271700[_0xef7a('0x1d')]:_0x232fd1['offset']+_0x232fd1[_0xef7a('0x1c')];var _0xf7fd42;if(_0x5c2f8c>=_0x187ae9){_0x5c2f8c=_0x187ae9;_0xf7fd42=0xc8;}else{_0xf7fd42=0xce;}_0x238084['status'](_0xf7fd42);return _0x238084['set']('Content-Range',_0x4295cd+'-'+_0x5c2f8c+'/'+_0x187ae9)[_0xef7a('0x1e')](_0x271700);}return null;};}function patchUpdates(_0x5ef661){return function(_0x3dce5e){try{jsonpatch[_0xef7a('0x1f')](_0x3dce5e,_0x5ef661,!![]);}catch(_0x1f976d){return BPromise[_0xef7a('0x20')](_0x1f976d);}return _0x3dce5e['save']();};}function saveUpdates(_0x3a9abd,_0x5312be){return function(_0x83fb4e){if(_0x83fb4e){return _0x83fb4e[_0xef7a('0x21')](_0x3a9abd)['then'](function(_0x2af94c){return _0x2af94c;});}return null;};}function removeEntity(_0x54c164,_0x56a395){return function(_0x1bac8){if(_0x1bac8){return _0x1bac8['destroy']()[_0xef7a('0x22')](function(){_0x54c164['status'](0xcc)[_0xef7a('0x19')]();});}};}function handleEntityNotFound(_0x4ab204,_0x61d8c0){return function(_0x13badd){if(!_0x13badd){_0x4ab204[_0xef7a('0x23')](0x194);}return _0x13badd;};}function handleError(_0x47f495,_0x3e0595){_0x3e0595=_0x3e0595||0x1f4;return function(_0xf4b602){logger[_0xef7a('0x24')](_0xf4b602['stack']);if(_0xf4b602[_0xef7a('0x25')]){delete _0xf4b602[_0xef7a('0x25')];}_0x47f495[_0xef7a('0x26')](_0x3e0595)[_0xef7a('0x27')](_0xf4b602);};}exports[_0xef7a('0x28')]=function(_0xfaee73,_0x26f590){var _0x2a2062={},_0x179bb0={},_0x22a19e={'count':0x0,'rows':[]};var _0x2e48f4=_[_0xef7a('0x29')](db[_0xef7a('0x2a')][_0xef7a('0x2b')],function(_0x46bfb4){return{'name':_0x46bfb4['fieldName'],'type':_0x46bfb4[_0xef7a('0x2c')][_0xef7a('0x2d')]};});_0x179bb0[_0xef7a('0x2e')]=_['map'](_0x2e48f4,'name');_0x179bb0['query']=_['keys'](_0xfaee73['query']);_0x179bb0['filters']=_['intersection'](_0x179bb0[_0xef7a('0x2e')],_0x179bb0[_0xef7a('0x2f')]);_0x2a2062[_0xef7a('0x30')]=_['intersection'](_0x179bb0[_0xef7a('0x2e')],qs[_0xef7a('0x31')](_0xfaee73[_0xef7a('0x2f')][_0xef7a('0x31')]));_0x2a2062[_0xef7a('0x30')]=_0x2a2062[_0xef7a('0x30')][_0xef7a('0x32')]?_0x2a2062[_0xef7a('0x30')]:_0x179bb0['model'];if(!_0xfaee73['query'][_0xef7a('0x33')](_0xef7a('0x34'))){_0x2a2062[_0xef7a('0x1c')]=qs[_0xef7a('0x1c')](_0xfaee73[_0xef7a('0x2f')][_0xef7a('0x1c')]);_0x2a2062[_0xef7a('0x1a')]=qs['offset'](_0xfaee73['query'][_0xef7a('0x1a')]);}_0x2a2062[_0xef7a('0x35')]=qs['sort'](_0xfaee73[_0xef7a('0x2f')][_0xef7a('0x36')]);_0x2a2062['where']=qs['filters'](_[_0xef7a('0x37')](_0xfaee73[_0xef7a('0x2f')],_0x179bb0[_0xef7a('0x38')]),_0x2e48f4);if(_0xfaee73['query'][_0xef7a('0x39')]){_0x2a2062[_0xef7a('0x3a')]=_[_0xef7a('0x3b')](_0x2a2062[_0xef7a('0x3a')],{'$or':_['map'](_0x2e48f4,function(_0x2941c1){if(_0x2941c1[_0xef7a('0x2c')]!=='VIRTUAL'){var _0x7d0986={};_0x7d0986[_0x2941c1['name']]={'$like':'%'+_0xfaee73[_0xef7a('0x2f')][_0xef7a('0x39')]+'%'};return _0x7d0986;}})});}_0x2a2062=_[_0xef7a('0x3b')]({},_0x2a2062,_0xfaee73['options']);var _0x3f55e8={'where':_0x2a2062[_0xef7a('0x3a')]};return db[_0xef7a('0x2a')][_0xef7a('0x1d')](_0x3f55e8)[_0xef7a('0x22')](function(_0x4d2cfb){_0x22a19e[_0xef7a('0x1d')]=_0x4d2cfb;if(_0xfaee73[_0xef7a('0x2f')][_0xef7a('0x3c')]){_0x2a2062[_0xef7a('0x3d')]=[{'all':!![]}];}return db[_0xef7a('0x2a')][_0xef7a('0x3e')](_0x2a2062);})[_0xef7a('0x22')](function(_0x4e704b){_0x22a19e[_0xef7a('0x3f')]=_0x4e704b;return _0x22a19e;})['then'](respondWithFilteredResult(_0x26f590,_0x2a2062))['catch'](handleError(_0x26f590,null));};exports[_0xef7a('0x40')]=function(_0x1dd4af,_0xf4a3b9){var _0x2f6e84={'raw':![],'where':{'id':_0x1dd4af[_0xef7a('0x41')]['id']}},_0x57c5fe={};_0x57c5fe[_0xef7a('0x2e')]=_[_0xef7a('0x42')](db[_0xef7a('0x2a')][_0xef7a('0x2b')]);_0x57c5fe[_0xef7a('0x2f')]=_[_0xef7a('0x42')](_0x1dd4af['query']);_0x57c5fe[_0xef7a('0x38')]=_['intersection'](_0x57c5fe[_0xef7a('0x2e')],_0x57c5fe[_0xef7a('0x2f')]);_0x2f6e84['attributes']=_[_0xef7a('0x43')](_0x57c5fe[_0xef7a('0x2e')],qs[_0xef7a('0x31')](_0x1dd4af['query'][_0xef7a('0x31')]));_0x2f6e84['attributes']=_0x2f6e84[_0xef7a('0x30')][_0xef7a('0x32')]?_0x2f6e84[_0xef7a('0x30')]:_0x57c5fe[_0xef7a('0x2e')];if(_0x1dd4af[_0xef7a('0x2f')][_0xef7a('0x3c')]){_0x2f6e84[_0xef7a('0x3d')]=[{'all':!![]}];}_0x2f6e84=_[_0xef7a('0x3b')]({},_0x2f6e84,_0x1dd4af[_0xef7a('0x44')]);return db[_0xef7a('0x2a')][_0xef7a('0x45')](_0x2f6e84)['then'](handleEntityNotFound(_0xf4a3b9,null))['then'](respondWithResult(_0xf4a3b9,null))['catch'](handleError(_0xf4a3b9,null));};exports['create']=function(_0x425a37,_0x27550f){return db[_0xef7a('0x2a')][_0xef7a('0x46')](_0x425a37[_0xef7a('0x47')],{})[_0xef7a('0x22')](respondWithResult(_0x27550f,0xc9))[_0xef7a('0x48')](handleError(_0x27550f,null));};exports['update']=function(_0x7adcdb,_0x99a828){if(_0x7adcdb['body']['id']){delete _0x7adcdb['body']['id'];}return db['Dynamics365Configuration']['find']({'where':{'id':_0x7adcdb[_0xef7a('0x41')]['id']}})['then'](handleEntityNotFound(_0x99a828,null))['then'](saveUpdates(_0x7adcdb[_0xef7a('0x47')],null))[_0xef7a('0x22')](respondWithResult(_0x99a828,null))[_0xef7a('0x48')](handleError(_0x99a828,null));};exports['destroy']=function(_0x1246da,_0x48ac10){return db[_0xef7a('0x2a')][_0xef7a('0x45')]({'where':{'id':_0x1246da[_0xef7a('0x41')]['id']}})['then'](handleEntityNotFound(_0x48ac10,null))[_0xef7a('0x22')](removeEntity(_0x48ac10,null))[_0xef7a('0x48')](handleError(_0x48ac10,null));};exports[_0xef7a('0x49')]=function(_0x4f2c00,_0x4b310f,_0x1aa607){var _0x15288f={};var _0x30857f={};var _0x390888;var _0x198ca6;return db[_0xef7a('0x2a')][_0xef7a('0x4a')]({'where':{'id':_0x4f2c00[_0xef7a('0x41')]['id']}})['then'](handleEntityNotFound(_0x4b310f,null))['then'](function(_0xbafae5){if(_0xbafae5){_0x390888=_0xbafae5;_0x30857f['model']=_[_0xef7a('0x42')](db['Dynamics365Field']['rawAttributes']);_0x30857f[_0xef7a('0x2f')]=_['keys'](_0x4f2c00['query']);_0x30857f['filters']=_['intersection'](_0x30857f['model'],_0x30857f[_0xef7a('0x2f')]);_0x15288f[_0xef7a('0x30')]=_[_0xef7a('0x43')](_0x30857f[_0xef7a('0x2e')],qs[_0xef7a('0x31')](_0x4f2c00[_0xef7a('0x2f')][_0xef7a('0x31')]));_0x15288f[_0xef7a('0x30')]=_0x15288f[_0xef7a('0x30')]['length']?_0x15288f[_0xef7a('0x30')]:_0x30857f[_0xef7a('0x2e')];_0x15288f['order']=qs['sort'](_0x4f2c00[_0xef7a('0x2f')][_0xef7a('0x36')]);_0x15288f['where']=qs[_0xef7a('0x38')](_[_0xef7a('0x37')](_0x4f2c00[_0xef7a('0x2f')],_0x30857f[_0xef7a('0x38')]));if(_0x4f2c00['query'][_0xef7a('0x39')]){_0x15288f['where']=_[_0xef7a('0x3b')](_0x15288f[_0xef7a('0x3a')],{'$or':_[_0xef7a('0x29')](_0x15288f[_0xef7a('0x30')],function(_0x4878e9){var _0x4ea642={};_0x4ea642[_0x4878e9]={'$like':'%'+_0x4f2c00[_0xef7a('0x2f')][_0xef7a('0x39')]+'%'};return _0x4ea642;})});}_0x15288f=_[_0xef7a('0x3b')]({},_0x15288f,_0x4f2c00[_0xef7a('0x44')]);return _0x390888[_0xef7a('0x49')](_0x15288f);}})[_0xef7a('0x22')](function(_0x56d57b){if(_0x56d57b){_0x198ca6=_0x56d57b[_0xef7a('0x32')];if(!_0x4f2c00[_0xef7a('0x2f')][_0xef7a('0x33')](_0xef7a('0x34'))){_0x15288f['limit']=qs[_0xef7a('0x1c')](_0x4f2c00[_0xef7a('0x2f')]['limit']);_0x15288f[_0xef7a('0x1a')]=qs[_0xef7a('0x1a')](_0x4f2c00['query']['offset']);}return _0x390888['getFields'](_0x15288f);}})[_0xef7a('0x22')](function(_0x41fbf5){if(_0x41fbf5){return _0x41fbf5?{'count':_0x198ca6,'rows':_0x41fbf5}:null;}})[_0xef7a('0x22')](respondWithResult(_0x4b310f,null))[_0xef7a('0x48')](handleError(_0x4b310f,null));};exports[_0xef7a('0x4b')]=function(_0xca7366,_0x5b7b93,_0x340ebf){var _0x3188a0={};var _0x4fa84f={};var _0x4ee3ae;var _0x26d633;return db[_0xef7a('0x2a')]['findOne']({'where':{'id':_0xca7366['params']['id']}})[_0xef7a('0x22')](handleEntityNotFound(_0x5b7b93,null))[_0xef7a('0x22')](function(_0x142648){if(_0x142648){_0x4ee3ae=_0x142648;_0x4fa84f[_0xef7a('0x2e')]=_[_0xef7a('0x42')](db[_0xef7a('0x4c')][_0xef7a('0x2b')]);_0x4fa84f['query']=_['keys'](_0xca7366[_0xef7a('0x2f')]);_0x4fa84f[_0xef7a('0x38')]=_[_0xef7a('0x43')](_0x4fa84f[_0xef7a('0x2e')],_0x4fa84f['query']);_0x3188a0[_0xef7a('0x30')]=_['intersection'](_0x4fa84f[_0xef7a('0x2e')],qs[_0xef7a('0x31')](_0xca7366[_0xef7a('0x2f')][_0xef7a('0x31')]));_0x3188a0['attributes']=_0x3188a0[_0xef7a('0x30')][_0xef7a('0x32')]?_0x3188a0[_0xef7a('0x30')]:_0x4fa84f[_0xef7a('0x2e')];_0x3188a0[_0xef7a('0x35')]=qs['sort'](_0xca7366[_0xef7a('0x2f')][_0xef7a('0x36')]);_0x3188a0[_0xef7a('0x3a')]=qs['filters'](_[_0xef7a('0x37')](_0xca7366['query'],_0x4fa84f[_0xef7a('0x38')]));if(_0xca7366['query']['filter']){_0x3188a0[_0xef7a('0x3a')]=_[_0xef7a('0x3b')](_0x3188a0[_0xef7a('0x3a')],{'$or':_['map'](_0x3188a0['attributes'],function(_0x578df7){var _0x2dbdfc={};_0x2dbdfc[_0x578df7]={'$like':'%'+_0xca7366[_0xef7a('0x2f')]['filter']+'%'};return _0x2dbdfc;})});}_0x3188a0=_[_0xef7a('0x3b')]({},_0x3188a0,_0xca7366[_0xef7a('0x44')]);return _0x4ee3ae[_0xef7a('0x4b')](_0x3188a0);}})['then'](function(_0x5b5cd9){if(_0x5b5cd9){_0x26d633=_0x5b5cd9[_0xef7a('0x32')];if(!_0xca7366[_0xef7a('0x2f')][_0xef7a('0x33')](_0xef7a('0x34'))){_0x3188a0['limit']=qs[_0xef7a('0x1c')](_0xca7366[_0xef7a('0x2f')][_0xef7a('0x1c')]);_0x3188a0[_0xef7a('0x1a')]=qs[_0xef7a('0x1a')](_0xca7366[_0xef7a('0x2f')][_0xef7a('0x1a')]);}return _0x4ee3ae[_0xef7a('0x4b')](_0x3188a0);}})[_0xef7a('0x22')](function(_0x2f1207){if(_0x2f1207){return _0x2f1207?{'count':_0x26d633,'rows':_0x2f1207}:null;}})[_0xef7a('0x22')](respondWithResult(_0x5b7b93,null))[_0xef7a('0x48')](handleError(_0x5b7b93,null));};exports[_0xef7a('0x4d')]=function(_0x4bab4c,_0x183fd0,_0xd9539e){var _0x2313e7={};var _0x2f5d05={};var _0x17215b;var _0x43b5b9;return db['Dynamics365Configuration'][_0xef7a('0x4a')]({'where':{'id':_0x4bab4c[_0xef7a('0x41')]['id']}})[_0xef7a('0x22')](handleEntityNotFound(_0x183fd0,null))[_0xef7a('0x22')](function(_0x3de12a){if(_0x3de12a){_0x17215b=_0x3de12a;_0x2f5d05[_0xef7a('0x2e')]=_[_0xef7a('0x42')](db['Dynamics365Field']['rawAttributes']);_0x2f5d05['query']=_[_0xef7a('0x42')](_0x4bab4c['query']);_0x2f5d05[_0xef7a('0x38')]=_[_0xef7a('0x43')](_0x2f5d05[_0xef7a('0x2e')],_0x2f5d05[_0xef7a('0x2f')]);_0x2313e7[_0xef7a('0x30')]=_[_0xef7a('0x43')](_0x2f5d05[_0xef7a('0x2e')],qs['fields'](_0x4bab4c['query']['fields']));_0x2313e7[_0xef7a('0x30')]=_0x2313e7[_0xef7a('0x30')][_0xef7a('0x32')]?_0x2313e7[_0xef7a('0x30')]:_0x2f5d05[_0xef7a('0x2e')];_0x2313e7[_0xef7a('0x35')]=qs[_0xef7a('0x36')](_0x4bab4c[_0xef7a('0x2f')]['sort']);_0x2313e7[_0xef7a('0x3a')]=qs[_0xef7a('0x38')](_['pick'](_0x4bab4c['query'],_0x2f5d05[_0xef7a('0x38')]));if(_0x4bab4c['query'][_0xef7a('0x39')]){_0x2313e7[_0xef7a('0x3a')]=_[_0xef7a('0x3b')](_0x2313e7['where'],{'$or':_[_0xef7a('0x29')](_0x2313e7[_0xef7a('0x30')],function(_0x5c524a){var _0x3b4ac9={};_0x3b4ac9[_0x5c524a]={'$like':'%'+_0x4bab4c[_0xef7a('0x2f')][_0xef7a('0x39')]+'%'};return _0x3b4ac9;})});}_0x2313e7=_['merge']({},_0x2313e7,_0x4bab4c[_0xef7a('0x44')]);return _0x17215b[_0xef7a('0x4d')](_0x2313e7);}})[_0xef7a('0x22')](function(_0x328a10){if(_0x328a10){_0x43b5b9=_0x328a10[_0xef7a('0x32')];if(!_0x4bab4c[_0xef7a('0x2f')]['hasOwnProperty'](_0xef7a('0x34'))){_0x2313e7[_0xef7a('0x1c')]=qs['limit'](_0x4bab4c['query'][_0xef7a('0x1c')]);_0x2313e7[_0xef7a('0x1a')]=qs['offset'](_0x4bab4c['query'][_0xef7a('0x1a')]);}return _0x17215b[_0xef7a('0x4d')](_0x2313e7);}})[_0xef7a('0x22')](function(_0x4e12e8){if(_0x4e12e8){return _0x4e12e8?{'count':_0x43b5b9,'rows':_0x4e12e8}:null;}})[_0xef7a('0x22')](respondWithResult(_0x183fd0,null))[_0xef7a('0x48')](handleError(_0x183fd0,null));};