bfe863b41b084c2ef7061a4eca7b83a9105af26c
[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 _0xc029=['squel','crypto','jsforce','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','apply','reject','update','then','end','error','stack','name','send','index','map','Dynamics365Configuration','fieldName','type','key','keys','filters','intersection','model','query','attributes','fields','length','order','sort','filter','where','merge','options','includeAll','include','findAll','show','params','rawAttributes','catch','create','body','find','destroy','getFields','findOne','Dynamics365Field','nolimit','getSubjects','hasOwnProperty','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','ejs','fs-extra','lodash'];(function(_0x4ece58,_0x50922a){var _0x20d209=function(_0x3de5f6){while(--_0x3de5f6){_0x4ece58['push'](_0x4ece58['shift']());}};_0x20d209(++_0x50922a);}(_0xc029,0xea));var _0x9c02=function(_0x1b9a9f,_0x482c35){_0x1b9a9f=_0x1b9a9f-0x0;var _0x2552fd=_0xc029[_0x1b9a9f];return _0x2552fd;};'use strict';var emlformat=require(_0x9c02('0x0'));var rimraf=require(_0x9c02('0x1'));var zipdir=require(_0x9c02('0x2'));var jsonpatch=require(_0x9c02('0x3'));var rp=require(_0x9c02('0x4'));var moment=require('moment');var BPromise=require(_0x9c02('0x5'));var Mustache=require(_0x9c02('0x6'));var util=require(_0x9c02('0x7'));var path=require(_0x9c02('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x9c02('0x9'));var fs=require('fs');var fs_extra=require(_0x9c02('0xa'));var _=require(_0x9c02('0xb'));var squel=require(_0x9c02('0xc'));var crypto=require(_0x9c02('0xd'));var jsforce=require(_0x9c02('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x9c02('0xf'));var querystring=require('querystring');var Papa=require(_0x9c02('0x10'));var Redis=require(_0x9c02('0x11'));var authService=require(_0x9c02('0x12'));var qs=require(_0x9c02('0x13'));var as=require(_0x9c02('0x14'));var hardwareService=require(_0x9c02('0x15'));var logger=require(_0x9c02('0x16'))(_0x9c02('0x17'));var utils=require(_0x9c02('0x18'));var config=require(_0x9c02('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0x9c02('0x1a'))['db'];function respondWithStatusCode(_0x155423,_0x16bcee){_0x16bcee=_0x16bcee||0xcc;return function(_0x381b58){if(_0x381b58){return _0x155423[_0x9c02('0x1b')](_0x16bcee);}return _0x155423[_0x9c02('0x1c')](_0x16bcee)['end']();};}function respondWithResult(_0x542496,_0x371e5f){_0x371e5f=_0x371e5f||0xc8;return function(_0x54e400){if(_0x54e400){return _0x542496[_0x9c02('0x1c')](_0x371e5f)[_0x9c02('0x1d')](_0x54e400);}};}function respondWithFilteredResult(_0x506f0f,_0x3b3e4a){return function(_0x31dfd4){if(_0x31dfd4){var _0xd2c858=typeof _0x3b3e4a[_0x9c02('0x1e')]===_0x9c02('0x1f')&&typeof _0x3b3e4a[_0x9c02('0x20')]===_0x9c02('0x1f');var _0x30e608=_0x31dfd4['count'];var _0x13d061=_0xd2c858?0x0:_0x3b3e4a[_0x9c02('0x1e')];var _0x1725b1=_0xd2c858?_0x31dfd4[_0x9c02('0x21')]:_0x3b3e4a[_0x9c02('0x1e')]+_0x3b3e4a[_0x9c02('0x20')];var _0x333a06;if(_0x1725b1>=_0x30e608){_0x1725b1=_0x30e608;_0x333a06=0xc8;}else{_0x333a06=0xce;}_0x506f0f[_0x9c02('0x1c')](_0x333a06);return _0x506f0f[_0x9c02('0x22')]('Content-Range',_0x13d061+'-'+_0x1725b1+'/'+_0x30e608)[_0x9c02('0x1d')](_0x31dfd4);}return null;};}function patchUpdates(_0x15f301){return function(_0xf47b13){try{jsonpatch[_0x9c02('0x23')](_0xf47b13,_0x15f301,!![]);}catch(_0x21053b){return BPromise[_0x9c02('0x24')](_0x21053b);}return _0xf47b13['save']();};}function saveUpdates(_0x501253,_0x5a1773){return function(_0x4e15b0){if(_0x4e15b0){return _0x4e15b0[_0x9c02('0x25')](_0x501253)[_0x9c02('0x26')](function(_0x250466){return _0x250466;});}return null;};}function removeEntity(_0x3cc0e1,_0x42938c){return function(_0x44ae48){if(_0x44ae48){return _0x44ae48['destroy']()['then'](function(){_0x3cc0e1[_0x9c02('0x1c')](0xcc)[_0x9c02('0x27')]();});}};}function handleEntityNotFound(_0x119e44,_0x216ea3){return function(_0x113c20){if(!_0x113c20){_0x119e44[_0x9c02('0x1b')](0x194);}return _0x113c20;};}function handleError(_0x758b5d,_0x1efa39){_0x1efa39=_0x1efa39||0x1f4;return function(_0x1e7a14){logger[_0x9c02('0x28')](_0x1e7a14[_0x9c02('0x29')]);if(_0x1e7a14[_0x9c02('0x2a')]){delete _0x1e7a14[_0x9c02('0x2a')];}_0x758b5d[_0x9c02('0x1c')](_0x1efa39)[_0x9c02('0x2b')](_0x1e7a14);};}exports[_0x9c02('0x2c')]=function(_0xae524e,_0x35a924){var _0x4cb905={},_0x1109f3={},_0x320632={'count':0x0,'rows':[]};var _0x2efce1=_[_0x9c02('0x2d')](db[_0x9c02('0x2e')]['rawAttributes'],function(_0x232b18){return{'name':_0x232b18[_0x9c02('0x2f')],'type':_0x232b18[_0x9c02('0x30')][_0x9c02('0x31')]};});_0x1109f3['model']=_[_0x9c02('0x2d')](_0x2efce1,_0x9c02('0x2a'));_0x1109f3['query']=_[_0x9c02('0x32')](_0xae524e['query']);_0x1109f3[_0x9c02('0x33')]=_[_0x9c02('0x34')](_0x1109f3[_0x9c02('0x35')],_0x1109f3[_0x9c02('0x36')]);_0x4cb905[_0x9c02('0x37')]=_[_0x9c02('0x34')](_0x1109f3[_0x9c02('0x35')],qs[_0x9c02('0x38')](_0xae524e[_0x9c02('0x36')][_0x9c02('0x38')]));_0x4cb905[_0x9c02('0x37')]=_0x4cb905[_0x9c02('0x37')][_0x9c02('0x39')]?_0x4cb905[_0x9c02('0x37')]:_0x1109f3[_0x9c02('0x35')];if(!_0xae524e['query']['hasOwnProperty']('nolimit')){_0x4cb905[_0x9c02('0x20')]=qs[_0x9c02('0x20')](_0xae524e['query'][_0x9c02('0x20')]);_0x4cb905[_0x9c02('0x1e')]=qs[_0x9c02('0x1e')](_0xae524e[_0x9c02('0x36')]['offset']);}_0x4cb905[_0x9c02('0x3a')]=qs['sort'](_0xae524e[_0x9c02('0x36')][_0x9c02('0x3b')]);_0x4cb905['where']=qs[_0x9c02('0x33')](_['pick'](_0xae524e[_0x9c02('0x36')],_0x1109f3[_0x9c02('0x33')]),_0x2efce1);if(_0xae524e[_0x9c02('0x36')][_0x9c02('0x3c')]){_0x4cb905[_0x9c02('0x3d')]=_[_0x9c02('0x3e')](_0x4cb905[_0x9c02('0x3d')],{'$or':_['map'](_0x2efce1,function(_0x3d45d5){if(_0x3d45d5[_0x9c02('0x30')]!=='VIRTUAL'){var _0x1ad5be={};_0x1ad5be[_0x3d45d5[_0x9c02('0x2a')]]={'$like':'%'+_0xae524e['query'][_0x9c02('0x3c')]+'%'};return _0x1ad5be;}})});}_0x4cb905=_[_0x9c02('0x3e')]({},_0x4cb905,_0xae524e[_0x9c02('0x3f')]);var _0x19e9d6={'where':_0x4cb905[_0x9c02('0x3d')]};return db[_0x9c02('0x2e')][_0x9c02('0x21')](_0x19e9d6)[_0x9c02('0x26')](function(_0x459fe6){_0x320632['count']=_0x459fe6;if(_0xae524e['query'][_0x9c02('0x40')]){_0x4cb905[_0x9c02('0x41')]=[{'all':!![]}];}return db['Dynamics365Configuration'][_0x9c02('0x42')](_0x4cb905);})[_0x9c02('0x26')](function(_0x7ad822){_0x320632['rows']=_0x7ad822;return _0x320632;})[_0x9c02('0x26')](respondWithFilteredResult(_0x35a924,_0x4cb905))['catch'](handleError(_0x35a924,null));};exports[_0x9c02('0x43')]=function(_0x17391f,_0x2e19f3){var _0xd63489={'raw':![],'where':{'id':_0x17391f[_0x9c02('0x44')]['id']}},_0x545e9b={};_0x545e9b[_0x9c02('0x35')]=_[_0x9c02('0x32')](db[_0x9c02('0x2e')][_0x9c02('0x45')]);_0x545e9b[_0x9c02('0x36')]=_[_0x9c02('0x32')](_0x17391f['query']);_0x545e9b[_0x9c02('0x33')]=_[_0x9c02('0x34')](_0x545e9b[_0x9c02('0x35')],_0x545e9b[_0x9c02('0x36')]);_0xd63489[_0x9c02('0x37')]=_[_0x9c02('0x34')](_0x545e9b[_0x9c02('0x35')],qs[_0x9c02('0x38')](_0x17391f['query'][_0x9c02('0x38')]));_0xd63489[_0x9c02('0x37')]=_0xd63489['attributes']['length']?_0xd63489[_0x9c02('0x37')]:_0x545e9b['model'];if(_0x17391f['query'][_0x9c02('0x40')]){_0xd63489[_0x9c02('0x41')]=[{'all':!![]}];}_0xd63489=_[_0x9c02('0x3e')]({},_0xd63489,_0x17391f['options']);return db[_0x9c02('0x2e')]['find'](_0xd63489)['then'](handleEntityNotFound(_0x2e19f3,null))[_0x9c02('0x26')](respondWithResult(_0x2e19f3,null))[_0x9c02('0x46')](handleError(_0x2e19f3,null));};exports[_0x9c02('0x47')]=function(_0xc455e4,_0x287d27){return db['Dynamics365Configuration'][_0x9c02('0x47')](_0xc455e4['body'],{})[_0x9c02('0x26')](respondWithResult(_0x287d27,0xc9))[_0x9c02('0x46')](handleError(_0x287d27,null));};exports[_0x9c02('0x25')]=function(_0x266345,_0x32075c){if(_0x266345[_0x9c02('0x48')]['id']){delete _0x266345[_0x9c02('0x48')]['id'];}return db[_0x9c02('0x2e')][_0x9c02('0x49')]({'where':{'id':_0x266345[_0x9c02('0x44')]['id']}})[_0x9c02('0x26')](handleEntityNotFound(_0x32075c,null))[_0x9c02('0x26')](saveUpdates(_0x266345[_0x9c02('0x48')],null))[_0x9c02('0x26')](respondWithResult(_0x32075c,null))[_0x9c02('0x46')](handleError(_0x32075c,null));};exports[_0x9c02('0x4a')]=function(_0x279b25,_0x1b79d7){return db[_0x9c02('0x2e')]['find']({'where':{'id':_0x279b25[_0x9c02('0x44')]['id']}})[_0x9c02('0x26')](handleEntityNotFound(_0x1b79d7,null))[_0x9c02('0x26')](removeEntity(_0x1b79d7,null))[_0x9c02('0x46')](handleError(_0x1b79d7,null));};exports[_0x9c02('0x4b')]=function(_0x115e46,_0x24e275,_0xede553){var _0x531b39={};var _0x24188e={};var _0x56d4ee;var _0x3991f8;return db[_0x9c02('0x2e')][_0x9c02('0x4c')]({'where':{'id':_0x115e46[_0x9c02('0x44')]['id']}})['then'](handleEntityNotFound(_0x24e275,null))[_0x9c02('0x26')](function(_0x515e5a){if(_0x515e5a){_0x56d4ee=_0x515e5a;_0x24188e[_0x9c02('0x35')]=_[_0x9c02('0x32')](db[_0x9c02('0x4d')]['rawAttributes']);_0x24188e['query']=_[_0x9c02('0x32')](_0x115e46[_0x9c02('0x36')]);_0x24188e[_0x9c02('0x33')]=_[_0x9c02('0x34')](_0x24188e[_0x9c02('0x35')],_0x24188e[_0x9c02('0x36')]);_0x531b39['attributes']=_[_0x9c02('0x34')](_0x24188e[_0x9c02('0x35')],qs[_0x9c02('0x38')](_0x115e46[_0x9c02('0x36')][_0x9c02('0x38')]));_0x531b39['attributes']=_0x531b39[_0x9c02('0x37')][_0x9c02('0x39')]?_0x531b39['attributes']:_0x24188e['model'];_0x531b39[_0x9c02('0x3a')]=qs['sort'](_0x115e46[_0x9c02('0x36')][_0x9c02('0x3b')]);_0x531b39[_0x9c02('0x3d')]=qs['filters'](_['pick'](_0x115e46[_0x9c02('0x36')],_0x24188e[_0x9c02('0x33')]));if(_0x115e46[_0x9c02('0x36')][_0x9c02('0x3c')]){_0x531b39[_0x9c02('0x3d')]=_[_0x9c02('0x3e')](_0x531b39[_0x9c02('0x3d')],{'$or':_[_0x9c02('0x2d')](_0x531b39[_0x9c02('0x37')],function(_0xfe94b2){var _0x506f29={};_0x506f29[_0xfe94b2]={'$like':'%'+_0x115e46[_0x9c02('0x36')][_0x9c02('0x3c')]+'%'};return _0x506f29;})});}_0x531b39=_[_0x9c02('0x3e')]({},_0x531b39,_0x115e46[_0x9c02('0x3f')]);return _0x56d4ee['getFields'](_0x531b39);}})['then'](function(_0x31af27){if(_0x31af27){_0x3991f8=_0x31af27[_0x9c02('0x39')];if(!_0x115e46['query']['hasOwnProperty'](_0x9c02('0x4e'))){_0x531b39[_0x9c02('0x20')]=qs['limit'](_0x115e46[_0x9c02('0x36')][_0x9c02('0x20')]);_0x531b39[_0x9c02('0x1e')]=qs[_0x9c02('0x1e')](_0x115e46[_0x9c02('0x36')]['offset']);}return _0x56d4ee[_0x9c02('0x4b')](_0x531b39);}})[_0x9c02('0x26')](function(_0x42c32f){if(_0x42c32f){return _0x42c32f?{'count':_0x3991f8,'rows':_0x42c32f}:null;}})[_0x9c02('0x26')](respondWithResult(_0x24e275,null))[_0x9c02('0x46')](handleError(_0x24e275,null));};exports[_0x9c02('0x4f')]=function(_0x5429f9,_0x676de2,_0x20c540){var _0x56e19e={};var _0xaed79e={};var _0x15e04a;var _0x25d6f1;return db[_0x9c02('0x2e')][_0x9c02('0x4c')]({'where':{'id':_0x5429f9[_0x9c02('0x44')]['id']}})[_0x9c02('0x26')](handleEntityNotFound(_0x676de2,null))[_0x9c02('0x26')](function(_0x4e9aa0){if(_0x4e9aa0){_0x15e04a=_0x4e9aa0;_0xaed79e[_0x9c02('0x35')]=_['keys'](db[_0x9c02('0x4d')][_0x9c02('0x45')]);_0xaed79e[_0x9c02('0x36')]=_[_0x9c02('0x32')](_0x5429f9[_0x9c02('0x36')]);_0xaed79e['filters']=_[_0x9c02('0x34')](_0xaed79e[_0x9c02('0x35')],_0xaed79e[_0x9c02('0x36')]);_0x56e19e[_0x9c02('0x37')]=_[_0x9c02('0x34')](_0xaed79e['model'],qs['fields'](_0x5429f9[_0x9c02('0x36')]['fields']));_0x56e19e[_0x9c02('0x37')]=_0x56e19e['attributes'][_0x9c02('0x39')]?_0x56e19e[_0x9c02('0x37')]:_0xaed79e['model'];_0x56e19e[_0x9c02('0x3a')]=qs[_0x9c02('0x3b')](_0x5429f9[_0x9c02('0x36')]['sort']);_0x56e19e['where']=qs[_0x9c02('0x33')](_['pick'](_0x5429f9[_0x9c02('0x36')],_0xaed79e[_0x9c02('0x33')]));if(_0x5429f9[_0x9c02('0x36')]['filter']){_0x56e19e[_0x9c02('0x3d')]=_['merge'](_0x56e19e['where'],{'$or':_[_0x9c02('0x2d')](_0x56e19e['attributes'],function(_0x4f00a8){var _0x22de27={};_0x22de27[_0x4f00a8]={'$like':'%'+_0x5429f9[_0x9c02('0x36')][_0x9c02('0x3c')]+'%'};return _0x22de27;})});}_0x56e19e=_[_0x9c02('0x3e')]({},_0x56e19e,_0x5429f9[_0x9c02('0x3f')]);return _0x15e04a[_0x9c02('0x4f')](_0x56e19e);}})['then'](function(_0x20978b){if(_0x20978b){_0x25d6f1=_0x20978b[_0x9c02('0x39')];if(!_0x5429f9[_0x9c02('0x36')][_0x9c02('0x50')](_0x9c02('0x4e'))){_0x56e19e[_0x9c02('0x20')]=qs[_0x9c02('0x20')](_0x5429f9['query'][_0x9c02('0x20')]);_0x56e19e['offset']=qs['offset'](_0x5429f9[_0x9c02('0x36')][_0x9c02('0x1e')]);}return _0x15e04a['getSubjects'](_0x56e19e);}})[_0x9c02('0x26')](function(_0x22fbed){if(_0x22fbed){return _0x22fbed?{'count':_0x25d6f1,'rows':_0x22fbed}:null;}})[_0x9c02('0x26')](respondWithResult(_0x676de2,null))[_0x9c02('0x46')](handleError(_0x676de2,null));};exports[_0x9c02('0x51')]=function(_0x211e6d,_0x3b21dc,_0x25cdfe){var _0x299cc7={};var _0x435be9={};var _0x4fb724;var _0x4aeb1b;return db[_0x9c02('0x2e')]['findOne']({'where':{'id':_0x211e6d['params']['id']}})[_0x9c02('0x26')](handleEntityNotFound(_0x3b21dc,null))[_0x9c02('0x26')](function(_0xe03f3e){if(_0xe03f3e){_0x4fb724=_0xe03f3e;_0x435be9[_0x9c02('0x35')]=_[_0x9c02('0x32')](db[_0x9c02('0x4d')][_0x9c02('0x45')]);_0x435be9[_0x9c02('0x36')]=_['keys'](_0x211e6d[_0x9c02('0x36')]);_0x435be9[_0x9c02('0x33')]=_[_0x9c02('0x34')](_0x435be9[_0x9c02('0x35')],_0x435be9['query']);_0x299cc7[_0x9c02('0x37')]=_[_0x9c02('0x34')](_0x435be9['model'],qs['fields'](_0x211e6d[_0x9c02('0x36')][_0x9c02('0x38')]));_0x299cc7[_0x9c02('0x37')]=_0x299cc7['attributes'][_0x9c02('0x39')]?_0x299cc7[_0x9c02('0x37')]:_0x435be9['model'];_0x299cc7[_0x9c02('0x3a')]=qs[_0x9c02('0x3b')](_0x211e6d['query'][_0x9c02('0x3b')]);_0x299cc7[_0x9c02('0x3d')]=qs[_0x9c02('0x33')](_['pick'](_0x211e6d[_0x9c02('0x36')],_0x435be9[_0x9c02('0x33')]));if(_0x211e6d[_0x9c02('0x36')][_0x9c02('0x3c')]){_0x299cc7[_0x9c02('0x3d')]=_[_0x9c02('0x3e')](_0x299cc7[_0x9c02('0x3d')],{'$or':_[_0x9c02('0x2d')](_0x299cc7['attributes'],function(_0x5d4235){var _0x41cacc={};_0x41cacc[_0x5d4235]={'$like':'%'+_0x211e6d[_0x9c02('0x36')][_0x9c02('0x3c')]+'%'};return _0x41cacc;})});}_0x299cc7=_[_0x9c02('0x3e')]({},_0x299cc7,_0x211e6d[_0x9c02('0x3f')]);return _0x4fb724[_0x9c02('0x51')](_0x299cc7);}})[_0x9c02('0x26')](function(_0xc58a31){if(_0xc58a31){_0x4aeb1b=_0xc58a31[_0x9c02('0x39')];if(!_0x211e6d[_0x9c02('0x36')][_0x9c02('0x50')](_0x9c02('0x4e'))){_0x299cc7[_0x9c02('0x20')]=qs[_0x9c02('0x20')](_0x211e6d[_0x9c02('0x36')][_0x9c02('0x20')]);_0x299cc7[_0x9c02('0x1e')]=qs[_0x9c02('0x1e')](_0x211e6d[_0x9c02('0x36')][_0x9c02('0x1e')]);}return _0x4fb724[_0x9c02('0x51')](_0x299cc7);}})[_0x9c02('0x26')](function(_0x52ec59){if(_0x52ec59){return _0x52ec59?{'count':_0x4aeb1b,'rows':_0x52ec59}:null;}})[_0x9c02('0x26')](respondWithResult(_0x3b21dc,null))[_0x9c02('0x46')](handleError(_0x3b21dc,null));};