0f3a189aceceb23e3f232f6ed1048de8ce68ea21
[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 _0xcbeb=['ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','send','Dynamics365Configuration','rawAttributes','fieldName','map','name','query','filters','model','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','type','include','rows','show','keys','includeAll','merge','options','catch','create','body','find','params','getFields','findOne','Dynamics365Field','getSubjects','getDescriptions','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv'];(function(_0x2b749b,_0x3d31e6){var _0x4e0527=function(_0x30d0a1){while(--_0x30d0a1){_0x2b749b['push'](_0x2b749b['shift']());}};_0x4e0527(++_0x3d31e6);}(_0xcbeb,0xec));var _0xbcbe=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xcbeb[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0xbcbe('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xbcbe('0x1'));var jsonpatch=require(_0xbcbe('0x2'));var rp=require(_0xbcbe('0x3'));var moment=require(_0xbcbe('0x4'));var BPromise=require(_0xbcbe('0x5'));var Mustache=require(_0xbcbe('0x6'));var util=require(_0xbcbe('0x7'));var path=require('path');var sox=require(_0xbcbe('0x8'));var csv=require(_0xbcbe('0x9'));var ejs=require(_0xbcbe('0xa'));var fs=require('fs');var fs_extra=require(_0xbcbe('0xb'));var _=require(_0xbcbe('0xc'));var squel=require(_0xbcbe('0xd'));var crypto=require(_0xbcbe('0xe'));var jsforce=require(_0xbcbe('0xf'));var deskjs=require('desk.js');var toCsv=require(_0xbcbe('0x9'));var querystring=require(_0xbcbe('0x10'));var Papa=require('papaparse');var Redis=require(_0xbcbe('0x11'));var authService=require(_0xbcbe('0x12'));var qs=require(_0xbcbe('0x13'));var as=require(_0xbcbe('0x14'));var hardwareService=require(_0xbcbe('0x15'));var logger=require('../../config/logger')(_0xbcbe('0x16'));var utils=require(_0xbcbe('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0xbcbe('0x18'));var db=require(_0xbcbe('0x19'))['db'];function respondWithStatusCode(_0x2ebe4f,_0x11e846){_0x11e846=_0x11e846||0xcc;return function(_0x5d4b0c){if(_0x5d4b0c){return _0x2ebe4f[_0xbcbe('0x1a')](_0x11e846);}return _0x2ebe4f['status'](_0x11e846)[_0xbcbe('0x1b')]();};}function respondWithResult(_0x48d6a8,_0x86765b){_0x86765b=_0x86765b||0xc8;return function(_0x5b69d6){if(_0x5b69d6){return _0x48d6a8[_0xbcbe('0x1c')](_0x86765b)[_0xbcbe('0x1d')](_0x5b69d6);}};}function respondWithFilteredResult(_0x2508d0,_0x479e9b){return function(_0x36f83d){if(_0x36f83d){var _0x15daeb=typeof _0x479e9b[_0xbcbe('0x1e')]===_0xbcbe('0x1f')&&typeof _0x479e9b[_0xbcbe('0x20')]===_0xbcbe('0x1f');var _0x307009=_0x36f83d['count'];var _0xf29ab5=_0x15daeb?0x0:_0x479e9b[_0xbcbe('0x1e')];var _0x984528=_0x15daeb?_0x36f83d[_0xbcbe('0x21')]:_0x479e9b['offset']+_0x479e9b[_0xbcbe('0x20')];var _0x316cbf;if(_0x984528>=_0x307009){_0x984528=_0x307009;_0x316cbf=0xc8;}else{_0x316cbf=0xce;}_0x2508d0['status'](_0x316cbf);return _0x2508d0[_0xbcbe('0x22')](_0xbcbe('0x23'),_0xf29ab5+'-'+_0x984528+'/'+_0x307009)[_0xbcbe('0x1d')](_0x36f83d);}return null;};}function patchUpdates(_0x35553c){return function(_0x27ea57){try{jsonpatch[_0xbcbe('0x24')](_0x27ea57,_0x35553c,!![]);}catch(_0x1a31c2){return BPromise[_0xbcbe('0x25')](_0x1a31c2);}return _0x27ea57[_0xbcbe('0x26')]();};}function saveUpdates(_0x437ba3,_0x57d8fa){return function(_0x1b58dc){if(_0x1b58dc){return _0x1b58dc[_0xbcbe('0x27')](_0x437ba3)[_0xbcbe('0x28')](function(_0xb6694b){return _0xb6694b;});}return null;};}function removeEntity(_0x215683,_0x595d73){return function(_0x54d525){if(_0x54d525){return _0x54d525[_0xbcbe('0x29')]()[_0xbcbe('0x28')](function(){_0x215683[_0xbcbe('0x1c')](0xcc)[_0xbcbe('0x1b')]();});}};}function handleEntityNotFound(_0x1d3c61,_0x2523a3){return function(_0x40e459){if(!_0x40e459){_0x1d3c61[_0xbcbe('0x1a')](0x194);}return _0x40e459;};}function handleError(_0x30cc80,_0x34b5d0){_0x34b5d0=_0x34b5d0||0x1f4;return function(_0x23ba4d){logger[_0xbcbe('0x2a')](_0x23ba4d[_0xbcbe('0x2b')]);if(_0x23ba4d['name']){delete _0x23ba4d['name'];}_0x30cc80['status'](_0x34b5d0)[_0xbcbe('0x2c')](_0x23ba4d);};}exports['index']=function(_0x20ab01,_0x9d0363){var _0x1ab6b2={},_0x214a28={},_0x8cad58={'count':0x0,'rows':[]};var _0x2d89d9=_['map'](db[_0xbcbe('0x2d')][_0xbcbe('0x2e')],function(_0x23d830){return{'name':_0x23d830[_0xbcbe('0x2f')],'type':_0x23d830['type']['key']};});_0x214a28['model']=_[_0xbcbe('0x30')](_0x2d89d9,_0xbcbe('0x31'));_0x214a28[_0xbcbe('0x32')]=_['keys'](_0x20ab01['query']);_0x214a28[_0xbcbe('0x33')]=_['intersection'](_0x214a28[_0xbcbe('0x34')],_0x214a28[_0xbcbe('0x32')]);_0x1ab6b2['attributes']=_[_0xbcbe('0x35')](_0x214a28['model'],qs[_0xbcbe('0x36')](_0x20ab01[_0xbcbe('0x32')][_0xbcbe('0x36')]));_0x1ab6b2[_0xbcbe('0x37')]=_0x1ab6b2[_0xbcbe('0x37')][_0xbcbe('0x38')]?_0x1ab6b2[_0xbcbe('0x37')]:_0x214a28[_0xbcbe('0x34')];if(!_0x20ab01['query'][_0xbcbe('0x39')](_0xbcbe('0x3a'))){_0x1ab6b2['limit']=qs[_0xbcbe('0x20')](_0x20ab01['query'][_0xbcbe('0x20')]);_0x1ab6b2[_0xbcbe('0x1e')]=qs[_0xbcbe('0x1e')](_0x20ab01[_0xbcbe('0x32')][_0xbcbe('0x1e')]);}_0x1ab6b2[_0xbcbe('0x3b')]=qs[_0xbcbe('0x3c')](_0x20ab01[_0xbcbe('0x32')]['sort']);_0x1ab6b2[_0xbcbe('0x3d')]=qs[_0xbcbe('0x33')](_[_0xbcbe('0x3e')](_0x20ab01['query'],_0x214a28[_0xbcbe('0x33')]),_0x2d89d9);if(_0x20ab01[_0xbcbe('0x32')][_0xbcbe('0x3f')]){_0x1ab6b2[_0xbcbe('0x3d')]=_['merge'](_0x1ab6b2['where'],{'$or':_[_0xbcbe('0x30')](_0x2d89d9,function(_0x157a74){if(_0x157a74[_0xbcbe('0x40')]!=='VIRTUAL'){var _0x208a76={};_0x208a76[_0x157a74['name']]={'$like':'%'+_0x20ab01[_0xbcbe('0x32')]['filter']+'%'};return _0x208a76;}})});}_0x1ab6b2=_['merge']({},_0x1ab6b2,_0x20ab01['options']);var _0x21c4a3={'where':_0x1ab6b2[_0xbcbe('0x3d')]};return db[_0xbcbe('0x2d')][_0xbcbe('0x21')](_0x21c4a3)[_0xbcbe('0x28')](function(_0x28c1cd){_0x8cad58['count']=_0x28c1cd;if(_0x20ab01[_0xbcbe('0x32')]['includeAll']){_0x1ab6b2[_0xbcbe('0x41')]=[{'all':!![]}];}return db[_0xbcbe('0x2d')]['findAll'](_0x1ab6b2);})[_0xbcbe('0x28')](function(_0x540cf4){_0x8cad58[_0xbcbe('0x42')]=_0x540cf4;return _0x8cad58;})[_0xbcbe('0x28')](respondWithFilteredResult(_0x9d0363,_0x1ab6b2))['catch'](handleError(_0x9d0363,null));};exports[_0xbcbe('0x43')]=function(_0x2187d8,_0x57e9e4){var _0x3b1e95={'raw':![],'where':{'id':_0x2187d8['params']['id']}},_0x1f14cf={};_0x1f14cf[_0xbcbe('0x34')]=_[_0xbcbe('0x44')](db[_0xbcbe('0x2d')][_0xbcbe('0x2e')]);_0x1f14cf[_0xbcbe('0x32')]=_[_0xbcbe('0x44')](_0x2187d8['query']);_0x1f14cf[_0xbcbe('0x33')]=_[_0xbcbe('0x35')](_0x1f14cf['model'],_0x1f14cf['query']);_0x3b1e95[_0xbcbe('0x37')]=_[_0xbcbe('0x35')](_0x1f14cf[_0xbcbe('0x34')],qs[_0xbcbe('0x36')](_0x2187d8['query']['fields']));_0x3b1e95[_0xbcbe('0x37')]=_0x3b1e95[_0xbcbe('0x37')][_0xbcbe('0x38')]?_0x3b1e95[_0xbcbe('0x37')]:_0x1f14cf[_0xbcbe('0x34')];if(_0x2187d8[_0xbcbe('0x32')][_0xbcbe('0x45')]){_0x3b1e95[_0xbcbe('0x41')]=[{'all':!![]}];}_0x3b1e95=_[_0xbcbe('0x46')]({},_0x3b1e95,_0x2187d8[_0xbcbe('0x47')]);return db[_0xbcbe('0x2d')]['find'](_0x3b1e95)[_0xbcbe('0x28')](handleEntityNotFound(_0x57e9e4,null))[_0xbcbe('0x28')](respondWithResult(_0x57e9e4,null))[_0xbcbe('0x48')](handleError(_0x57e9e4,null));};exports[_0xbcbe('0x49')]=function(_0x4b6e4e,_0xfca5fa){return db[_0xbcbe('0x2d')][_0xbcbe('0x49')](_0x4b6e4e[_0xbcbe('0x4a')],{})['then'](respondWithResult(_0xfca5fa,0xc9))[_0xbcbe('0x48')](handleError(_0xfca5fa,null));};exports[_0xbcbe('0x27')]=function(_0x77a791,_0x5b3a7){if(_0x77a791[_0xbcbe('0x4a')]['id']){delete _0x77a791[_0xbcbe('0x4a')]['id'];}return db[_0xbcbe('0x2d')][_0xbcbe('0x4b')]({'where':{'id':_0x77a791[_0xbcbe('0x4c')]['id']}})[_0xbcbe('0x28')](handleEntityNotFound(_0x5b3a7,null))[_0xbcbe('0x28')](saveUpdates(_0x77a791[_0xbcbe('0x4a')],null))[_0xbcbe('0x28')](respondWithResult(_0x5b3a7,null))[_0xbcbe('0x48')](handleError(_0x5b3a7,null));};exports['destroy']=function(_0x597be3,_0x3c1f45){return db[_0xbcbe('0x2d')][_0xbcbe('0x4b')]({'where':{'id':_0x597be3[_0xbcbe('0x4c')]['id']}})['then'](handleEntityNotFound(_0x3c1f45,null))[_0xbcbe('0x28')](removeEntity(_0x3c1f45,null))[_0xbcbe('0x48')](handleError(_0x3c1f45,null));};exports[_0xbcbe('0x4d')]=function(_0x27a8e3,_0x386be6,_0x35d32e){var _0x313b01={};var _0x48f5cf={};var _0x28965a;var _0x4b3f8b;return db['Dynamics365Configuration'][_0xbcbe('0x4e')]({'where':{'id':_0x27a8e3['params']['id']}})[_0xbcbe('0x28')](handleEntityNotFound(_0x386be6,null))[_0xbcbe('0x28')](function(_0x5ef4d5){if(_0x5ef4d5){_0x28965a=_0x5ef4d5;_0x48f5cf[_0xbcbe('0x34')]=_[_0xbcbe('0x44')](db[_0xbcbe('0x4f')]['rawAttributes']);_0x48f5cf['query']=_['keys'](_0x27a8e3[_0xbcbe('0x32')]);_0x48f5cf[_0xbcbe('0x33')]=_[_0xbcbe('0x35')](_0x48f5cf[_0xbcbe('0x34')],_0x48f5cf['query']);_0x313b01[_0xbcbe('0x37')]=_[_0xbcbe('0x35')](_0x48f5cf[_0xbcbe('0x34')],qs[_0xbcbe('0x36')](_0x27a8e3[_0xbcbe('0x32')][_0xbcbe('0x36')]));_0x313b01['attributes']=_0x313b01[_0xbcbe('0x37')]['length']?_0x313b01[_0xbcbe('0x37')]:_0x48f5cf[_0xbcbe('0x34')];_0x313b01[_0xbcbe('0x3b')]=qs['sort'](_0x27a8e3['query'][_0xbcbe('0x3c')]);_0x313b01[_0xbcbe('0x3d')]=qs[_0xbcbe('0x33')](_[_0xbcbe('0x3e')](_0x27a8e3[_0xbcbe('0x32')],_0x48f5cf[_0xbcbe('0x33')]));if(_0x27a8e3[_0xbcbe('0x32')][_0xbcbe('0x3f')]){_0x313b01[_0xbcbe('0x3d')]=_[_0xbcbe('0x46')](_0x313b01['where'],{'$or':_['map'](_0x313b01[_0xbcbe('0x37')],function(_0x38ed0d){var _0x1abfd4={};_0x1abfd4[_0x38ed0d]={'$like':'%'+_0x27a8e3[_0xbcbe('0x32')][_0xbcbe('0x3f')]+'%'};return _0x1abfd4;})});}_0x313b01=_[_0xbcbe('0x46')]({},_0x313b01,_0x27a8e3['options']);return _0x28965a[_0xbcbe('0x4d')](_0x313b01);}})[_0xbcbe('0x28')](function(_0x8c1145){if(_0x8c1145){_0x4b3f8b=_0x8c1145['length'];if(!_0x27a8e3[_0xbcbe('0x32')][_0xbcbe('0x39')]('nolimit')){_0x313b01[_0xbcbe('0x20')]=qs[_0xbcbe('0x20')](_0x27a8e3[_0xbcbe('0x32')][_0xbcbe('0x20')]);_0x313b01[_0xbcbe('0x1e')]=qs['offset'](_0x27a8e3['query'][_0xbcbe('0x1e')]);}return _0x28965a[_0xbcbe('0x4d')](_0x313b01);}})['then'](function(_0x5cc2a1){if(_0x5cc2a1){return _0x5cc2a1?{'count':_0x4b3f8b,'rows':_0x5cc2a1}:null;}})[_0xbcbe('0x28')](respondWithResult(_0x386be6,null))[_0xbcbe('0x48')](handleError(_0x386be6,null));};exports[_0xbcbe('0x50')]=function(_0x335fb2,_0x5b919f,_0xb87df2){var _0x5efa29={};var _0x5a2fb1={};var _0x1413c8;var _0x5351c3;return db[_0xbcbe('0x2d')][_0xbcbe('0x4e')]({'where':{'id':_0x335fb2['params']['id']}})[_0xbcbe('0x28')](handleEntityNotFound(_0x5b919f,null))[_0xbcbe('0x28')](function(_0x3da386){if(_0x3da386){_0x1413c8=_0x3da386;_0x5a2fb1['model']=_[_0xbcbe('0x44')](db['Dynamics365Field'][_0xbcbe('0x2e')]);_0x5a2fb1[_0xbcbe('0x32')]=_['keys'](_0x335fb2[_0xbcbe('0x32')]);_0x5a2fb1[_0xbcbe('0x33')]=_[_0xbcbe('0x35')](_0x5a2fb1[_0xbcbe('0x34')],_0x5a2fb1['query']);_0x5efa29[_0xbcbe('0x37')]=_[_0xbcbe('0x35')](_0x5a2fb1[_0xbcbe('0x34')],qs[_0xbcbe('0x36')](_0x335fb2[_0xbcbe('0x32')]['fields']));_0x5efa29[_0xbcbe('0x37')]=_0x5efa29['attributes']['length']?_0x5efa29['attributes']:_0x5a2fb1[_0xbcbe('0x34')];_0x5efa29['order']=qs[_0xbcbe('0x3c')](_0x335fb2['query'][_0xbcbe('0x3c')]);_0x5efa29[_0xbcbe('0x3d')]=qs[_0xbcbe('0x33')](_[_0xbcbe('0x3e')](_0x335fb2[_0xbcbe('0x32')],_0x5a2fb1[_0xbcbe('0x33')]));if(_0x335fb2[_0xbcbe('0x32')][_0xbcbe('0x3f')]){_0x5efa29[_0xbcbe('0x3d')]=_[_0xbcbe('0x46')](_0x5efa29[_0xbcbe('0x3d')],{'$or':_[_0xbcbe('0x30')](_0x5efa29[_0xbcbe('0x37')],function(_0x28b9ee){var _0x26bac8={};_0x26bac8[_0x28b9ee]={'$like':'%'+_0x335fb2[_0xbcbe('0x32')][_0xbcbe('0x3f')]+'%'};return _0x26bac8;})});}_0x5efa29=_[_0xbcbe('0x46')]({},_0x5efa29,_0x335fb2[_0xbcbe('0x47')]);return _0x1413c8[_0xbcbe('0x50')](_0x5efa29);}})[_0xbcbe('0x28')](function(_0x3772de){if(_0x3772de){_0x5351c3=_0x3772de['length'];if(!_0x335fb2[_0xbcbe('0x32')][_0xbcbe('0x39')](_0xbcbe('0x3a'))){_0x5efa29[_0xbcbe('0x20')]=qs[_0xbcbe('0x20')](_0x335fb2[_0xbcbe('0x32')]['limit']);_0x5efa29[_0xbcbe('0x1e')]=qs[_0xbcbe('0x1e')](_0x335fb2[_0xbcbe('0x32')][_0xbcbe('0x1e')]);}return _0x1413c8[_0xbcbe('0x50')](_0x5efa29);}})[_0xbcbe('0x28')](function(_0x48c880){if(_0x48c880){return _0x48c880?{'count':_0x5351c3,'rows':_0x48c880}:null;}})[_0xbcbe('0x28')](respondWithResult(_0x5b919f,null))[_0xbcbe('0x48')](handleError(_0x5b919f,null));};exports[_0xbcbe('0x51')]=function(_0x55da6e,_0xa3ee5a,_0x1ce7df){var _0x24bd30={};var _0x43d5d4={};var _0x2a3b4e;var _0x4162a1;return db['Dynamics365Configuration'][_0xbcbe('0x4e')]({'where':{'id':_0x55da6e['params']['id']}})['then'](handleEntityNotFound(_0xa3ee5a,null))[_0xbcbe('0x28')](function(_0x2e556a){if(_0x2e556a){_0x2a3b4e=_0x2e556a;_0x43d5d4[_0xbcbe('0x34')]=_[_0xbcbe('0x44')](db[_0xbcbe('0x4f')][_0xbcbe('0x2e')]);_0x43d5d4[_0xbcbe('0x32')]=_['keys'](_0x55da6e['query']);_0x43d5d4[_0xbcbe('0x33')]=_[_0xbcbe('0x35')](_0x43d5d4[_0xbcbe('0x34')],_0x43d5d4[_0xbcbe('0x32')]);_0x24bd30[_0xbcbe('0x37')]=_['intersection'](_0x43d5d4[_0xbcbe('0x34')],qs[_0xbcbe('0x36')](_0x55da6e[_0xbcbe('0x32')][_0xbcbe('0x36')]));_0x24bd30['attributes']=_0x24bd30[_0xbcbe('0x37')][_0xbcbe('0x38')]?_0x24bd30[_0xbcbe('0x37')]:_0x43d5d4['model'];_0x24bd30['order']=qs[_0xbcbe('0x3c')](_0x55da6e['query'][_0xbcbe('0x3c')]);_0x24bd30[_0xbcbe('0x3d')]=qs[_0xbcbe('0x33')](_[_0xbcbe('0x3e')](_0x55da6e[_0xbcbe('0x32')],_0x43d5d4[_0xbcbe('0x33')]));if(_0x55da6e['query']['filter']){_0x24bd30[_0xbcbe('0x3d')]=_[_0xbcbe('0x46')](_0x24bd30[_0xbcbe('0x3d')],{'$or':_[_0xbcbe('0x30')](_0x24bd30['attributes'],function(_0x422104){var _0x2ad1db={};_0x2ad1db[_0x422104]={'$like':'%'+_0x55da6e[_0xbcbe('0x32')]['filter']+'%'};return _0x2ad1db;})});}_0x24bd30=_['merge']({},_0x24bd30,_0x55da6e[_0xbcbe('0x47')]);return _0x2a3b4e[_0xbcbe('0x51')](_0x24bd30);}})[_0xbcbe('0x28')](function(_0x10824c){if(_0x10824c){_0x4162a1=_0x10824c[_0xbcbe('0x38')];if(!_0x55da6e[_0xbcbe('0x32')][_0xbcbe('0x39')](_0xbcbe('0x3a'))){_0x24bd30['limit']=qs[_0xbcbe('0x20')](_0x55da6e[_0xbcbe('0x32')][_0xbcbe('0x20')]);_0x24bd30[_0xbcbe('0x1e')]=qs[_0xbcbe('0x1e')](_0x55da6e['query'][_0xbcbe('0x1e')]);}return _0x2a3b4e[_0xbcbe('0x51')](_0x24bd30);}})[_0xbcbe('0x28')](function(_0x2517ed){if(_0x2517ed){return _0x2517ed?{'count':_0x4162a1,'rows':_0x2517ed}:null;}})[_0xbcbe('0x28')](respondWithResult(_0xa3ee5a,null))['catch'](handleError(_0xa3ee5a,null));};