Built motion from commit 616d3211.|2.6.4
[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 _0x1e24=['Dynamics365Configuration','fieldName','model','keys','query','filters','fields','attributes','hasOwnProperty','limit','offset','order','sort','where','pick','filter','options','include','findAll','rows','show','params','intersection','length','includeAll','merge','create','body','update','find','catch','getFields','findOne','rawAttributes','getSubjects','Dynamics365Field','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','undefined','count','set','apply','reject','then','destroy','end','name','send','index','map'];(function(_0x383dbb,_0x17d41b){var _0x6e8bde=function(_0x2740f1){while(--_0x2740f1){_0x383dbb['push'](_0x383dbb['shift']());}};_0x6e8bde(++_0x17d41b);}(_0x1e24,0x155));var _0x41e2=function(_0x105e3e,_0x4cb667){_0x105e3e=_0x105e3e-0x0;var _0x5b0125=_0x1e24[_0x105e3e];return _0x5b0125;};'use strict';var emlformat=require(_0x41e2('0x0'));var rimraf=require(_0x41e2('0x1'));var zipdir=require(_0x41e2('0x2'));var jsonpatch=require(_0x41e2('0x3'));var rp=require(_0x41e2('0x4'));var moment=require('moment');var BPromise=require(_0x41e2('0x5'));var Mustache=require('mustache');var util=require(_0x41e2('0x6'));var path=require(_0x41e2('0x7'));var sox=require('sox');var csv=require(_0x41e2('0x8'));var ejs=require(_0x41e2('0x9'));var fs=require('fs');var fs_extra=require(_0x41e2('0xa'));var _=require(_0x41e2('0xb'));var squel=require(_0x41e2('0xc'));var crypto=require(_0x41e2('0xd'));var jsforce=require(_0x41e2('0xe'));var deskjs=require(_0x41e2('0xf'));var toCsv=require(_0x41e2('0x8'));var querystring=require(_0x41e2('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x41e2('0x11'));var qs=require(_0x41e2('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x41e2('0x13'));var logger=require('../../config/logger')(_0x41e2('0x14'));var utils=require(_0x41e2('0x15'));var config=require(_0x41e2('0x16'));var licenseUtil=require(_0x41e2('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2c4dc7,_0x13c974){_0x13c974=_0x13c974||0xcc;return function(_0x22e684){if(_0x22e684){return _0x2c4dc7[_0x41e2('0x18')](_0x13c974);}return _0x2c4dc7[_0x41e2('0x19')](_0x13c974)['end']();};}function respondWithResult(_0x42add8,_0x9c117c){_0x9c117c=_0x9c117c||0xc8;return function(_0x4b15bb){if(_0x4b15bb){return _0x42add8[_0x41e2('0x19')](_0x9c117c)[_0x41e2('0x1a')](_0x4b15bb);}};}function respondWithFilteredResult(_0x431cf8,_0x3931b9){return function(_0x22262e){if(_0x22262e){var _0x129573=typeof _0x3931b9['offset']===_0x41e2('0x1b')&&typeof _0x3931b9['limit']===_0x41e2('0x1b');var _0x396d8e=_0x22262e[_0x41e2('0x1c')];var _0x5b3b30=_0x129573?0x0:_0x3931b9['offset'];var _0x1e5178=_0x129573?_0x22262e[_0x41e2('0x1c')]:_0x3931b9['offset']+_0x3931b9['limit'];var _0x1509d3;if(_0x1e5178>=_0x396d8e){_0x1e5178=_0x396d8e;_0x1509d3=0xc8;}else{_0x1509d3=0xce;}_0x431cf8[_0x41e2('0x19')](_0x1509d3);return _0x431cf8[_0x41e2('0x1d')]('Content-Range',_0x5b3b30+'-'+_0x1e5178+'/'+_0x396d8e)[_0x41e2('0x1a')](_0x22262e);}return null;};}function patchUpdates(_0x34d9d4){return function(_0x58e860){try{jsonpatch[_0x41e2('0x1e')](_0x58e860,_0x34d9d4,!![]);}catch(_0x449400){return BPromise[_0x41e2('0x1f')](_0x449400);}return _0x58e860['save']();};}function saveUpdates(_0x37f105,_0x5cb51a){return function(_0x2ef9ca){if(_0x2ef9ca){return _0x2ef9ca['update'](_0x37f105)[_0x41e2('0x20')](function(_0x1b4246){return _0x1b4246;});}return null;};}function removeEntity(_0x23bfac,_0x4cd8be){return function(_0x24a7be){if(_0x24a7be){return _0x24a7be[_0x41e2('0x21')]()[_0x41e2('0x20')](function(){_0x23bfac[_0x41e2('0x19')](0xcc)[_0x41e2('0x22')]();});}};}function handleEntityNotFound(_0x3b109c,_0x477013){return function(_0x38e060){if(!_0x38e060){_0x3b109c[_0x41e2('0x18')](0x194);}return _0x38e060;};}function handleError(_0x3c92da,_0x5f5dfd){_0x5f5dfd=_0x5f5dfd||0x1f4;return function(_0x3d88de){logger['error'](_0x3d88de['stack']);if(_0x3d88de['name']){delete _0x3d88de[_0x41e2('0x23')];}_0x3c92da[_0x41e2('0x19')](_0x5f5dfd)[_0x41e2('0x24')](_0x3d88de);};}exports[_0x41e2('0x25')]=function(_0x1873a8,_0x5e4411){var _0x55ad75={},_0x38f64f={},_0xd582dd={'count':0x0,'rows':[]};var _0x47153f=_[_0x41e2('0x26')](db[_0x41e2('0x27')]['rawAttributes'],function(_0x40efbb){return{'name':_0x40efbb[_0x41e2('0x28')],'type':_0x40efbb['type']['key']};});_0x38f64f[_0x41e2('0x29')]=_[_0x41e2('0x26')](_0x47153f,'name');_0x38f64f['query']=_[_0x41e2('0x2a')](_0x1873a8[_0x41e2('0x2b')]);_0x38f64f[_0x41e2('0x2c')]=_['intersection'](_0x38f64f['model'],_0x38f64f[_0x41e2('0x2b')]);_0x55ad75['attributes']=_['intersection'](_0x38f64f[_0x41e2('0x29')],qs['fields'](_0x1873a8[_0x41e2('0x2b')][_0x41e2('0x2d')]));_0x55ad75[_0x41e2('0x2e')]=_0x55ad75['attributes']['length']?_0x55ad75[_0x41e2('0x2e')]:_0x38f64f[_0x41e2('0x29')];if(!_0x1873a8[_0x41e2('0x2b')][_0x41e2('0x2f')]('nolimit')){_0x55ad75[_0x41e2('0x30')]=qs[_0x41e2('0x30')](_0x1873a8[_0x41e2('0x2b')][_0x41e2('0x30')]);_0x55ad75[_0x41e2('0x31')]=qs[_0x41e2('0x31')](_0x1873a8[_0x41e2('0x2b')][_0x41e2('0x31')]);}_0x55ad75[_0x41e2('0x32')]=qs[_0x41e2('0x33')](_0x1873a8[_0x41e2('0x2b')]['sort']);_0x55ad75[_0x41e2('0x34')]=qs['filters'](_[_0x41e2('0x35')](_0x1873a8[_0x41e2('0x2b')],_0x38f64f['filters']),_0x47153f);if(_0x1873a8[_0x41e2('0x2b')][_0x41e2('0x36')]){_0x55ad75[_0x41e2('0x34')]=_['merge'](_0x55ad75['where'],{'$or':_[_0x41e2('0x26')](_0x47153f,function(_0x3e22e1){if(_0x3e22e1['type']!=='VIRTUAL'){var _0xdf9b6c={};_0xdf9b6c[_0x3e22e1[_0x41e2('0x23')]]={'$like':'%'+_0x1873a8[_0x41e2('0x2b')]['filter']+'%'};return _0xdf9b6c;}})});}_0x55ad75=_['merge']({},_0x55ad75,_0x1873a8[_0x41e2('0x37')]);var _0x54b6f0={'where':_0x55ad75[_0x41e2('0x34')]};return db[_0x41e2('0x27')]['count'](_0x54b6f0)[_0x41e2('0x20')](function(_0x3aa6d4){_0xd582dd[_0x41e2('0x1c')]=_0x3aa6d4;if(_0x1873a8[_0x41e2('0x2b')]['includeAll']){_0x55ad75[_0x41e2('0x38')]=[{'all':!![]}];}return db[_0x41e2('0x27')][_0x41e2('0x39')](_0x55ad75);})[_0x41e2('0x20')](function(_0x3b44cb){_0xd582dd[_0x41e2('0x3a')]=_0x3b44cb;return _0xd582dd;})[_0x41e2('0x20')](respondWithFilteredResult(_0x5e4411,_0x55ad75))['catch'](handleError(_0x5e4411,null));};exports[_0x41e2('0x3b')]=function(_0xbc48ae,_0x4159cc){var _0x38bd4c={'raw':![],'where':{'id':_0xbc48ae[_0x41e2('0x3c')]['id']}},_0x528fa0={};_0x528fa0[_0x41e2('0x29')]=_[_0x41e2('0x2a')](db[_0x41e2('0x27')]['rawAttributes']);_0x528fa0[_0x41e2('0x2b')]=_[_0x41e2('0x2a')](_0xbc48ae[_0x41e2('0x2b')]);_0x528fa0[_0x41e2('0x2c')]=_[_0x41e2('0x3d')](_0x528fa0[_0x41e2('0x29')],_0x528fa0[_0x41e2('0x2b')]);_0x38bd4c[_0x41e2('0x2e')]=_[_0x41e2('0x3d')](_0x528fa0['model'],qs[_0x41e2('0x2d')](_0xbc48ae['query'][_0x41e2('0x2d')]));_0x38bd4c[_0x41e2('0x2e')]=_0x38bd4c[_0x41e2('0x2e')][_0x41e2('0x3e')]?_0x38bd4c[_0x41e2('0x2e')]:_0x528fa0['model'];if(_0xbc48ae[_0x41e2('0x2b')][_0x41e2('0x3f')]){_0x38bd4c[_0x41e2('0x38')]=[{'all':!![]}];}_0x38bd4c=_[_0x41e2('0x40')]({},_0x38bd4c,_0xbc48ae[_0x41e2('0x37')]);return db[_0x41e2('0x27')]['find'](_0x38bd4c)['then'](handleEntityNotFound(_0x4159cc,null))['then'](respondWithResult(_0x4159cc,null))['catch'](handleError(_0x4159cc,null));};exports[_0x41e2('0x41')]=function(_0xc5b616,_0xfe363e){return db[_0x41e2('0x27')][_0x41e2('0x41')](_0xc5b616[_0x41e2('0x42')],{})[_0x41e2('0x20')](respondWithResult(_0xfe363e,0xc9))['catch'](handleError(_0xfe363e,null));};exports[_0x41e2('0x43')]=function(_0x3c53be,_0x161a42){if(_0x3c53be[_0x41e2('0x42')]['id']){delete _0x3c53be['body']['id'];}return db[_0x41e2('0x27')][_0x41e2('0x44')]({'where':{'id':_0x3c53be[_0x41e2('0x3c')]['id']}})[_0x41e2('0x20')](handleEntityNotFound(_0x161a42,null))[_0x41e2('0x20')](saveUpdates(_0x3c53be[_0x41e2('0x42')],null))[_0x41e2('0x20')](respondWithResult(_0x161a42,null))[_0x41e2('0x45')](handleError(_0x161a42,null));};exports['destroy']=function(_0x115032,_0x70e74d){return db[_0x41e2('0x27')][_0x41e2('0x44')]({'where':{'id':_0x115032['params']['id']}})[_0x41e2('0x20')](handleEntityNotFound(_0x70e74d,null))['then'](removeEntity(_0x70e74d,null))['catch'](handleError(_0x70e74d,null));};exports[_0x41e2('0x46')]=function(_0x1cae01,_0x3cc889,_0x52c6f4){var _0xd64bde={};var _0x52c8fa={};var _0x1149b5;var _0xa9a217;return db[_0x41e2('0x27')][_0x41e2('0x47')]({'where':{'id':_0x1cae01['params']['id']}})[_0x41e2('0x20')](handleEntityNotFound(_0x3cc889,null))[_0x41e2('0x20')](function(_0x5b4f99){if(_0x5b4f99){_0x1149b5=_0x5b4f99;_0x52c8fa[_0x41e2('0x29')]=_[_0x41e2('0x2a')](db['Dynamics365Field'][_0x41e2('0x48')]);_0x52c8fa[_0x41e2('0x2b')]=_[_0x41e2('0x2a')](_0x1cae01['query']);_0x52c8fa['filters']=_[_0x41e2('0x3d')](_0x52c8fa[_0x41e2('0x29')],_0x52c8fa[_0x41e2('0x2b')]);_0xd64bde[_0x41e2('0x2e')]=_['intersection'](_0x52c8fa[_0x41e2('0x29')],qs['fields'](_0x1cae01[_0x41e2('0x2b')][_0x41e2('0x2d')]));_0xd64bde['attributes']=_0xd64bde[_0x41e2('0x2e')][_0x41e2('0x3e')]?_0xd64bde[_0x41e2('0x2e')]:_0x52c8fa['model'];_0xd64bde['order']=qs[_0x41e2('0x33')](_0x1cae01[_0x41e2('0x2b')][_0x41e2('0x33')]);_0xd64bde[_0x41e2('0x34')]=qs['filters'](_['pick'](_0x1cae01[_0x41e2('0x2b')],_0x52c8fa[_0x41e2('0x2c')]));if(_0x1cae01[_0x41e2('0x2b')][_0x41e2('0x36')]){_0xd64bde[_0x41e2('0x34')]=_['merge'](_0xd64bde[_0x41e2('0x34')],{'$or':_[_0x41e2('0x26')](_0xd64bde[_0x41e2('0x2e')],function(_0x206179){var _0x45f1c5={};_0x45f1c5[_0x206179]={'$like':'%'+_0x1cae01[_0x41e2('0x2b')][_0x41e2('0x36')]+'%'};return _0x45f1c5;})});}_0xd64bde=_[_0x41e2('0x40')]({},_0xd64bde,_0x1cae01[_0x41e2('0x37')]);return _0x1149b5['getFields'](_0xd64bde);}})[_0x41e2('0x20')](function(_0x1149a5){if(_0x1149a5){_0xa9a217=_0x1149a5[_0x41e2('0x3e')];if(!_0x1cae01['query'][_0x41e2('0x2f')]('nolimit')){_0xd64bde[_0x41e2('0x30')]=qs[_0x41e2('0x30')](_0x1cae01[_0x41e2('0x2b')][_0x41e2('0x30')]);_0xd64bde['offset']=qs[_0x41e2('0x31')](_0x1cae01['query'][_0x41e2('0x31')]);}return _0x1149b5[_0x41e2('0x46')](_0xd64bde);}})['then'](function(_0x40c1bf){if(_0x40c1bf){return _0x40c1bf?{'count':_0xa9a217,'rows':_0x40c1bf}:null;}})[_0x41e2('0x20')](respondWithResult(_0x3cc889,null))[_0x41e2('0x45')](handleError(_0x3cc889,null));};exports[_0x41e2('0x49')]=function(_0x4d654c,_0x18d645,_0x46aee3){var _0x385394={};var _0x2313d2={};var _0x1808d0;var _0x4b4f2b;return db[_0x41e2('0x27')][_0x41e2('0x47')]({'where':{'id':_0x4d654c[_0x41e2('0x3c')]['id']}})[_0x41e2('0x20')](handleEntityNotFound(_0x18d645,null))[_0x41e2('0x20')](function(_0x44bf90){if(_0x44bf90){_0x1808d0=_0x44bf90;_0x2313d2[_0x41e2('0x29')]=_[_0x41e2('0x2a')](db[_0x41e2('0x4a')][_0x41e2('0x48')]);_0x2313d2[_0x41e2('0x2b')]=_['keys'](_0x4d654c[_0x41e2('0x2b')]);_0x2313d2['filters']=_[_0x41e2('0x3d')](_0x2313d2['model'],_0x2313d2[_0x41e2('0x2b')]);_0x385394[_0x41e2('0x2e')]=_[_0x41e2('0x3d')](_0x2313d2[_0x41e2('0x29')],qs[_0x41e2('0x2d')](_0x4d654c[_0x41e2('0x2b')][_0x41e2('0x2d')]));_0x385394['attributes']=_0x385394['attributes'][_0x41e2('0x3e')]?_0x385394[_0x41e2('0x2e')]:_0x2313d2[_0x41e2('0x29')];_0x385394[_0x41e2('0x32')]=qs[_0x41e2('0x33')](_0x4d654c[_0x41e2('0x2b')][_0x41e2('0x33')]);_0x385394[_0x41e2('0x34')]=qs[_0x41e2('0x2c')](_[_0x41e2('0x35')](_0x4d654c[_0x41e2('0x2b')],_0x2313d2[_0x41e2('0x2c')]));if(_0x4d654c['query'][_0x41e2('0x36')]){_0x385394[_0x41e2('0x34')]=_['merge'](_0x385394[_0x41e2('0x34')],{'$or':_[_0x41e2('0x26')](_0x385394[_0x41e2('0x2e')],function(_0x46e862){var _0x4865f7={};_0x4865f7[_0x46e862]={'$like':'%'+_0x4d654c[_0x41e2('0x2b')][_0x41e2('0x36')]+'%'};return _0x4865f7;})});}_0x385394=_[_0x41e2('0x40')]({},_0x385394,_0x4d654c[_0x41e2('0x37')]);return _0x1808d0[_0x41e2('0x49')](_0x385394);}})[_0x41e2('0x20')](function(_0x2f955b){if(_0x2f955b){_0x4b4f2b=_0x2f955b['length'];if(!_0x4d654c['query'][_0x41e2('0x2f')]('nolimit')){_0x385394['limit']=qs[_0x41e2('0x30')](_0x4d654c[_0x41e2('0x2b')]['limit']);_0x385394[_0x41e2('0x31')]=qs[_0x41e2('0x31')](_0x4d654c[_0x41e2('0x2b')]['offset']);}return _0x1808d0[_0x41e2('0x49')](_0x385394);}})[_0x41e2('0x20')](function(_0x4740a9){if(_0x4740a9){return _0x4740a9?{'count':_0x4b4f2b,'rows':_0x4740a9}:null;}})[_0x41e2('0x20')](respondWithResult(_0x18d645,null))[_0x41e2('0x45')](handleError(_0x18d645,null));};exports[_0x41e2('0x4b')]=function(_0x41059a,_0x5891a5,_0x20354d){var _0x2340a6={};var _0x337f45={};var _0x25f2b3;var _0x2cf178;return db[_0x41e2('0x27')][_0x41e2('0x47')]({'where':{'id':_0x41059a['params']['id']}})['then'](handleEntityNotFound(_0x5891a5,null))[_0x41e2('0x20')](function(_0x46a534){if(_0x46a534){_0x25f2b3=_0x46a534;_0x337f45['model']=_[_0x41e2('0x2a')](db[_0x41e2('0x4a')][_0x41e2('0x48')]);_0x337f45[_0x41e2('0x2b')]=_['keys'](_0x41059a['query']);_0x337f45[_0x41e2('0x2c')]=_['intersection'](_0x337f45['model'],_0x337f45[_0x41e2('0x2b')]);_0x2340a6['attributes']=_[_0x41e2('0x3d')](_0x337f45[_0x41e2('0x29')],qs[_0x41e2('0x2d')](_0x41059a[_0x41e2('0x2b')]['fields']));_0x2340a6[_0x41e2('0x2e')]=_0x2340a6[_0x41e2('0x2e')][_0x41e2('0x3e')]?_0x2340a6[_0x41e2('0x2e')]:_0x337f45[_0x41e2('0x29')];_0x2340a6[_0x41e2('0x32')]=qs[_0x41e2('0x33')](_0x41059a[_0x41e2('0x2b')][_0x41e2('0x33')]);_0x2340a6[_0x41e2('0x34')]=qs[_0x41e2('0x2c')](_['pick'](_0x41059a[_0x41e2('0x2b')],_0x337f45[_0x41e2('0x2c')]));if(_0x41059a[_0x41e2('0x2b')][_0x41e2('0x36')]){_0x2340a6[_0x41e2('0x34')]=_[_0x41e2('0x40')](_0x2340a6[_0x41e2('0x34')],{'$or':_[_0x41e2('0x26')](_0x2340a6['attributes'],function(_0x9ffc4d){var _0x48033e={};_0x48033e[_0x9ffc4d]={'$like':'%'+_0x41059a[_0x41e2('0x2b')][_0x41e2('0x36')]+'%'};return _0x48033e;})});}_0x2340a6=_[_0x41e2('0x40')]({},_0x2340a6,_0x41059a['options']);return _0x25f2b3[_0x41e2('0x4b')](_0x2340a6);}})[_0x41e2('0x20')](function(_0x4be246){if(_0x4be246){_0x2cf178=_0x4be246[_0x41e2('0x3e')];if(!_0x41059a[_0x41e2('0x2b')][_0x41e2('0x2f')]('nolimit')){_0x2340a6['limit']=qs[_0x41e2('0x30')](_0x41059a[_0x41e2('0x2b')][_0x41e2('0x30')]);_0x2340a6[_0x41e2('0x31')]=qs[_0x41e2('0x31')](_0x41059a['query'][_0x41e2('0x31')]);}return _0x25f2b3[_0x41e2('0x4b')](_0x2340a6);}})['then'](function(_0x426f87){if(_0x426f87){return _0x426f87?{'count':_0x2cf178,'rows':_0x426f87}:null;}})[_0x41e2('0x20')](respondWithResult(_0x5891a5,null))[_0x41e2('0x45')](handleError(_0x5891a5,null));};