8e048a29f4bb19c066d3727ed6c2c3b86df62ebe
[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 _0x8536=['VIRTUAL','includeAll','include','findAll','rows','catch','show','keys','options','find','create','update','params','body','getFields','findOne','pick','getSubjects','Dynamics365Field','getDescriptions','nolimit','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','status','end','json','limit','count','offset','set','Content-Range','apply','reject','save','then','destroy','error','stack','name','index','map','Dynamics365Configuration','rawAttributes','type','model','query','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','filters','filter','merge'];(function(_0xdf7b1c,_0x48f97f){var _0x2c0a8f=function(_0x1a811f){while(--_0x1a811f){_0xdf7b1c['push'](_0xdf7b1c['shift']());}};_0x2c0a8f(++_0x48f97f);}(_0x8536,0x66));var _0x6853=function(_0x4719eb,_0x30f8ac){_0x4719eb=_0x4719eb-0x0;var _0x19955b=_0x8536[_0x4719eb];return _0x19955b;};'use strict';var emlformat=require(_0x6853('0x0'));var rimraf=require(_0x6853('0x1'));var zipdir=require(_0x6853('0x2'));var jsonpatch=require(_0x6853('0x3'));var rp=require(_0x6853('0x4'));var moment=require(_0x6853('0x5'));var BPromise=require(_0x6853('0x6'));var Mustache=require(_0x6853('0x7'));var util=require('util');var path=require('path');var sox=require(_0x6853('0x8'));var csv=require(_0x6853('0x9'));var ejs=require(_0x6853('0xa'));var fs=require('fs');var fs_extra=require(_0x6853('0xb'));var _=require(_0x6853('0xc'));var squel=require(_0x6853('0xd'));var crypto=require(_0x6853('0xe'));var jsforce=require(_0x6853('0xf'));var deskjs=require(_0x6853('0x10'));var toCsv=require(_0x6853('0x9'));var querystring=require(_0x6853('0x11'));var Papa=require(_0x6853('0x12'));var Redis=require('ioredis');var authService=require(_0x6853('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x6853('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x6853('0x15'))(_0x6853('0x16'));var utils=require(_0x6853('0x17'));var config=require(_0x6853('0x18'));var licenseUtil=require(_0x6853('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1bc211,_0x440dea){_0x440dea=_0x440dea||0xcc;return function(_0x1e492e){if(_0x1e492e){return _0x1bc211['sendStatus'](_0x440dea);}return _0x1bc211[_0x6853('0x1a')](_0x440dea)[_0x6853('0x1b')]();};}function respondWithResult(_0x263061,_0x3483c1){_0x3483c1=_0x3483c1||0xc8;return function(_0x1b692b){if(_0x1b692b){return _0x263061[_0x6853('0x1a')](_0x3483c1)[_0x6853('0x1c')](_0x1b692b);}};}function respondWithFilteredResult(_0x4a4de4,_0x1df884){return function(_0x4047b2){if(_0x4047b2){var _0x250e14=typeof _0x1df884['offset']==='undefined'&&typeof _0x1df884[_0x6853('0x1d')]==='undefined';var _0x3b0383=_0x4047b2[_0x6853('0x1e')];var _0x3c5b19=_0x250e14?0x0:_0x1df884[_0x6853('0x1f')];var _0x13fb00=_0x250e14?_0x4047b2[_0x6853('0x1e')]:_0x1df884['offset']+_0x1df884[_0x6853('0x1d')];var _0x2affb0;if(_0x13fb00>=_0x3b0383){_0x13fb00=_0x3b0383;_0x2affb0=0xc8;}else{_0x2affb0=0xce;}_0x4a4de4[_0x6853('0x1a')](_0x2affb0);return _0x4a4de4[_0x6853('0x20')](_0x6853('0x21'),_0x3c5b19+'-'+_0x13fb00+'/'+_0x3b0383)[_0x6853('0x1c')](_0x4047b2);}return null;};}function patchUpdates(_0x554250){return function(_0x1a666d){try{jsonpatch[_0x6853('0x22')](_0x1a666d,_0x554250,!![]);}catch(_0x519448){return BPromise[_0x6853('0x23')](_0x519448);}return _0x1a666d[_0x6853('0x24')]();};}function saveUpdates(_0x1dca24,_0x83d6bc){return function(_0x1817ce){if(_0x1817ce){return _0x1817ce['update'](_0x1dca24)[_0x6853('0x25')](function(_0x9da30){return _0x9da30;});}return null;};}function removeEntity(_0xe28c99,_0x1e7f6b){return function(_0xb6afe2){if(_0xb6afe2){return _0xb6afe2[_0x6853('0x26')]()[_0x6853('0x25')](function(){_0xe28c99[_0x6853('0x1a')](0xcc)[_0x6853('0x1b')]();});}};}function handleEntityNotFound(_0x45427a,_0x2795e1){return function(_0x1ce233){if(!_0x1ce233){_0x45427a['sendStatus'](0x194);}return _0x1ce233;};}function handleError(_0x2efb51,_0x73a6ec){_0x73a6ec=_0x73a6ec||0x1f4;return function(_0x482e13){logger[_0x6853('0x27')](_0x482e13[_0x6853('0x28')]);if(_0x482e13[_0x6853('0x29')]){delete _0x482e13[_0x6853('0x29')];}_0x2efb51['status'](_0x73a6ec)['send'](_0x482e13);};}exports[_0x6853('0x2a')]=function(_0x10bcfa,_0x990fb4){var _0x2ba250={},_0xae16f7={},_0x39813b={'count':0x0,'rows':[]};var _0x5f037b=_[_0x6853('0x2b')](db[_0x6853('0x2c')][_0x6853('0x2d')],function(_0x139d75){return{'name':_0x139d75['fieldName'],'type':_0x139d75[_0x6853('0x2e')]['key']};});_0xae16f7[_0x6853('0x2f')]=_['map'](_0x5f037b,_0x6853('0x29'));_0xae16f7[_0x6853('0x30')]=_['keys'](_0x10bcfa['query']);_0xae16f7['filters']=_[_0x6853('0x31')](_0xae16f7[_0x6853('0x2f')],_0xae16f7[_0x6853('0x30')]);_0x2ba250['attributes']=_[_0x6853('0x31')](_0xae16f7[_0x6853('0x2f')],qs[_0x6853('0x32')](_0x10bcfa[_0x6853('0x30')][_0x6853('0x32')]));_0x2ba250[_0x6853('0x33')]=_0x2ba250[_0x6853('0x33')][_0x6853('0x34')]?_0x2ba250[_0x6853('0x33')]:_0xae16f7['model'];if(!_0x10bcfa[_0x6853('0x30')][_0x6853('0x35')]('nolimit')){_0x2ba250[_0x6853('0x1d')]=qs['limit'](_0x10bcfa[_0x6853('0x30')][_0x6853('0x1d')]);_0x2ba250[_0x6853('0x1f')]=qs[_0x6853('0x1f')](_0x10bcfa[_0x6853('0x30')][_0x6853('0x1f')]);}_0x2ba250[_0x6853('0x36')]=qs['sort'](_0x10bcfa[_0x6853('0x30')][_0x6853('0x37')]);_0x2ba250[_0x6853('0x38')]=qs[_0x6853('0x39')](_['pick'](_0x10bcfa[_0x6853('0x30')],_0xae16f7[_0x6853('0x39')]),_0x5f037b);if(_0x10bcfa['query'][_0x6853('0x3a')]){_0x2ba250[_0x6853('0x38')]=_[_0x6853('0x3b')](_0x2ba250[_0x6853('0x38')],{'$or':_[_0x6853('0x2b')](_0x5f037b,function(_0x43368d){if(_0x43368d[_0x6853('0x2e')]!==_0x6853('0x3c')){var _0x37e23c={};_0x37e23c[_0x43368d['name']]={'$like':'%'+_0x10bcfa[_0x6853('0x30')]['filter']+'%'};return _0x37e23c;}})});}_0x2ba250=_[_0x6853('0x3b')]({},_0x2ba250,_0x10bcfa['options']);var _0x8cda0a={'where':_0x2ba250[_0x6853('0x38')]};return db[_0x6853('0x2c')][_0x6853('0x1e')](_0x8cda0a)[_0x6853('0x25')](function(_0x3efd3e){_0x39813b['count']=_0x3efd3e;if(_0x10bcfa['query'][_0x6853('0x3d')]){_0x2ba250[_0x6853('0x3e')]=[{'all':!![]}];}return db[_0x6853('0x2c')][_0x6853('0x3f')](_0x2ba250);})[_0x6853('0x25')](function(_0x1dc658){_0x39813b[_0x6853('0x40')]=_0x1dc658;return _0x39813b;})['then'](respondWithFilteredResult(_0x990fb4,_0x2ba250))[_0x6853('0x41')](handleError(_0x990fb4,null));};exports[_0x6853('0x42')]=function(_0x2ac797,_0xa3c7){var _0x396e35={'raw':![],'where':{'id':_0x2ac797['params']['id']}},_0x48f29b={};_0x48f29b['model']=_[_0x6853('0x43')](db[_0x6853('0x2c')][_0x6853('0x2d')]);_0x48f29b['query']=_[_0x6853('0x43')](_0x2ac797['query']);_0x48f29b[_0x6853('0x39')]=_[_0x6853('0x31')](_0x48f29b[_0x6853('0x2f')],_0x48f29b[_0x6853('0x30')]);_0x396e35[_0x6853('0x33')]=_[_0x6853('0x31')](_0x48f29b['model'],qs[_0x6853('0x32')](_0x2ac797[_0x6853('0x30')][_0x6853('0x32')]));_0x396e35[_0x6853('0x33')]=_0x396e35['attributes']['length']?_0x396e35[_0x6853('0x33')]:_0x48f29b['model'];if(_0x2ac797[_0x6853('0x30')][_0x6853('0x3d')]){_0x396e35[_0x6853('0x3e')]=[{'all':!![]}];}_0x396e35=_[_0x6853('0x3b')]({},_0x396e35,_0x2ac797[_0x6853('0x44')]);return db['Dynamics365Configuration'][_0x6853('0x45')](_0x396e35)[_0x6853('0x25')](handleEntityNotFound(_0xa3c7,null))[_0x6853('0x25')](respondWithResult(_0xa3c7,null))[_0x6853('0x41')](handleError(_0xa3c7,null));};exports[_0x6853('0x46')]=function(_0x244980,_0x5d5288){return db[_0x6853('0x2c')]['create'](_0x244980['body'],{})['then'](respondWithResult(_0x5d5288,0xc9))[_0x6853('0x41')](handleError(_0x5d5288,null));};exports[_0x6853('0x47')]=function(_0x2e1301,_0x117d79){if(_0x2e1301['body']['id']){delete _0x2e1301['body']['id'];}return db[_0x6853('0x2c')][_0x6853('0x45')]({'where':{'id':_0x2e1301[_0x6853('0x48')]['id']}})[_0x6853('0x25')](handleEntityNotFound(_0x117d79,null))[_0x6853('0x25')](saveUpdates(_0x2e1301[_0x6853('0x49')],null))[_0x6853('0x25')](respondWithResult(_0x117d79,null))[_0x6853('0x41')](handleError(_0x117d79,null));};exports[_0x6853('0x26')]=function(_0x2d8aef,_0x1191a3){return db[_0x6853('0x2c')][_0x6853('0x45')]({'where':{'id':_0x2d8aef[_0x6853('0x48')]['id']}})['then'](handleEntityNotFound(_0x1191a3,null))[_0x6853('0x25')](removeEntity(_0x1191a3,null))[_0x6853('0x41')](handleError(_0x1191a3,null));};exports[_0x6853('0x4a')]=function(_0x1258cc,_0x33e6ab,_0x5ae81d){var _0x42e36c={};var _0x43f7e1={};var _0x4da22d;var _0x5042d4;return db[_0x6853('0x2c')][_0x6853('0x4b')]({'where':{'id':_0x1258cc[_0x6853('0x48')]['id']}})[_0x6853('0x25')](handleEntityNotFound(_0x33e6ab,null))[_0x6853('0x25')](function(_0x579f27){if(_0x579f27){_0x4da22d=_0x579f27;_0x43f7e1[_0x6853('0x2f')]=_[_0x6853('0x43')](db['Dynamics365Field'][_0x6853('0x2d')]);_0x43f7e1['query']=_['keys'](_0x1258cc[_0x6853('0x30')]);_0x43f7e1[_0x6853('0x39')]=_[_0x6853('0x31')](_0x43f7e1[_0x6853('0x2f')],_0x43f7e1[_0x6853('0x30')]);_0x42e36c[_0x6853('0x33')]=_[_0x6853('0x31')](_0x43f7e1[_0x6853('0x2f')],qs['fields'](_0x1258cc[_0x6853('0x30')]['fields']));_0x42e36c[_0x6853('0x33')]=_0x42e36c[_0x6853('0x33')][_0x6853('0x34')]?_0x42e36c[_0x6853('0x33')]:_0x43f7e1['model'];_0x42e36c[_0x6853('0x36')]=qs['sort'](_0x1258cc[_0x6853('0x30')]['sort']);_0x42e36c['where']=qs[_0x6853('0x39')](_[_0x6853('0x4c')](_0x1258cc[_0x6853('0x30')],_0x43f7e1[_0x6853('0x39')]));if(_0x1258cc['query'][_0x6853('0x3a')]){_0x42e36c['where']=_[_0x6853('0x3b')](_0x42e36c[_0x6853('0x38')],{'$or':_['map'](_0x42e36c[_0x6853('0x33')],function(_0x3667d6){var _0x5dc7fb={};_0x5dc7fb[_0x3667d6]={'$like':'%'+_0x1258cc[_0x6853('0x30')][_0x6853('0x3a')]+'%'};return _0x5dc7fb;})});}_0x42e36c=_[_0x6853('0x3b')]({},_0x42e36c,_0x1258cc[_0x6853('0x44')]);return _0x4da22d[_0x6853('0x4a')](_0x42e36c);}})[_0x6853('0x25')](function(_0x1b82ee){if(_0x1b82ee){_0x5042d4=_0x1b82ee[_0x6853('0x34')];if(!_0x1258cc[_0x6853('0x30')][_0x6853('0x35')]('nolimit')){_0x42e36c[_0x6853('0x1d')]=qs['limit'](_0x1258cc[_0x6853('0x30')]['limit']);_0x42e36c['offset']=qs[_0x6853('0x1f')](_0x1258cc[_0x6853('0x30')]['offset']);}return _0x4da22d[_0x6853('0x4a')](_0x42e36c);}})[_0x6853('0x25')](function(_0x5775e6){if(_0x5775e6){return _0x5775e6?{'count':_0x5042d4,'rows':_0x5775e6}:null;}})[_0x6853('0x25')](respondWithResult(_0x33e6ab,null))['catch'](handleError(_0x33e6ab,null));};exports[_0x6853('0x4d')]=function(_0x54e04d,_0x63bfed,_0x48b692){var _0x33953d={};var _0x105f3a={};var _0x97529b;var _0x6a9ac;return db[_0x6853('0x2c')][_0x6853('0x4b')]({'where':{'id':_0x54e04d['params']['id']}})[_0x6853('0x25')](handleEntityNotFound(_0x63bfed,null))[_0x6853('0x25')](function(_0x4ad4e1){if(_0x4ad4e1){_0x97529b=_0x4ad4e1;_0x105f3a[_0x6853('0x2f')]=_[_0x6853('0x43')](db[_0x6853('0x4e')][_0x6853('0x2d')]);_0x105f3a[_0x6853('0x30')]=_[_0x6853('0x43')](_0x54e04d[_0x6853('0x30')]);_0x105f3a['filters']=_['intersection'](_0x105f3a[_0x6853('0x2f')],_0x105f3a[_0x6853('0x30')]);_0x33953d[_0x6853('0x33')]=_['intersection'](_0x105f3a[_0x6853('0x2f')],qs[_0x6853('0x32')](_0x54e04d[_0x6853('0x30')]['fields']));_0x33953d[_0x6853('0x33')]=_0x33953d[_0x6853('0x33')][_0x6853('0x34')]?_0x33953d['attributes']:_0x105f3a[_0x6853('0x2f')];_0x33953d[_0x6853('0x36')]=qs[_0x6853('0x37')](_0x54e04d[_0x6853('0x30')][_0x6853('0x37')]);_0x33953d[_0x6853('0x38')]=qs[_0x6853('0x39')](_[_0x6853('0x4c')](_0x54e04d[_0x6853('0x30')],_0x105f3a[_0x6853('0x39')]));if(_0x54e04d[_0x6853('0x30')][_0x6853('0x3a')]){_0x33953d[_0x6853('0x38')]=_['merge'](_0x33953d[_0x6853('0x38')],{'$or':_[_0x6853('0x2b')](_0x33953d[_0x6853('0x33')],function(_0x115b25){var _0x1c1256={};_0x1c1256[_0x115b25]={'$like':'%'+_0x54e04d['query'][_0x6853('0x3a')]+'%'};return _0x1c1256;})});}_0x33953d=_[_0x6853('0x3b')]({},_0x33953d,_0x54e04d['options']);return _0x97529b[_0x6853('0x4d')](_0x33953d);}})[_0x6853('0x25')](function(_0x146bb4){if(_0x146bb4){_0x6a9ac=_0x146bb4[_0x6853('0x34')];if(!_0x54e04d[_0x6853('0x30')][_0x6853('0x35')]('nolimit')){_0x33953d[_0x6853('0x1d')]=qs[_0x6853('0x1d')](_0x54e04d[_0x6853('0x30')][_0x6853('0x1d')]);_0x33953d[_0x6853('0x1f')]=qs[_0x6853('0x1f')](_0x54e04d[_0x6853('0x30')]['offset']);}return _0x97529b[_0x6853('0x4d')](_0x33953d);}})[_0x6853('0x25')](function(_0x59cde8){if(_0x59cde8){return _0x59cde8?{'count':_0x6a9ac,'rows':_0x59cde8}:null;}})['then'](respondWithResult(_0x63bfed,null))['catch'](handleError(_0x63bfed,null));};exports[_0x6853('0x4f')]=function(_0x1f269a,_0x18bf4c,_0x4e6905){var _0x21cdb2={};var _0x38fbd6={};var _0x3908af;var _0x1a7927;return db['Dynamics365Configuration'][_0x6853('0x4b')]({'where':{'id':_0x1f269a['params']['id']}})[_0x6853('0x25')](handleEntityNotFound(_0x18bf4c,null))[_0x6853('0x25')](function(_0x30cc6f){if(_0x30cc6f){_0x3908af=_0x30cc6f;_0x38fbd6['model']=_[_0x6853('0x43')](db[_0x6853('0x4e')][_0x6853('0x2d')]);_0x38fbd6[_0x6853('0x30')]=_[_0x6853('0x43')](_0x1f269a[_0x6853('0x30')]);_0x38fbd6[_0x6853('0x39')]=_[_0x6853('0x31')](_0x38fbd6[_0x6853('0x2f')],_0x38fbd6['query']);_0x21cdb2[_0x6853('0x33')]=_[_0x6853('0x31')](_0x38fbd6['model'],qs['fields'](_0x1f269a['query'][_0x6853('0x32')]));_0x21cdb2[_0x6853('0x33')]=_0x21cdb2[_0x6853('0x33')][_0x6853('0x34')]?_0x21cdb2[_0x6853('0x33')]:_0x38fbd6[_0x6853('0x2f')];_0x21cdb2[_0x6853('0x36')]=qs[_0x6853('0x37')](_0x1f269a['query'][_0x6853('0x37')]);_0x21cdb2[_0x6853('0x38')]=qs[_0x6853('0x39')](_[_0x6853('0x4c')](_0x1f269a[_0x6853('0x30')],_0x38fbd6[_0x6853('0x39')]));if(_0x1f269a['query'][_0x6853('0x3a')]){_0x21cdb2[_0x6853('0x38')]=_[_0x6853('0x3b')](_0x21cdb2[_0x6853('0x38')],{'$or':_[_0x6853('0x2b')](_0x21cdb2[_0x6853('0x33')],function(_0x17170e){var _0x54f92d={};_0x54f92d[_0x17170e]={'$like':'%'+_0x1f269a[_0x6853('0x30')][_0x6853('0x3a')]+'%'};return _0x54f92d;})});}_0x21cdb2=_[_0x6853('0x3b')]({},_0x21cdb2,_0x1f269a[_0x6853('0x44')]);return _0x3908af[_0x6853('0x4f')](_0x21cdb2);}})[_0x6853('0x25')](function(_0x292fd3){if(_0x292fd3){_0x1a7927=_0x292fd3[_0x6853('0x34')];if(!_0x1f269a[_0x6853('0x30')][_0x6853('0x35')](_0x6853('0x50'))){_0x21cdb2[_0x6853('0x1d')]=qs['limit'](_0x1f269a[_0x6853('0x30')][_0x6853('0x1d')]);_0x21cdb2[_0x6853('0x1f')]=qs[_0x6853('0x1f')](_0x1f269a[_0x6853('0x30')]['offset']);}return _0x3908af[_0x6853('0x4f')](_0x21cdb2);}})[_0x6853('0x25')](function(_0x27a1df){if(_0x27a1df){return _0x27a1df?{'count':_0x1a7927,'rows':_0x27a1df}:null;}})[_0x6853('0x25')](respondWithResult(_0x18bf4c,null))[_0x6853('0x41')](handleError(_0x18bf4c,null));};