4198c6f2a94b66d6807466d849c231dd100f06e5
[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 _0x96a7=['body','find','getFields','Dynamics365Field','hasOwnProperty','nolimit','catch','getSubjects','findOne','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','undefined','limit','count','Content-Range','reject','update','then','destroy','stack','name','send','index','map','Dynamics365Configuration','fieldName','type','key','query','keys','filters','intersection','attributes','length','model','offset','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','params','rawAttributes','fields','create'];(function(_0x491ace,_0x13ed1d){var _0x4d6014=function(_0x2cc8b3){while(--_0x2cc8b3){_0x491ace['push'](_0x491ace['shift']());}};_0x4d6014(++_0x13ed1d);}(_0x96a7,0x195));var _0x796a=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x96a7[_0x20a584];return _0x4b41a8;};'use strict';var emlformat=require(_0x796a('0x0'));var rimraf=require(_0x796a('0x1'));var zipdir=require(_0x796a('0x2'));var jsonpatch=require(_0x796a('0x3'));var rp=require(_0x796a('0x4'));var moment=require(_0x796a('0x5'));var BPromise=require(_0x796a('0x6'));var Mustache=require(_0x796a('0x7'));var util=require('util');var path=require(_0x796a('0x8'));var sox=require(_0x796a('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x796a('0xa'));var squel=require(_0x796a('0xb'));var crypto=require(_0x796a('0xc'));var jsforce=require(_0x796a('0xd'));var deskjs=require(_0x796a('0xe'));var toCsv=require(_0x796a('0xf'));var querystring=require(_0x796a('0x10'));var Papa=require(_0x796a('0x11'));var Redis=require(_0x796a('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x796a('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x796a('0x14'))(_0x796a('0x15'));var utils=require(_0x796a('0x16'));var config=require(_0x796a('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x796a('0x18'))['db'];function respondWithStatusCode(_0x45fbb2,_0xdfe37f){_0xdfe37f=_0xdfe37f||0xcc;return function(_0x469953){if(_0x469953){return _0x45fbb2[_0x796a('0x19')](_0xdfe37f);}return _0x45fbb2['status'](_0xdfe37f)[_0x796a('0x1a')]();};}function respondWithResult(_0x393351,_0x3ada34){_0x3ada34=_0x3ada34||0xc8;return function(_0x59b6f9){if(_0x59b6f9){return _0x393351[_0x796a('0x1b')](_0x3ada34)[_0x796a('0x1c')](_0x59b6f9);}};}function respondWithFilteredResult(_0x42bd60,_0x32bc17){return function(_0x172e9f){if(_0x172e9f){var _0x3873b6=typeof _0x32bc17['offset']===_0x796a('0x1d')&&typeof _0x32bc17[_0x796a('0x1e')]===_0x796a('0x1d');var _0x107064=_0x172e9f[_0x796a('0x1f')];var _0x4f04eb=_0x3873b6?0x0:_0x32bc17['offset'];var _0x4b0c20=_0x3873b6?_0x172e9f[_0x796a('0x1f')]:_0x32bc17['offset']+_0x32bc17[_0x796a('0x1e')];var _0x595ac9;if(_0x4b0c20>=_0x107064){_0x4b0c20=_0x107064;_0x595ac9=0xc8;}else{_0x595ac9=0xce;}_0x42bd60[_0x796a('0x1b')](_0x595ac9);return _0x42bd60['set'](_0x796a('0x20'),_0x4f04eb+'-'+_0x4b0c20+'/'+_0x107064)[_0x796a('0x1c')](_0x172e9f);}return null;};}function patchUpdates(_0x1aa705){return function(_0x34e112){try{jsonpatch['apply'](_0x34e112,_0x1aa705,!![]);}catch(_0xca22aa){return BPromise[_0x796a('0x21')](_0xca22aa);}return _0x34e112['save']();};}function saveUpdates(_0x1c71c1,_0x57a6c8){return function(_0x1cc4a7){if(_0x1cc4a7){return _0x1cc4a7[_0x796a('0x22')](_0x1c71c1)[_0x796a('0x23')](function(_0x43d4ec){return _0x43d4ec;});}return null;};}function removeEntity(_0x64a773,_0x1367be){return function(_0x4cd954){if(_0x4cd954){return _0x4cd954[_0x796a('0x24')]()['then'](function(){_0x64a773[_0x796a('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x559ff7,_0x377046){return function(_0x2c0a20){if(!_0x2c0a20){_0x559ff7[_0x796a('0x19')](0x194);}return _0x2c0a20;};}function handleError(_0x3d9fe4,_0x211b7f){_0x211b7f=_0x211b7f||0x1f4;return function(_0x1db025){logger['error'](_0x1db025[_0x796a('0x25')]);if(_0x1db025[_0x796a('0x26')]){delete _0x1db025['name'];}_0x3d9fe4[_0x796a('0x1b')](_0x211b7f)[_0x796a('0x27')](_0x1db025);};}exports[_0x796a('0x28')]=function(_0x5b64b1,_0x47f277){var _0x565089={},_0x35d000={},_0x412fc3={'count':0x0,'rows':[]};var _0x6c887f=_[_0x796a('0x29')](db[_0x796a('0x2a')]['rawAttributes'],function(_0x2ff26d){return{'name':_0x2ff26d[_0x796a('0x2b')],'type':_0x2ff26d[_0x796a('0x2c')][_0x796a('0x2d')]};});_0x35d000['model']=_[_0x796a('0x29')](_0x6c887f,_0x796a('0x26'));_0x35d000[_0x796a('0x2e')]=_[_0x796a('0x2f')](_0x5b64b1[_0x796a('0x2e')]);_0x35d000[_0x796a('0x30')]=_[_0x796a('0x31')](_0x35d000['model'],_0x35d000[_0x796a('0x2e')]);_0x565089[_0x796a('0x32')]=_[_0x796a('0x31')](_0x35d000['model'],qs['fields'](_0x5b64b1[_0x796a('0x2e')]['fields']));_0x565089['attributes']=_0x565089[_0x796a('0x32')][_0x796a('0x33')]?_0x565089[_0x796a('0x32')]:_0x35d000[_0x796a('0x34')];if(!_0x5b64b1[_0x796a('0x2e')]['hasOwnProperty']('nolimit')){_0x565089['limit']=qs[_0x796a('0x1e')](_0x5b64b1['query'][_0x796a('0x1e')]);_0x565089[_0x796a('0x35')]=qs[_0x796a('0x35')](_0x5b64b1[_0x796a('0x2e')][_0x796a('0x35')]);}_0x565089[_0x796a('0x36')]=qs['sort'](_0x5b64b1[_0x796a('0x2e')][_0x796a('0x37')]);_0x565089[_0x796a('0x38')]=qs[_0x796a('0x30')](_[_0x796a('0x39')](_0x5b64b1[_0x796a('0x2e')],_0x35d000[_0x796a('0x30')]),_0x6c887f);if(_0x5b64b1[_0x796a('0x2e')][_0x796a('0x3a')]){_0x565089['where']=_[_0x796a('0x3b')](_0x565089[_0x796a('0x38')],{'$or':_['map'](_0x6c887f,function(_0x3a16c1){if(_0x3a16c1[_0x796a('0x2c')]!=='VIRTUAL'){var _0x291273={};_0x291273[_0x3a16c1['name']]={'$like':'%'+_0x5b64b1[_0x796a('0x2e')]['filter']+'%'};return _0x291273;}})});}_0x565089=_[_0x796a('0x3b')]({},_0x565089,_0x5b64b1[_0x796a('0x3c')]);var _0x7ed6ec={'where':_0x565089['where']};return db['Dynamics365Configuration'][_0x796a('0x1f')](_0x7ed6ec)['then'](function(_0xa24a7c){_0x412fc3[_0x796a('0x1f')]=_0xa24a7c;if(_0x5b64b1['query'][_0x796a('0x3d')]){_0x565089[_0x796a('0x3e')]=[{'all':!![]}];}return db[_0x796a('0x2a')][_0x796a('0x3f')](_0x565089);})[_0x796a('0x23')](function(_0x3f10bb){_0x412fc3[_0x796a('0x40')]=_0x3f10bb;return _0x412fc3;})['then'](respondWithFilteredResult(_0x47f277,_0x565089))['catch'](handleError(_0x47f277,null));};exports['show']=function(_0x2adfdc,_0x22fe51){var _0x105fa6={'raw':![],'where':{'id':_0x2adfdc[_0x796a('0x41')]['id']}},_0x5c8f2e={};_0x5c8f2e['model']=_[_0x796a('0x2f')](db[_0x796a('0x2a')][_0x796a('0x42')]);_0x5c8f2e[_0x796a('0x2e')]=_['keys'](_0x2adfdc[_0x796a('0x2e')]);_0x5c8f2e['filters']=_[_0x796a('0x31')](_0x5c8f2e[_0x796a('0x34')],_0x5c8f2e[_0x796a('0x2e')]);_0x105fa6[_0x796a('0x32')]=_[_0x796a('0x31')](_0x5c8f2e[_0x796a('0x34')],qs[_0x796a('0x43')](_0x2adfdc[_0x796a('0x2e')][_0x796a('0x43')]));_0x105fa6[_0x796a('0x32')]=_0x105fa6[_0x796a('0x32')]['length']?_0x105fa6[_0x796a('0x32')]:_0x5c8f2e[_0x796a('0x34')];if(_0x2adfdc[_0x796a('0x2e')]['includeAll']){_0x105fa6['include']=[{'all':!![]}];}_0x105fa6=_['merge']({},_0x105fa6,_0x2adfdc['options']);return db[_0x796a('0x2a')]['find'](_0x105fa6)[_0x796a('0x23')](handleEntityNotFound(_0x22fe51,null))[_0x796a('0x23')](respondWithResult(_0x22fe51,null))['catch'](handleError(_0x22fe51,null));};exports[_0x796a('0x44')]=function(_0x1556d6,_0x3be654){return db[_0x796a('0x2a')]['create'](_0x1556d6['body'],{})[_0x796a('0x23')](respondWithResult(_0x3be654,0xc9))['catch'](handleError(_0x3be654,null));};exports[_0x796a('0x22')]=function(_0x237d7d,_0x453081){if(_0x237d7d['body']['id']){delete _0x237d7d[_0x796a('0x45')]['id'];}return db[_0x796a('0x2a')][_0x796a('0x46')]({'where':{'id':_0x237d7d['params']['id']}})[_0x796a('0x23')](handleEntityNotFound(_0x453081,null))['then'](saveUpdates(_0x237d7d['body'],null))[_0x796a('0x23')](respondWithResult(_0x453081,null))['catch'](handleError(_0x453081,null));};exports[_0x796a('0x24')]=function(_0x2c398f,_0x285e9e){return db['Dynamics365Configuration']['find']({'where':{'id':_0x2c398f[_0x796a('0x41')]['id']}})[_0x796a('0x23')](handleEntityNotFound(_0x285e9e,null))['then'](removeEntity(_0x285e9e,null))['catch'](handleError(_0x285e9e,null));};exports[_0x796a('0x47')]=function(_0x2c7d69,_0x1a9df0,_0x400dd9){var _0x275fbd={};var _0x4725f1={};var _0x51a107;var _0x4dbc8c;return db[_0x796a('0x2a')]['findOne']({'where':{'id':_0x2c7d69['params']['id']}})[_0x796a('0x23')](handleEntityNotFound(_0x1a9df0,null))[_0x796a('0x23')](function(_0x130c19){if(_0x130c19){_0x51a107=_0x130c19;_0x4725f1[_0x796a('0x34')]=_[_0x796a('0x2f')](db[_0x796a('0x48')][_0x796a('0x42')]);_0x4725f1[_0x796a('0x2e')]=_[_0x796a('0x2f')](_0x2c7d69['query']);_0x4725f1[_0x796a('0x30')]=_[_0x796a('0x31')](_0x4725f1[_0x796a('0x34')],_0x4725f1[_0x796a('0x2e')]);_0x275fbd[_0x796a('0x32')]=_[_0x796a('0x31')](_0x4725f1[_0x796a('0x34')],qs[_0x796a('0x43')](_0x2c7d69[_0x796a('0x2e')]['fields']));_0x275fbd[_0x796a('0x32')]=_0x275fbd[_0x796a('0x32')][_0x796a('0x33')]?_0x275fbd[_0x796a('0x32')]:_0x4725f1[_0x796a('0x34')];_0x275fbd[_0x796a('0x36')]=qs['sort'](_0x2c7d69[_0x796a('0x2e')][_0x796a('0x37')]);_0x275fbd[_0x796a('0x38')]=qs[_0x796a('0x30')](_['pick'](_0x2c7d69[_0x796a('0x2e')],_0x4725f1[_0x796a('0x30')]));if(_0x2c7d69[_0x796a('0x2e')][_0x796a('0x3a')]){_0x275fbd[_0x796a('0x38')]=_[_0x796a('0x3b')](_0x275fbd[_0x796a('0x38')],{'$or':_[_0x796a('0x29')](_0x275fbd[_0x796a('0x32')],function(_0x5d6005){var _0x3c7666={};_0x3c7666[_0x5d6005]={'$like':'%'+_0x2c7d69[_0x796a('0x2e')]['filter']+'%'};return _0x3c7666;})});}_0x275fbd=_[_0x796a('0x3b')]({},_0x275fbd,_0x2c7d69[_0x796a('0x3c')]);return _0x51a107['getFields'](_0x275fbd);}})['then'](function(_0x11bcfc){if(_0x11bcfc){_0x4dbc8c=_0x11bcfc['length'];if(!_0x2c7d69[_0x796a('0x2e')][_0x796a('0x49')](_0x796a('0x4a'))){_0x275fbd['limit']=qs['limit'](_0x2c7d69[_0x796a('0x2e')]['limit']);_0x275fbd[_0x796a('0x35')]=qs[_0x796a('0x35')](_0x2c7d69[_0x796a('0x2e')][_0x796a('0x35')]);}return _0x51a107[_0x796a('0x47')](_0x275fbd);}})['then'](function(_0x5e1cea){if(_0x5e1cea){return _0x5e1cea?{'count':_0x4dbc8c,'rows':_0x5e1cea}:null;}})[_0x796a('0x23')](respondWithResult(_0x1a9df0,null))[_0x796a('0x4b')](handleError(_0x1a9df0,null));};exports[_0x796a('0x4c')]=function(_0x16cca9,_0x5f1cf8,_0x275e13){var _0x483382={};var _0x28f2f6={};var _0x463c1;var _0x1df750;return db[_0x796a('0x2a')][_0x796a('0x4d')]({'where':{'id':_0x16cca9[_0x796a('0x41')]['id']}})[_0x796a('0x23')](handleEntityNotFound(_0x5f1cf8,null))[_0x796a('0x23')](function(_0x4bea6a){if(_0x4bea6a){_0x463c1=_0x4bea6a;_0x28f2f6[_0x796a('0x34')]=_['keys'](db['Dynamics365Field'][_0x796a('0x42')]);_0x28f2f6['query']=_[_0x796a('0x2f')](_0x16cca9['query']);_0x28f2f6[_0x796a('0x30')]=_[_0x796a('0x31')](_0x28f2f6[_0x796a('0x34')],_0x28f2f6['query']);_0x483382[_0x796a('0x32')]=_[_0x796a('0x31')](_0x28f2f6[_0x796a('0x34')],qs[_0x796a('0x43')](_0x16cca9['query']['fields']));_0x483382[_0x796a('0x32')]=_0x483382[_0x796a('0x32')][_0x796a('0x33')]?_0x483382['attributes']:_0x28f2f6[_0x796a('0x34')];_0x483382[_0x796a('0x36')]=qs[_0x796a('0x37')](_0x16cca9[_0x796a('0x2e')][_0x796a('0x37')]);_0x483382['where']=qs[_0x796a('0x30')](_[_0x796a('0x39')](_0x16cca9[_0x796a('0x2e')],_0x28f2f6[_0x796a('0x30')]));if(_0x16cca9[_0x796a('0x2e')][_0x796a('0x3a')]){_0x483382[_0x796a('0x38')]=_['merge'](_0x483382[_0x796a('0x38')],{'$or':_[_0x796a('0x29')](_0x483382[_0x796a('0x32')],function(_0x3a8abe){var _0x225934={};_0x225934[_0x3a8abe]={'$like':'%'+_0x16cca9['query']['filter']+'%'};return _0x225934;})});}_0x483382=_['merge']({},_0x483382,_0x16cca9[_0x796a('0x3c')]);return _0x463c1[_0x796a('0x4c')](_0x483382);}})[_0x796a('0x23')](function(_0x8dd5ef){if(_0x8dd5ef){_0x1df750=_0x8dd5ef['length'];if(!_0x16cca9[_0x796a('0x2e')][_0x796a('0x49')](_0x796a('0x4a'))){_0x483382[_0x796a('0x1e')]=qs['limit'](_0x16cca9[_0x796a('0x2e')]['limit']);_0x483382[_0x796a('0x35')]=qs[_0x796a('0x35')](_0x16cca9[_0x796a('0x2e')][_0x796a('0x35')]);}return _0x463c1[_0x796a('0x4c')](_0x483382);}})[_0x796a('0x23')](function(_0x49acb8){if(_0x49acb8){return _0x49acb8?{'count':_0x1df750,'rows':_0x49acb8}:null;}})['then'](respondWithResult(_0x5f1cf8,null))['catch'](handleError(_0x5f1cf8,null));};exports[_0x796a('0x4e')]=function(_0x3b2fbc,_0x3f05e5,_0x2af4a4){var _0x4b6f9f={};var _0x460af8={};var _0x2a73e2;var _0x5138af;return db['Dynamics365Configuration'][_0x796a('0x4d')]({'where':{'id':_0x3b2fbc[_0x796a('0x41')]['id']}})['then'](handleEntityNotFound(_0x3f05e5,null))[_0x796a('0x23')](function(_0xd71fc3){if(_0xd71fc3){_0x2a73e2=_0xd71fc3;_0x460af8[_0x796a('0x34')]=_[_0x796a('0x2f')](db[_0x796a('0x48')]['rawAttributes']);_0x460af8['query']=_[_0x796a('0x2f')](_0x3b2fbc[_0x796a('0x2e')]);_0x460af8['filters']=_[_0x796a('0x31')](_0x460af8[_0x796a('0x34')],_0x460af8['query']);_0x4b6f9f[_0x796a('0x32')]=_['intersection'](_0x460af8['model'],qs['fields'](_0x3b2fbc['query']['fields']));_0x4b6f9f[_0x796a('0x32')]=_0x4b6f9f[_0x796a('0x32')][_0x796a('0x33')]?_0x4b6f9f[_0x796a('0x32')]:_0x460af8['model'];_0x4b6f9f[_0x796a('0x36')]=qs['sort'](_0x3b2fbc[_0x796a('0x2e')][_0x796a('0x37')]);_0x4b6f9f[_0x796a('0x38')]=qs['filters'](_[_0x796a('0x39')](_0x3b2fbc[_0x796a('0x2e')],_0x460af8[_0x796a('0x30')]));if(_0x3b2fbc['query'][_0x796a('0x3a')]){_0x4b6f9f['where']=_[_0x796a('0x3b')](_0x4b6f9f[_0x796a('0x38')],{'$or':_['map'](_0x4b6f9f['attributes'],function(_0x1ea040){var _0x41339b={};_0x41339b[_0x1ea040]={'$like':'%'+_0x3b2fbc[_0x796a('0x2e')][_0x796a('0x3a')]+'%'};return _0x41339b;})});}_0x4b6f9f=_[_0x796a('0x3b')]({},_0x4b6f9f,_0x3b2fbc[_0x796a('0x3c')]);return _0x2a73e2[_0x796a('0x4e')](_0x4b6f9f);}})['then'](function(_0x3daee4){if(_0x3daee4){_0x5138af=_0x3daee4['length'];if(!_0x3b2fbc[_0x796a('0x2e')][_0x796a('0x49')](_0x796a('0x4a'))){_0x4b6f9f[_0x796a('0x1e')]=qs[_0x796a('0x1e')](_0x3b2fbc[_0x796a('0x2e')][_0x796a('0x1e')]);_0x4b6f9f[_0x796a('0x35')]=qs['offset'](_0x3b2fbc[_0x796a('0x2e')][_0x796a('0x35')]);}return _0x2a73e2[_0x796a('0x4e')](_0x4b6f9f);}})[_0x796a('0x23')](function(_0x59619b){if(_0x59619b){return _0x59619b?{'count':_0x5138af,'rows':_0x59619b}:null;}})['then'](respondWithResult(_0x3f05e5,null))[_0x796a('0x4b')](handleError(_0x3f05e5,null));};