0807924a0b6ef92bf016f7f3fc63bea061b9203e
[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 _0x93e9=['mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','offset','undefined','limit','count','set','Content-Range','json','apply','reject','then','error','stack','name','send','index','map','Dynamics365Configuration','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','VIRTUAL','merge','options','rows','catch','show','params','includeAll','find','create','body','destroy','Dynamics365Field','order','getFields','getSubjects','findOne','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird'];(function(_0x3102ce,_0x237f66){var _0x535895=function(_0xd34964){while(--_0xd34964){_0x3102ce['push'](_0x3102ce['shift']());}};_0x535895(++_0x237f66);}(_0x93e9,0xa3));var _0x993e=function(_0x453271,_0x52ee0f){_0x453271=_0x453271-0x0;var _0x54530b=_0x93e9[_0x453271];return _0x54530b;};'use strict';var emlformat=require(_0x993e('0x0'));var rimraf=require(_0x993e('0x1'));var zipdir=require(_0x993e('0x2'));var jsonpatch=require(_0x993e('0x3'));var rp=require(_0x993e('0x4'));var moment=require(_0x993e('0x5'));var BPromise=require(_0x993e('0x6'));var Mustache=require(_0x993e('0x7'));var util=require(_0x993e('0x8'));var path=require(_0x993e('0x9'));var sox=require(_0x993e('0xa'));var csv=require(_0x993e('0xb'));var ejs=require(_0x993e('0xc'));var fs=require('fs');var fs_extra=require(_0x993e('0xd'));var _=require(_0x993e('0xe'));var squel=require('squel');var crypto=require(_0x993e('0xf'));var jsforce=require(_0x993e('0x10'));var deskjs=require(_0x993e('0x11'));var toCsv=require(_0x993e('0xb'));var querystring=require(_0x993e('0x12'));var Papa=require(_0x993e('0x13'));var Redis=require(_0x993e('0x14'));var authService=require(_0x993e('0x15'));var qs=require(_0x993e('0x16'));var as=require(_0x993e('0x17'));var hardwareService=require(_0x993e('0x18'));var logger=require(_0x993e('0x19'))(_0x993e('0x1a'));var utils=require(_0x993e('0x1b'));var config=require(_0x993e('0x1c'));var licenseUtil=require(_0x993e('0x1d'));var db=require(_0x993e('0x1e'))['db'];function respondWithStatusCode(_0x55a7fd,_0x2f2c30){_0x2f2c30=_0x2f2c30||0xcc;return function(_0x5c14bb){if(_0x5c14bb){return _0x55a7fd['sendStatus'](_0x2f2c30);}return _0x55a7fd[_0x993e('0x1f')](_0x2f2c30)['end']();};}function respondWithResult(_0x26f5a3,_0x28be6d){_0x28be6d=_0x28be6d||0xc8;return function(_0x4c4bc8){if(_0x4c4bc8){return _0x26f5a3[_0x993e('0x1f')](_0x28be6d)['json'](_0x4c4bc8);}};}function respondWithFilteredResult(_0x51766a,_0xf00024){return function(_0x10835a){if(_0x10835a){var _0x564502=typeof _0xf00024[_0x993e('0x20')]===_0x993e('0x21')&&typeof _0xf00024[_0x993e('0x22')]===_0x993e('0x21');var _0x3ce3a6=_0x10835a[_0x993e('0x23')];var _0x2cfccb=_0x564502?0x0:_0xf00024[_0x993e('0x20')];var _0x11639c=_0x564502?_0x10835a[_0x993e('0x23')]:_0xf00024[_0x993e('0x20')]+_0xf00024['limit'];var _0x2c7ac7;if(_0x11639c>=_0x3ce3a6){_0x11639c=_0x3ce3a6;_0x2c7ac7=0xc8;}else{_0x2c7ac7=0xce;}_0x51766a['status'](_0x2c7ac7);return _0x51766a[_0x993e('0x24')](_0x993e('0x25'),_0x2cfccb+'-'+_0x11639c+'/'+_0x3ce3a6)[_0x993e('0x26')](_0x10835a);}return null;};}function patchUpdates(_0x4c2dae){return function(_0x5dd777){try{jsonpatch[_0x993e('0x27')](_0x5dd777,_0x4c2dae,!![]);}catch(_0x16b27e){return BPromise[_0x993e('0x28')](_0x16b27e);}return _0x5dd777['save']();};}function saveUpdates(_0x557c08,_0xa7cae4){return function(_0x4d6b86){if(_0x4d6b86){return _0x4d6b86['update'](_0x557c08)[_0x993e('0x29')](function(_0x2488d4){return _0x2488d4;});}return null;};}function removeEntity(_0x12fc37,_0x205f74){return function(_0x158027){if(_0x158027){return _0x158027['destroy']()[_0x993e('0x29')](function(){_0x12fc37[_0x993e('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1fde8f,_0x4a8de4){return function(_0x184a5e){if(!_0x184a5e){_0x1fde8f['sendStatus'](0x194);}return _0x184a5e;};}function handleError(_0x313112,_0xccbe09){_0xccbe09=_0xccbe09||0x1f4;return function(_0x4df3fc){logger[_0x993e('0x2a')](_0x4df3fc[_0x993e('0x2b')]);if(_0x4df3fc[_0x993e('0x2c')]){delete _0x4df3fc['name'];}_0x313112[_0x993e('0x1f')](_0xccbe09)[_0x993e('0x2d')](_0x4df3fc);};}exports[_0x993e('0x2e')]=function(_0x23f338,_0x4a68de){var _0x54f972={},_0x1b49f7={},_0xd1bc14={'count':0x0,'rows':[]};var _0x514bec=_[_0x993e('0x2f')](db[_0x993e('0x30')][_0x993e('0x31')],function(_0x54d0cf){return{'name':_0x54d0cf[_0x993e('0x32')],'type':_0x54d0cf[_0x993e('0x33')][_0x993e('0x34')]};});_0x1b49f7[_0x993e('0x35')]=_['map'](_0x514bec,_0x993e('0x2c'));_0x1b49f7[_0x993e('0x36')]=_[_0x993e('0x37')](_0x23f338[_0x993e('0x36')]);_0x1b49f7[_0x993e('0x38')]=_[_0x993e('0x39')](_0x1b49f7[_0x993e('0x35')],_0x1b49f7['query']);_0x54f972[_0x993e('0x3a')]=_[_0x993e('0x39')](_0x1b49f7['model'],qs[_0x993e('0x3b')](_0x23f338[_0x993e('0x36')][_0x993e('0x3b')]));_0x54f972[_0x993e('0x3a')]=_0x54f972['attributes'][_0x993e('0x3c')]?_0x54f972[_0x993e('0x3a')]:_0x1b49f7[_0x993e('0x35')];if(!_0x23f338['query'][_0x993e('0x3d')](_0x993e('0x3e'))){_0x54f972[_0x993e('0x22')]=qs[_0x993e('0x22')](_0x23f338[_0x993e('0x36')]['limit']);_0x54f972[_0x993e('0x20')]=qs['offset'](_0x23f338[_0x993e('0x36')][_0x993e('0x20')]);}_0x54f972['order']=qs[_0x993e('0x3f')](_0x23f338[_0x993e('0x36')][_0x993e('0x3f')]);_0x54f972[_0x993e('0x40')]=qs[_0x993e('0x38')](_[_0x993e('0x41')](_0x23f338[_0x993e('0x36')],_0x1b49f7[_0x993e('0x38')]),_0x514bec);if(_0x23f338['query'][_0x993e('0x42')]){_0x54f972[_0x993e('0x40')]=_['merge'](_0x54f972['where'],{'$or':_[_0x993e('0x2f')](_0x514bec,function(_0x1e46c5){if(_0x1e46c5[_0x993e('0x33')]!==_0x993e('0x43')){var _0x2bef12={};_0x2bef12[_0x1e46c5[_0x993e('0x2c')]]={'$like':'%'+_0x23f338[_0x993e('0x36')]['filter']+'%'};return _0x2bef12;}})});}_0x54f972=_[_0x993e('0x44')]({},_0x54f972,_0x23f338[_0x993e('0x45')]);var _0x3a3c88={'where':_0x54f972[_0x993e('0x40')]};return db[_0x993e('0x30')][_0x993e('0x23')](_0x3a3c88)[_0x993e('0x29')](function(_0x549d82){_0xd1bc14[_0x993e('0x23')]=_0x549d82;if(_0x23f338[_0x993e('0x36')]['includeAll']){_0x54f972['include']=[{'all':!![]}];}return db['Dynamics365Configuration']['findAll'](_0x54f972);})[_0x993e('0x29')](function(_0xf0c04a){_0xd1bc14[_0x993e('0x46')]=_0xf0c04a;return _0xd1bc14;})[_0x993e('0x29')](respondWithFilteredResult(_0x4a68de,_0x54f972))[_0x993e('0x47')](handleError(_0x4a68de,null));};exports[_0x993e('0x48')]=function(_0x5dc1b7,_0x1ae59c){var _0x2bf119={'raw':![],'where':{'id':_0x5dc1b7[_0x993e('0x49')]['id']}},_0x471b12={};_0x471b12['model']=_['keys'](db[_0x993e('0x30')][_0x993e('0x31')]);_0x471b12[_0x993e('0x36')]=_['keys'](_0x5dc1b7[_0x993e('0x36')]);_0x471b12[_0x993e('0x38')]=_[_0x993e('0x39')](_0x471b12[_0x993e('0x35')],_0x471b12[_0x993e('0x36')]);_0x2bf119['attributes']=_['intersection'](_0x471b12[_0x993e('0x35')],qs[_0x993e('0x3b')](_0x5dc1b7['query']['fields']));_0x2bf119['attributes']=_0x2bf119['attributes'][_0x993e('0x3c')]?_0x2bf119[_0x993e('0x3a')]:_0x471b12['model'];if(_0x5dc1b7[_0x993e('0x36')][_0x993e('0x4a')]){_0x2bf119['include']=[{'all':!![]}];}_0x2bf119=_[_0x993e('0x44')]({},_0x2bf119,_0x5dc1b7[_0x993e('0x45')]);return db[_0x993e('0x30')][_0x993e('0x4b')](_0x2bf119)[_0x993e('0x29')](handleEntityNotFound(_0x1ae59c,null))['then'](respondWithResult(_0x1ae59c,null))[_0x993e('0x47')](handleError(_0x1ae59c,null));};exports[_0x993e('0x4c')]=function(_0x5b1149,_0x196e37){return db[_0x993e('0x30')][_0x993e('0x4c')](_0x5b1149[_0x993e('0x4d')],{})[_0x993e('0x29')](respondWithResult(_0x196e37,0xc9))[_0x993e('0x47')](handleError(_0x196e37,null));};exports['update']=function(_0x552f4b,_0x4c82e0){if(_0x552f4b[_0x993e('0x4d')]['id']){delete _0x552f4b['body']['id'];}return db[_0x993e('0x30')][_0x993e('0x4b')]({'where':{'id':_0x552f4b[_0x993e('0x49')]['id']}})[_0x993e('0x29')](handleEntityNotFound(_0x4c82e0,null))[_0x993e('0x29')](saveUpdates(_0x552f4b[_0x993e('0x4d')],null))[_0x993e('0x29')](respondWithResult(_0x4c82e0,null))['catch'](handleError(_0x4c82e0,null));};exports[_0x993e('0x4e')]=function(_0x42d16d,_0x3ddb4d){return db[_0x993e('0x30')][_0x993e('0x4b')]({'where':{'id':_0x42d16d[_0x993e('0x49')]['id']}})[_0x993e('0x29')](handleEntityNotFound(_0x3ddb4d,null))[_0x993e('0x29')](removeEntity(_0x3ddb4d,null))[_0x993e('0x47')](handleError(_0x3ddb4d,null));};exports['getFields']=function(_0x4bb88e,_0x33eb12,_0x37ca61){var _0x2dc676={};var _0x2524c2={};var _0x23717d;var _0x4374aa;return db[_0x993e('0x30')]['findOne']({'where':{'id':_0x4bb88e[_0x993e('0x49')]['id']}})[_0x993e('0x29')](handleEntityNotFound(_0x33eb12,null))[_0x993e('0x29')](function(_0x33ab31){if(_0x33ab31){_0x23717d=_0x33ab31;_0x2524c2[_0x993e('0x35')]=_[_0x993e('0x37')](db[_0x993e('0x4f')][_0x993e('0x31')]);_0x2524c2[_0x993e('0x36')]=_[_0x993e('0x37')](_0x4bb88e[_0x993e('0x36')]);_0x2524c2[_0x993e('0x38')]=_[_0x993e('0x39')](_0x2524c2[_0x993e('0x35')],_0x2524c2[_0x993e('0x36')]);_0x2dc676[_0x993e('0x3a')]=_[_0x993e('0x39')](_0x2524c2['model'],qs[_0x993e('0x3b')](_0x4bb88e['query'][_0x993e('0x3b')]));_0x2dc676[_0x993e('0x3a')]=_0x2dc676[_0x993e('0x3a')][_0x993e('0x3c')]?_0x2dc676['attributes']:_0x2524c2[_0x993e('0x35')];_0x2dc676[_0x993e('0x50')]=qs[_0x993e('0x3f')](_0x4bb88e[_0x993e('0x36')][_0x993e('0x3f')]);_0x2dc676['where']=qs['filters'](_[_0x993e('0x41')](_0x4bb88e[_0x993e('0x36')],_0x2524c2['filters']));if(_0x4bb88e[_0x993e('0x36')][_0x993e('0x42')]){_0x2dc676[_0x993e('0x40')]=_[_0x993e('0x44')](_0x2dc676[_0x993e('0x40')],{'$or':_['map'](_0x2dc676[_0x993e('0x3a')],function(_0x43519d){var _0x39525a={};_0x39525a[_0x43519d]={'$like':'%'+_0x4bb88e['query']['filter']+'%'};return _0x39525a;})});}_0x2dc676=_[_0x993e('0x44')]({},_0x2dc676,_0x4bb88e[_0x993e('0x45')]);return _0x23717d[_0x993e('0x51')](_0x2dc676);}})[_0x993e('0x29')](function(_0xa5028b){if(_0xa5028b){_0x4374aa=_0xa5028b['length'];if(!_0x4bb88e[_0x993e('0x36')][_0x993e('0x3d')](_0x993e('0x3e'))){_0x2dc676[_0x993e('0x22')]=qs[_0x993e('0x22')](_0x4bb88e[_0x993e('0x36')]['limit']);_0x2dc676[_0x993e('0x20')]=qs[_0x993e('0x20')](_0x4bb88e[_0x993e('0x36')][_0x993e('0x20')]);}return _0x23717d[_0x993e('0x51')](_0x2dc676);}})[_0x993e('0x29')](function(_0x4951da){if(_0x4951da){return _0x4951da?{'count':_0x4374aa,'rows':_0x4951da}:null;}})[_0x993e('0x29')](respondWithResult(_0x33eb12,null))[_0x993e('0x47')](handleError(_0x33eb12,null));};exports[_0x993e('0x52')]=function(_0xa1d9dc,_0x5051a7,_0x34b234){var _0x13c59b={};var _0x5df963={};var _0x32151f;var _0x2da891;return db[_0x993e('0x30')][_0x993e('0x53')]({'where':{'id':_0xa1d9dc[_0x993e('0x49')]['id']}})['then'](handleEntityNotFound(_0x5051a7,null))[_0x993e('0x29')](function(_0x416d55){if(_0x416d55){_0x32151f=_0x416d55;_0x5df963[_0x993e('0x35')]=_[_0x993e('0x37')](db[_0x993e('0x4f')]['rawAttributes']);_0x5df963['query']=_[_0x993e('0x37')](_0xa1d9dc[_0x993e('0x36')]);_0x5df963['filters']=_[_0x993e('0x39')](_0x5df963[_0x993e('0x35')],_0x5df963['query']);_0x13c59b[_0x993e('0x3a')]=_['intersection'](_0x5df963['model'],qs[_0x993e('0x3b')](_0xa1d9dc[_0x993e('0x36')][_0x993e('0x3b')]));_0x13c59b[_0x993e('0x3a')]=_0x13c59b[_0x993e('0x3a')][_0x993e('0x3c')]?_0x13c59b[_0x993e('0x3a')]:_0x5df963[_0x993e('0x35')];_0x13c59b[_0x993e('0x50')]=qs[_0x993e('0x3f')](_0xa1d9dc[_0x993e('0x36')]['sort']);_0x13c59b[_0x993e('0x40')]=qs[_0x993e('0x38')](_[_0x993e('0x41')](_0xa1d9dc['query'],_0x5df963[_0x993e('0x38')]));if(_0xa1d9dc[_0x993e('0x36')][_0x993e('0x42')]){_0x13c59b[_0x993e('0x40')]=_['merge'](_0x13c59b[_0x993e('0x40')],{'$or':_['map'](_0x13c59b['attributes'],function(_0x214da2){var _0xd3ecda={};_0xd3ecda[_0x214da2]={'$like':'%'+_0xa1d9dc[_0x993e('0x36')][_0x993e('0x42')]+'%'};return _0xd3ecda;})});}_0x13c59b=_[_0x993e('0x44')]({},_0x13c59b,_0xa1d9dc['options']);return _0x32151f['getSubjects'](_0x13c59b);}})['then'](function(_0x50c09e){if(_0x50c09e){_0x2da891=_0x50c09e[_0x993e('0x3c')];if(!_0xa1d9dc[_0x993e('0x36')]['hasOwnProperty']('nolimit')){_0x13c59b[_0x993e('0x22')]=qs[_0x993e('0x22')](_0xa1d9dc[_0x993e('0x36')]['limit']);_0x13c59b[_0x993e('0x20')]=qs[_0x993e('0x20')](_0xa1d9dc[_0x993e('0x36')][_0x993e('0x20')]);}return _0x32151f['getSubjects'](_0x13c59b);}})[_0x993e('0x29')](function(_0x285fc4){if(_0x285fc4){return _0x285fc4?{'count':_0x2da891,'rows':_0x285fc4}:null;}})[_0x993e('0x29')](respondWithResult(_0x5051a7,null))[_0x993e('0x47')](handleError(_0x5051a7,null));};exports[_0x993e('0x54')]=function(_0x342dec,_0x125835,_0x550128){var _0x2df57e={};var _0x4a26fe={};var _0x3ee855;var _0x4cdcd1;return db[_0x993e('0x30')][_0x993e('0x53')]({'where':{'id':_0x342dec[_0x993e('0x49')]['id']}})[_0x993e('0x29')](handleEntityNotFound(_0x125835,null))[_0x993e('0x29')](function(_0x2e1995){if(_0x2e1995){_0x3ee855=_0x2e1995;_0x4a26fe[_0x993e('0x35')]=_[_0x993e('0x37')](db['Dynamics365Field'][_0x993e('0x31')]);_0x4a26fe[_0x993e('0x36')]=_[_0x993e('0x37')](_0x342dec[_0x993e('0x36')]);_0x4a26fe[_0x993e('0x38')]=_[_0x993e('0x39')](_0x4a26fe[_0x993e('0x35')],_0x4a26fe[_0x993e('0x36')]);_0x2df57e['attributes']=_['intersection'](_0x4a26fe[_0x993e('0x35')],qs[_0x993e('0x3b')](_0x342dec[_0x993e('0x36')]['fields']));_0x2df57e['attributes']=_0x2df57e[_0x993e('0x3a')]['length']?_0x2df57e['attributes']:_0x4a26fe[_0x993e('0x35')];_0x2df57e['order']=qs[_0x993e('0x3f')](_0x342dec[_0x993e('0x36')]['sort']);_0x2df57e[_0x993e('0x40')]=qs[_0x993e('0x38')](_[_0x993e('0x41')](_0x342dec['query'],_0x4a26fe['filters']));if(_0x342dec[_0x993e('0x36')][_0x993e('0x42')]){_0x2df57e[_0x993e('0x40')]=_[_0x993e('0x44')](_0x2df57e[_0x993e('0x40')],{'$or':_[_0x993e('0x2f')](_0x2df57e[_0x993e('0x3a')],function(_0x261ad7){var _0x4f3331={};_0x4f3331[_0x261ad7]={'$like':'%'+_0x342dec[_0x993e('0x36')][_0x993e('0x42')]+'%'};return _0x4f3331;})});}_0x2df57e=_[_0x993e('0x44')]({},_0x2df57e,_0x342dec['options']);return _0x3ee855[_0x993e('0x54')](_0x2df57e);}})[_0x993e('0x29')](function(_0x226bee){if(_0x226bee){_0x4cdcd1=_0x226bee[_0x993e('0x3c')];if(!_0x342dec[_0x993e('0x36')][_0x993e('0x3d')](_0x993e('0x3e'))){_0x2df57e['limit']=qs['limit'](_0x342dec[_0x993e('0x36')][_0x993e('0x22')]);_0x2df57e[_0x993e('0x20')]=qs['offset'](_0x342dec[_0x993e('0x36')][_0x993e('0x20')]);}return _0x3ee855['getDescriptions'](_0x2df57e);}})[_0x993e('0x29')](function(_0x3a776c){if(_0x3a776c){return _0x3a776c?{'count':_0x4cdcd1,'rows':_0x3a776c}:null;}})[_0x993e('0x29')](respondWithResult(_0x125835,null))[_0x993e('0x47')](handleError(_0x125835,null));};