c388cffea4a55ff03b8a7e2ac6d5f54dca8087dd
[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 _0x74d5=['getDescriptions','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','destroy','then','end','name','send','index','map','Dynamics365Configuration','rawAttributes','fieldName','type','query','keys','filters','model','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','show','params','length','find','create','body','getFields','getSubjects','findOne','Dynamics365Field'];(function(_0x6f52f5,_0x20c747){var _0x2fac55=function(_0x46c5b8){while(--_0x46c5b8){_0x6f52f5['push'](_0x6f52f5['shift']());}};_0x2fac55(++_0x20c747);}(_0x74d5,0x1ed));var _0x574d=function(_0x2db0e0,_0x43c8c0){_0x2db0e0=_0x2db0e0-0x0;var _0x1d78ca=_0x74d5[_0x2db0e0];return _0x1d78ca;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x574d('0x0'));var zipdir=require(_0x574d('0x1'));var jsonpatch=require(_0x574d('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x574d('0x3'));var Mustache=require(_0x574d('0x4'));var util=require(_0x574d('0x5'));var path=require(_0x574d('0x6'));var sox=require(_0x574d('0x7'));var csv=require('to-csv');var ejs=require(_0x574d('0x8'));var fs=require('fs');var fs_extra=require(_0x574d('0x9'));var _=require(_0x574d('0xa'));var squel=require(_0x574d('0xb'));var crypto=require('crypto');var jsforce=require(_0x574d('0xc'));var deskjs=require(_0x574d('0xd'));var toCsv=require(_0x574d('0xe'));var querystring=require(_0x574d('0xf'));var Papa=require(_0x574d('0x10'));var Redis=require(_0x574d('0x11'));var authService=require(_0x574d('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x574d('0x13'));var hardwareService=require(_0x574d('0x14'));var logger=require(_0x574d('0x15'))(_0x574d('0x16'));var utils=require(_0x574d('0x17'));var config=require(_0x574d('0x18'));var licenseUtil=require(_0x574d('0x19'));var db=require(_0x574d('0x1a'))['db'];function respondWithStatusCode(_0x38118a,_0x44ca63){_0x44ca63=_0x44ca63||0xcc;return function(_0x24788e){if(_0x24788e){return _0x38118a[_0x574d('0x1b')](_0x44ca63);}return _0x38118a[_0x574d('0x1c')](_0x44ca63)['end']();};}function respondWithResult(_0xdfa503,_0x2ce6c6){_0x2ce6c6=_0x2ce6c6||0xc8;return function(_0x72b2ab){if(_0x72b2ab){return _0xdfa503[_0x574d('0x1c')](_0x2ce6c6)[_0x574d('0x1d')](_0x72b2ab);}};}function respondWithFilteredResult(_0x507307,_0x2e949f){return function(_0x3f67d2){if(_0x3f67d2){var _0x1f767d=typeof _0x2e949f[_0x574d('0x1e')]===_0x574d('0x1f')&&typeof _0x2e949f[_0x574d('0x20')]===_0x574d('0x1f');var _0x1b4b53=_0x3f67d2[_0x574d('0x21')];var _0x4bc97d=_0x1f767d?0x0:_0x2e949f[_0x574d('0x1e')];var _0x1ef9a5=_0x1f767d?_0x3f67d2['count']:_0x2e949f[_0x574d('0x1e')]+_0x2e949f[_0x574d('0x20')];var _0x592e51;if(_0x1ef9a5>=_0x1b4b53){_0x1ef9a5=_0x1b4b53;_0x592e51=0xc8;}else{_0x592e51=0xce;}_0x507307[_0x574d('0x1c')](_0x592e51);return _0x507307[_0x574d('0x22')](_0x574d('0x23'),_0x4bc97d+'-'+_0x1ef9a5+'/'+_0x1b4b53)['json'](_0x3f67d2);}return null;};}function patchUpdates(_0x407eeb){return function(_0x8a0bbe){try{jsonpatch[_0x574d('0x24')](_0x8a0bbe,_0x407eeb,!![]);}catch(_0x8158e3){return BPromise[_0x574d('0x25')](_0x8158e3);}return _0x8a0bbe['save']();};}function saveUpdates(_0x45795a,_0x595972){return function(_0x54ae81){if(_0x54ae81){return _0x54ae81[_0x574d('0x26')](_0x45795a)['then'](function(_0x4cb36e){return _0x4cb36e;});}return null;};}function removeEntity(_0x1f60bd,_0x1ccb9e){return function(_0x2a7a53){if(_0x2a7a53){return _0x2a7a53[_0x574d('0x27')]()[_0x574d('0x28')](function(){_0x1f60bd['status'](0xcc)[_0x574d('0x29')]();});}};}function handleEntityNotFound(_0x9a1180,_0x24b9cc){return function(_0x246558){if(!_0x246558){_0x9a1180[_0x574d('0x1b')](0x194);}return _0x246558;};}function handleError(_0x42675d,_0x39051e){_0x39051e=_0x39051e||0x1f4;return function(_0x13c846){logger['error'](_0x13c846['stack']);if(_0x13c846[_0x574d('0x2a')]){delete _0x13c846[_0x574d('0x2a')];}_0x42675d[_0x574d('0x1c')](_0x39051e)[_0x574d('0x2b')](_0x13c846);};}exports[_0x574d('0x2c')]=function(_0x526d8d,_0x955870){var _0x16ef3f={},_0x709dd9={},_0x44ecc5={'count':0x0,'rows':[]};var _0x322ea3=_[_0x574d('0x2d')](db[_0x574d('0x2e')][_0x574d('0x2f')],function(_0x13ff1a){return{'name':_0x13ff1a[_0x574d('0x30')],'type':_0x13ff1a[_0x574d('0x31')]['key']};});_0x709dd9['model']=_[_0x574d('0x2d')](_0x322ea3,_0x574d('0x2a'));_0x709dd9[_0x574d('0x32')]=_[_0x574d('0x33')](_0x526d8d['query']);_0x709dd9[_0x574d('0x34')]=_['intersection'](_0x709dd9[_0x574d('0x35')],_0x709dd9[_0x574d('0x32')]);_0x16ef3f['attributes']=_[_0x574d('0x36')](_0x709dd9['model'],qs[_0x574d('0x37')](_0x526d8d[_0x574d('0x32')][_0x574d('0x37')]));_0x16ef3f[_0x574d('0x38')]=_0x16ef3f[_0x574d('0x38')]['length']?_0x16ef3f[_0x574d('0x38')]:_0x709dd9['model'];if(!_0x526d8d[_0x574d('0x32')][_0x574d('0x39')](_0x574d('0x3a'))){_0x16ef3f[_0x574d('0x20')]=qs['limit'](_0x526d8d['query'][_0x574d('0x20')]);_0x16ef3f['offset']=qs[_0x574d('0x1e')](_0x526d8d['query'][_0x574d('0x1e')]);}_0x16ef3f[_0x574d('0x3b')]=qs['sort'](_0x526d8d[_0x574d('0x32')][_0x574d('0x3c')]);_0x16ef3f[_0x574d('0x3d')]=qs['filters'](_[_0x574d('0x3e')](_0x526d8d[_0x574d('0x32')],_0x709dd9[_0x574d('0x34')]),_0x322ea3);if(_0x526d8d['query'][_0x574d('0x3f')]){_0x16ef3f[_0x574d('0x3d')]=_[_0x574d('0x40')](_0x16ef3f[_0x574d('0x3d')],{'$or':_['map'](_0x322ea3,function(_0x1d2c64){if(_0x1d2c64['type']!==_0x574d('0x41')){var _0x36c7b3={};_0x36c7b3[_0x1d2c64['name']]={'$like':'%'+_0x526d8d[_0x574d('0x32')][_0x574d('0x3f')]+'%'};return _0x36c7b3;}})});}_0x16ef3f=_[_0x574d('0x40')]({},_0x16ef3f,_0x526d8d[_0x574d('0x42')]);var _0x2822b3={'where':_0x16ef3f[_0x574d('0x3d')]};return db['Dynamics365Configuration'][_0x574d('0x21')](_0x2822b3)['then'](function(_0xc3a080){_0x44ecc5[_0x574d('0x21')]=_0xc3a080;if(_0x526d8d[_0x574d('0x32')][_0x574d('0x43')]){_0x16ef3f[_0x574d('0x44')]=[{'all':!![]}];}return db[_0x574d('0x2e')]['findAll'](_0x16ef3f);})['then'](function(_0x672f77){_0x44ecc5[_0x574d('0x45')]=_0x672f77;return _0x44ecc5;})[_0x574d('0x28')](respondWithFilteredResult(_0x955870,_0x16ef3f))[_0x574d('0x46')](handleError(_0x955870,null));};exports[_0x574d('0x47')]=function(_0x1e0fd6,_0x2de1e2){var _0x1f0af9={'raw':![],'where':{'id':_0x1e0fd6[_0x574d('0x48')]['id']}},_0x1e9da7={};_0x1e9da7[_0x574d('0x35')]=_['keys'](db['Dynamics365Configuration'][_0x574d('0x2f')]);_0x1e9da7[_0x574d('0x32')]=_[_0x574d('0x33')](_0x1e0fd6[_0x574d('0x32')]);_0x1e9da7[_0x574d('0x34')]=_['intersection'](_0x1e9da7[_0x574d('0x35')],_0x1e9da7[_0x574d('0x32')]);_0x1f0af9[_0x574d('0x38')]=_['intersection'](_0x1e9da7[_0x574d('0x35')],qs[_0x574d('0x37')](_0x1e0fd6[_0x574d('0x32')][_0x574d('0x37')]));_0x1f0af9[_0x574d('0x38')]=_0x1f0af9[_0x574d('0x38')][_0x574d('0x49')]?_0x1f0af9[_0x574d('0x38')]:_0x1e9da7[_0x574d('0x35')];if(_0x1e0fd6[_0x574d('0x32')][_0x574d('0x43')]){_0x1f0af9[_0x574d('0x44')]=[{'all':!![]}];}_0x1f0af9=_['merge']({},_0x1f0af9,_0x1e0fd6[_0x574d('0x42')]);return db[_0x574d('0x2e')][_0x574d('0x4a')](_0x1f0af9)[_0x574d('0x28')](handleEntityNotFound(_0x2de1e2,null))[_0x574d('0x28')](respondWithResult(_0x2de1e2,null))[_0x574d('0x46')](handleError(_0x2de1e2,null));};exports[_0x574d('0x4b')]=function(_0x466400,_0x337c14){return db[_0x574d('0x2e')][_0x574d('0x4b')](_0x466400[_0x574d('0x4c')],{})[_0x574d('0x28')](respondWithResult(_0x337c14,0xc9))[_0x574d('0x46')](handleError(_0x337c14,null));};exports[_0x574d('0x26')]=function(_0xa1c2f0,_0x5bf125){if(_0xa1c2f0[_0x574d('0x4c')]['id']){delete _0xa1c2f0[_0x574d('0x4c')]['id'];}return db['Dynamics365Configuration'][_0x574d('0x4a')]({'where':{'id':_0xa1c2f0[_0x574d('0x48')]['id']}})[_0x574d('0x28')](handleEntityNotFound(_0x5bf125,null))[_0x574d('0x28')](saveUpdates(_0xa1c2f0[_0x574d('0x4c')],null))[_0x574d('0x28')](respondWithResult(_0x5bf125,null))[_0x574d('0x46')](handleError(_0x5bf125,null));};exports[_0x574d('0x27')]=function(_0x3ab8a6,_0x48951c){return db[_0x574d('0x2e')]['find']({'where':{'id':_0x3ab8a6[_0x574d('0x48')]['id']}})[_0x574d('0x28')](handleEntityNotFound(_0x48951c,null))['then'](removeEntity(_0x48951c,null))['catch'](handleError(_0x48951c,null));};exports[_0x574d('0x4d')]=function(_0x4cc1d2,_0x4d2dbb,_0x121baa){var _0x3507b6={};var _0x7ef48a={};var _0x328f41;var _0x575c16;return db['Dynamics365Configuration']['findOne']({'where':{'id':_0x4cc1d2[_0x574d('0x48')]['id']}})[_0x574d('0x28')](handleEntityNotFound(_0x4d2dbb,null))[_0x574d('0x28')](function(_0x21d6a9){if(_0x21d6a9){_0x328f41=_0x21d6a9;_0x7ef48a[_0x574d('0x35')]=_['keys'](db['Dynamics365Field'][_0x574d('0x2f')]);_0x7ef48a['query']=_['keys'](_0x4cc1d2[_0x574d('0x32')]);_0x7ef48a['filters']=_[_0x574d('0x36')](_0x7ef48a['model'],_0x7ef48a['query']);_0x3507b6['attributes']=_[_0x574d('0x36')](_0x7ef48a[_0x574d('0x35')],qs[_0x574d('0x37')](_0x4cc1d2[_0x574d('0x32')]['fields']));_0x3507b6[_0x574d('0x38')]=_0x3507b6[_0x574d('0x38')][_0x574d('0x49')]?_0x3507b6['attributes']:_0x7ef48a[_0x574d('0x35')];_0x3507b6[_0x574d('0x3b')]=qs[_0x574d('0x3c')](_0x4cc1d2[_0x574d('0x32')][_0x574d('0x3c')]);_0x3507b6['where']=qs[_0x574d('0x34')](_[_0x574d('0x3e')](_0x4cc1d2['query'],_0x7ef48a[_0x574d('0x34')]));if(_0x4cc1d2[_0x574d('0x32')][_0x574d('0x3f')]){_0x3507b6[_0x574d('0x3d')]=_[_0x574d('0x40')](_0x3507b6['where'],{'$or':_[_0x574d('0x2d')](_0x3507b6[_0x574d('0x38')],function(_0x3aa97e){var _0x27e027={};_0x27e027[_0x3aa97e]={'$like':'%'+_0x4cc1d2['query'][_0x574d('0x3f')]+'%'};return _0x27e027;})});}_0x3507b6=_[_0x574d('0x40')]({},_0x3507b6,_0x4cc1d2[_0x574d('0x42')]);return _0x328f41[_0x574d('0x4d')](_0x3507b6);}})[_0x574d('0x28')](function(_0x49d2e3){if(_0x49d2e3){_0x575c16=_0x49d2e3[_0x574d('0x49')];if(!_0x4cc1d2[_0x574d('0x32')][_0x574d('0x39')](_0x574d('0x3a'))){_0x3507b6[_0x574d('0x20')]=qs[_0x574d('0x20')](_0x4cc1d2[_0x574d('0x32')][_0x574d('0x20')]);_0x3507b6[_0x574d('0x1e')]=qs['offset'](_0x4cc1d2[_0x574d('0x32')]['offset']);}return _0x328f41[_0x574d('0x4d')](_0x3507b6);}})[_0x574d('0x28')](function(_0x29cffd){if(_0x29cffd){return _0x29cffd?{'count':_0x575c16,'rows':_0x29cffd}:null;}})[_0x574d('0x28')](respondWithResult(_0x4d2dbb,null))[_0x574d('0x46')](handleError(_0x4d2dbb,null));};exports[_0x574d('0x4e')]=function(_0x5bdd32,_0x2e79d8,_0x4465f3){var _0x581c0b={};var _0xee48d0={};var _0x604418;var _0x1d14f9;return db[_0x574d('0x2e')][_0x574d('0x4f')]({'where':{'id':_0x5bdd32[_0x574d('0x48')]['id']}})[_0x574d('0x28')](handleEntityNotFound(_0x2e79d8,null))[_0x574d('0x28')](function(_0x264042){if(_0x264042){_0x604418=_0x264042;_0xee48d0[_0x574d('0x35')]=_[_0x574d('0x33')](db[_0x574d('0x50')][_0x574d('0x2f')]);_0xee48d0[_0x574d('0x32')]=_[_0x574d('0x33')](_0x5bdd32[_0x574d('0x32')]);_0xee48d0['filters']=_[_0x574d('0x36')](_0xee48d0[_0x574d('0x35')],_0xee48d0[_0x574d('0x32')]);_0x581c0b[_0x574d('0x38')]=_[_0x574d('0x36')](_0xee48d0[_0x574d('0x35')],qs[_0x574d('0x37')](_0x5bdd32['query'][_0x574d('0x37')]));_0x581c0b[_0x574d('0x38')]=_0x581c0b[_0x574d('0x38')][_0x574d('0x49')]?_0x581c0b[_0x574d('0x38')]:_0xee48d0['model'];_0x581c0b[_0x574d('0x3b')]=qs[_0x574d('0x3c')](_0x5bdd32[_0x574d('0x32')][_0x574d('0x3c')]);_0x581c0b[_0x574d('0x3d')]=qs[_0x574d('0x34')](_[_0x574d('0x3e')](_0x5bdd32[_0x574d('0x32')],_0xee48d0[_0x574d('0x34')]));if(_0x5bdd32['query'][_0x574d('0x3f')]){_0x581c0b['where']=_['merge'](_0x581c0b[_0x574d('0x3d')],{'$or':_[_0x574d('0x2d')](_0x581c0b[_0x574d('0x38')],function(_0x61ee11){var _0x578db9={};_0x578db9[_0x61ee11]={'$like':'%'+_0x5bdd32[_0x574d('0x32')][_0x574d('0x3f')]+'%'};return _0x578db9;})});}_0x581c0b=_[_0x574d('0x40')]({},_0x581c0b,_0x5bdd32[_0x574d('0x42')]);return _0x604418[_0x574d('0x4e')](_0x581c0b);}})[_0x574d('0x28')](function(_0x1acb90){if(_0x1acb90){_0x1d14f9=_0x1acb90[_0x574d('0x49')];if(!_0x5bdd32['query'][_0x574d('0x39')](_0x574d('0x3a'))){_0x581c0b[_0x574d('0x20')]=qs[_0x574d('0x20')](_0x5bdd32[_0x574d('0x32')][_0x574d('0x20')]);_0x581c0b['offset']=qs[_0x574d('0x1e')](_0x5bdd32[_0x574d('0x32')][_0x574d('0x1e')]);}return _0x604418[_0x574d('0x4e')](_0x581c0b);}})['then'](function(_0x370ae1){if(_0x370ae1){return _0x370ae1?{'count':_0x1d14f9,'rows':_0x370ae1}:null;}})[_0x574d('0x28')](respondWithResult(_0x2e79d8,null))[_0x574d('0x46')](handleError(_0x2e79d8,null));};exports[_0x574d('0x51')]=function(_0x1806ab,_0x434c4e,_0x2ad93d){var _0x5cd4ff={};var _0x32d0c4={};var _0x5e4b56;var _0x58d902;return db['Dynamics365Configuration'][_0x574d('0x4f')]({'where':{'id':_0x1806ab[_0x574d('0x48')]['id']}})[_0x574d('0x28')](handleEntityNotFound(_0x434c4e,null))[_0x574d('0x28')](function(_0x1e4449){if(_0x1e4449){_0x5e4b56=_0x1e4449;_0x32d0c4['model']=_[_0x574d('0x33')](db[_0x574d('0x50')][_0x574d('0x2f')]);_0x32d0c4[_0x574d('0x32')]=_[_0x574d('0x33')](_0x1806ab[_0x574d('0x32')]);_0x32d0c4[_0x574d('0x34')]=_[_0x574d('0x36')](_0x32d0c4[_0x574d('0x35')],_0x32d0c4['query']);_0x5cd4ff[_0x574d('0x38')]=_[_0x574d('0x36')](_0x32d0c4[_0x574d('0x35')],qs[_0x574d('0x37')](_0x1806ab[_0x574d('0x32')][_0x574d('0x37')]));_0x5cd4ff[_0x574d('0x38')]=_0x5cd4ff['attributes'][_0x574d('0x49')]?_0x5cd4ff[_0x574d('0x38')]:_0x32d0c4[_0x574d('0x35')];_0x5cd4ff[_0x574d('0x3b')]=qs[_0x574d('0x3c')](_0x1806ab['query'][_0x574d('0x3c')]);_0x5cd4ff[_0x574d('0x3d')]=qs[_0x574d('0x34')](_[_0x574d('0x3e')](_0x1806ab[_0x574d('0x32')],_0x32d0c4[_0x574d('0x34')]));if(_0x1806ab[_0x574d('0x32')]['filter']){_0x5cd4ff[_0x574d('0x3d')]=_[_0x574d('0x40')](_0x5cd4ff['where'],{'$or':_['map'](_0x5cd4ff[_0x574d('0x38')],function(_0x53531f){var _0xe03865={};_0xe03865[_0x53531f]={'$like':'%'+_0x1806ab[_0x574d('0x32')]['filter']+'%'};return _0xe03865;})});}_0x5cd4ff=_[_0x574d('0x40')]({},_0x5cd4ff,_0x1806ab[_0x574d('0x42')]);return _0x5e4b56[_0x574d('0x51')](_0x5cd4ff);}})[_0x574d('0x28')](function(_0x1b6492){if(_0x1b6492){_0x58d902=_0x1b6492[_0x574d('0x49')];if(!_0x1806ab[_0x574d('0x32')][_0x574d('0x39')](_0x574d('0x3a'))){_0x5cd4ff[_0x574d('0x20')]=qs[_0x574d('0x20')](_0x1806ab[_0x574d('0x32')][_0x574d('0x20')]);_0x5cd4ff[_0x574d('0x1e')]=qs[_0x574d('0x1e')](_0x1806ab[_0x574d('0x32')][_0x574d('0x1e')]);}return _0x5e4b56['getDescriptions'](_0x5cd4ff);}})[_0x574d('0x28')](function(_0x103690){if(_0x103690){return _0x103690?{'count':_0x58d902,'rows':_0x103690}:null;}})['then'](respondWithResult(_0x434c4e,null))[_0x574d('0x46')](handleError(_0x434c4e,null));};