a2c84e451e55c66d4e0e597dda4749424f41ca27
[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 _0xdde6=['getFields','findOne','rawAttributes','getSubjects','Dynamics365Field','getDescriptions','eml-format','zip-dir','fast-json-patch','bluebird','mustache','util','path','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../mysqldb','sendStatus','end','status','json','limit','undefined','count','offset','Content-Range','apply','save','update','then','destroy','error','stack','name','send','Dynamics365Configuration','fieldName','type','key','model','map','keys','filters','intersection','query','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','filter','options','include','findAll','rows','catch','show','params','includeAll','find','body'];(function(_0xc1c93f,_0x1fba71){var _0x3f81cb=function(_0x20b66f){while(--_0x20b66f){_0xc1c93f['push'](_0xc1c93f['shift']());}};_0x3f81cb(++_0x1fba71);}(_0xdde6,0x132));var _0x6dde=function(_0xdfd845,_0x1a8d2c){_0xdfd845=_0xdfd845-0x0;var _0x30d96e=_0xdde6[_0xdfd845];return _0x30d96e;};'use strict';var emlformat=require(_0x6dde('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x6dde('0x1'));var jsonpatch=require(_0x6dde('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x6dde('0x3'));var Mustache=require(_0x6dde('0x4'));var util=require(_0x6dde('0x5'));var path=require(_0x6dde('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x6dde('0x7'));var crypto=require(_0x6dde('0x8'));var jsforce=require(_0x6dde('0x9'));var deskjs=require(_0x6dde('0xa'));var toCsv=require(_0x6dde('0xb'));var querystring=require(_0x6dde('0xc'));var Papa=require(_0x6dde('0xd'));var Redis=require(_0x6dde('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x6dde('0xf'));var as=require(_0x6dde('0x10'));var hardwareService=require(_0x6dde('0x11'));var logger=require(_0x6dde('0x12'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x6dde('0x13'))['db'];function respondWithStatusCode(_0x3be6d7,_0x4ccbe0){_0x4ccbe0=_0x4ccbe0||0xcc;return function(_0x28fa3c){if(_0x28fa3c){return _0x3be6d7[_0x6dde('0x14')](_0x4ccbe0);}return _0x3be6d7['status'](_0x4ccbe0)[_0x6dde('0x15')]();};}function respondWithResult(_0x4fbf55,_0x49ef3f){_0x49ef3f=_0x49ef3f||0xc8;return function(_0x4abed6){if(_0x4abed6){return _0x4fbf55[_0x6dde('0x16')](_0x49ef3f)[_0x6dde('0x17')](_0x4abed6);}};}function respondWithFilteredResult(_0x2b3c9a,_0x37782e){return function(_0x50274c){if(_0x50274c){var _0x29b2ea=typeof _0x37782e['offset']==='undefined'&&typeof _0x37782e[_0x6dde('0x18')]===_0x6dde('0x19');var _0x2934cf=_0x50274c[_0x6dde('0x1a')];var _0x3a2a39=_0x29b2ea?0x0:_0x37782e[_0x6dde('0x1b')];var _0x297864=_0x29b2ea?_0x50274c[_0x6dde('0x1a')]:_0x37782e['offset']+_0x37782e[_0x6dde('0x18')];var _0x277e39;if(_0x297864>=_0x2934cf){_0x297864=_0x2934cf;_0x277e39=0xc8;}else{_0x277e39=0xce;}_0x2b3c9a[_0x6dde('0x16')](_0x277e39);return _0x2b3c9a['set'](_0x6dde('0x1c'),_0x3a2a39+'-'+_0x297864+'/'+_0x2934cf)[_0x6dde('0x17')](_0x50274c);}return null;};}function patchUpdates(_0x3fe7da){return function(_0x18f26c){try{jsonpatch[_0x6dde('0x1d')](_0x18f26c,_0x3fe7da,!![]);}catch(_0xebb976){return BPromise['reject'](_0xebb976);}return _0x18f26c[_0x6dde('0x1e')]();};}function saveUpdates(_0x4705eb,_0x13fecf){return function(_0x37d838){if(_0x37d838){return _0x37d838[_0x6dde('0x1f')](_0x4705eb)[_0x6dde('0x20')](function(_0x2ad0af){return _0x2ad0af;});}return null;};}function removeEntity(_0x216f78,_0xf6f3c0){return function(_0x1ac8b8){if(_0x1ac8b8){return _0x1ac8b8[_0x6dde('0x21')]()['then'](function(){_0x216f78[_0x6dde('0x16')](0xcc)[_0x6dde('0x15')]();});}};}function handleEntityNotFound(_0x51e10c,_0x17579f){return function(_0x218828){if(!_0x218828){_0x51e10c[_0x6dde('0x14')](0x194);}return _0x218828;};}function handleError(_0x8135bb,_0x1257a5){_0x1257a5=_0x1257a5||0x1f4;return function(_0x1e36cf){logger[_0x6dde('0x22')](_0x1e36cf[_0x6dde('0x23')]);if(_0x1e36cf['name']){delete _0x1e36cf[_0x6dde('0x24')];}_0x8135bb[_0x6dde('0x16')](_0x1257a5)[_0x6dde('0x25')](_0x1e36cf);};}exports['index']=function(_0x1936ea,_0x44c080){var _0x4a4fc5={},_0x3e9756={},_0x2cfd9a={'count':0x0,'rows':[]};var _0x207e99=_['map'](db[_0x6dde('0x26')]['rawAttributes'],function(_0x241c6a){return{'name':_0x241c6a[_0x6dde('0x27')],'type':_0x241c6a[_0x6dde('0x28')][_0x6dde('0x29')]};});_0x3e9756[_0x6dde('0x2a')]=_[_0x6dde('0x2b')](_0x207e99,_0x6dde('0x24'));_0x3e9756['query']=_[_0x6dde('0x2c')](_0x1936ea['query']);_0x3e9756[_0x6dde('0x2d')]=_[_0x6dde('0x2e')](_0x3e9756[_0x6dde('0x2a')],_0x3e9756[_0x6dde('0x2f')]);_0x4a4fc5[_0x6dde('0x30')]=_[_0x6dde('0x2e')](_0x3e9756[_0x6dde('0x2a')],qs[_0x6dde('0x31')](_0x1936ea[_0x6dde('0x2f')][_0x6dde('0x31')]));_0x4a4fc5[_0x6dde('0x30')]=_0x4a4fc5[_0x6dde('0x30')][_0x6dde('0x32')]?_0x4a4fc5['attributes']:_0x3e9756[_0x6dde('0x2a')];if(!_0x1936ea[_0x6dde('0x2f')][_0x6dde('0x33')](_0x6dde('0x34'))){_0x4a4fc5[_0x6dde('0x18')]=qs[_0x6dde('0x18')](_0x1936ea[_0x6dde('0x2f')]['limit']);_0x4a4fc5['offset']=qs[_0x6dde('0x1b')](_0x1936ea['query']['offset']);}_0x4a4fc5[_0x6dde('0x35')]=qs[_0x6dde('0x36')](_0x1936ea[_0x6dde('0x2f')][_0x6dde('0x36')]);_0x4a4fc5[_0x6dde('0x37')]=qs[_0x6dde('0x2d')](_[_0x6dde('0x38')](_0x1936ea['query'],_0x3e9756[_0x6dde('0x2d')]),_0x207e99);if(_0x1936ea[_0x6dde('0x2f')]['filter']){_0x4a4fc5[_0x6dde('0x37')]=_[_0x6dde('0x39')](_0x4a4fc5[_0x6dde('0x37')],{'$or':_[_0x6dde('0x2b')](_0x207e99,function(_0xf753db){if(_0xf753db[_0x6dde('0x28')]!=='VIRTUAL'){var _0x46edd9={};_0x46edd9[_0xf753db[_0x6dde('0x24')]]={'$like':'%'+_0x1936ea['query'][_0x6dde('0x3a')]+'%'};return _0x46edd9;}})});}_0x4a4fc5=_[_0x6dde('0x39')]({},_0x4a4fc5,_0x1936ea[_0x6dde('0x3b')]);var _0x3a0451={'where':_0x4a4fc5['where']};return db[_0x6dde('0x26')][_0x6dde('0x1a')](_0x3a0451)[_0x6dde('0x20')](function(_0xad5357){_0x2cfd9a['count']=_0xad5357;if(_0x1936ea['query']['includeAll']){_0x4a4fc5[_0x6dde('0x3c')]=[{'all':!![]}];}return db[_0x6dde('0x26')][_0x6dde('0x3d')](_0x4a4fc5);})[_0x6dde('0x20')](function(_0x2e7adc){_0x2cfd9a[_0x6dde('0x3e')]=_0x2e7adc;return _0x2cfd9a;})[_0x6dde('0x20')](respondWithFilteredResult(_0x44c080,_0x4a4fc5))[_0x6dde('0x3f')](handleError(_0x44c080,null));};exports[_0x6dde('0x40')]=function(_0x2bf4e7,_0x2f53a4){var _0x1f54bc={'raw':![],'where':{'id':_0x2bf4e7[_0x6dde('0x41')]['id']}},_0x317925={};_0x317925[_0x6dde('0x2a')]=_[_0x6dde('0x2c')](db[_0x6dde('0x26')]['rawAttributes']);_0x317925[_0x6dde('0x2f')]=_[_0x6dde('0x2c')](_0x2bf4e7[_0x6dde('0x2f')]);_0x317925[_0x6dde('0x2d')]=_[_0x6dde('0x2e')](_0x317925[_0x6dde('0x2a')],_0x317925[_0x6dde('0x2f')]);_0x1f54bc[_0x6dde('0x30')]=_['intersection'](_0x317925['model'],qs[_0x6dde('0x31')](_0x2bf4e7[_0x6dde('0x2f')][_0x6dde('0x31')]));_0x1f54bc[_0x6dde('0x30')]=_0x1f54bc['attributes']['length']?_0x1f54bc[_0x6dde('0x30')]:_0x317925[_0x6dde('0x2a')];if(_0x2bf4e7[_0x6dde('0x2f')][_0x6dde('0x42')]){_0x1f54bc[_0x6dde('0x3c')]=[{'all':!![]}];}_0x1f54bc=_[_0x6dde('0x39')]({},_0x1f54bc,_0x2bf4e7[_0x6dde('0x3b')]);return db[_0x6dde('0x26')][_0x6dde('0x43')](_0x1f54bc)[_0x6dde('0x20')](handleEntityNotFound(_0x2f53a4,null))[_0x6dde('0x20')](respondWithResult(_0x2f53a4,null))[_0x6dde('0x3f')](handleError(_0x2f53a4,null));};exports['create']=function(_0x1ee191,_0x5364b7){return db[_0x6dde('0x26')]['create'](_0x1ee191['body'],{})[_0x6dde('0x20')](respondWithResult(_0x5364b7,0xc9))['catch'](handleError(_0x5364b7,null));};exports[_0x6dde('0x1f')]=function(_0x7dfefe,_0x1c8779){if(_0x7dfefe['body']['id']){delete _0x7dfefe[_0x6dde('0x44')]['id'];}return db[_0x6dde('0x26')]['find']({'where':{'id':_0x7dfefe[_0x6dde('0x41')]['id']}})['then'](handleEntityNotFound(_0x1c8779,null))[_0x6dde('0x20')](saveUpdates(_0x7dfefe[_0x6dde('0x44')],null))[_0x6dde('0x20')](respondWithResult(_0x1c8779,null))['catch'](handleError(_0x1c8779,null));};exports[_0x6dde('0x21')]=function(_0x7becab,_0x3b0ea5){return db['Dynamics365Configuration'][_0x6dde('0x43')]({'where':{'id':_0x7becab[_0x6dde('0x41')]['id']}})['then'](handleEntityNotFound(_0x3b0ea5,null))[_0x6dde('0x20')](removeEntity(_0x3b0ea5,null))['catch'](handleError(_0x3b0ea5,null));};exports[_0x6dde('0x45')]=function(_0xf8f634,_0x4058e8,_0x835ea4){var _0xa72850={};var _0x59fc0f={};var _0x3627e7;var _0x37c717;return db['Dynamics365Configuration'][_0x6dde('0x46')]({'where':{'id':_0xf8f634[_0x6dde('0x41')]['id']}})[_0x6dde('0x20')](handleEntityNotFound(_0x4058e8,null))[_0x6dde('0x20')](function(_0x3eb5f9){if(_0x3eb5f9){_0x3627e7=_0x3eb5f9;_0x59fc0f['model']=_[_0x6dde('0x2c')](db['Dynamics365Field'][_0x6dde('0x47')]);_0x59fc0f[_0x6dde('0x2f')]=_['keys'](_0xf8f634[_0x6dde('0x2f')]);_0x59fc0f[_0x6dde('0x2d')]=_['intersection'](_0x59fc0f['model'],_0x59fc0f[_0x6dde('0x2f')]);_0xa72850['attributes']=_[_0x6dde('0x2e')](_0x59fc0f[_0x6dde('0x2a')],qs[_0x6dde('0x31')](_0xf8f634[_0x6dde('0x2f')]['fields']));_0xa72850[_0x6dde('0x30')]=_0xa72850[_0x6dde('0x30')][_0x6dde('0x32')]?_0xa72850['attributes']:_0x59fc0f['model'];_0xa72850[_0x6dde('0x35')]=qs[_0x6dde('0x36')](_0xf8f634['query'][_0x6dde('0x36')]);_0xa72850[_0x6dde('0x37')]=qs[_0x6dde('0x2d')](_[_0x6dde('0x38')](_0xf8f634['query'],_0x59fc0f['filters']));if(_0xf8f634[_0x6dde('0x2f')][_0x6dde('0x3a')]){_0xa72850[_0x6dde('0x37')]=_[_0x6dde('0x39')](_0xa72850['where'],{'$or':_[_0x6dde('0x2b')](_0xa72850[_0x6dde('0x30')],function(_0x46e2a4){var _0x3a4ed8={};_0x3a4ed8[_0x46e2a4]={'$like':'%'+_0xf8f634[_0x6dde('0x2f')][_0x6dde('0x3a')]+'%'};return _0x3a4ed8;})});}_0xa72850=_[_0x6dde('0x39')]({},_0xa72850,_0xf8f634[_0x6dde('0x3b')]);return _0x3627e7[_0x6dde('0x45')](_0xa72850);}})[_0x6dde('0x20')](function(_0x23a437){if(_0x23a437){_0x37c717=_0x23a437[_0x6dde('0x32')];if(!_0xf8f634['query']['hasOwnProperty'](_0x6dde('0x34'))){_0xa72850[_0x6dde('0x18')]=qs[_0x6dde('0x18')](_0xf8f634[_0x6dde('0x2f')][_0x6dde('0x18')]);_0xa72850[_0x6dde('0x1b')]=qs[_0x6dde('0x1b')](_0xf8f634[_0x6dde('0x2f')]['offset']);}return _0x3627e7[_0x6dde('0x45')](_0xa72850);}})[_0x6dde('0x20')](function(_0x102e99){if(_0x102e99){return _0x102e99?{'count':_0x37c717,'rows':_0x102e99}:null;}})[_0x6dde('0x20')](respondWithResult(_0x4058e8,null))[_0x6dde('0x3f')](handleError(_0x4058e8,null));};exports[_0x6dde('0x48')]=function(_0x5b2d82,_0x4f36d9,_0x3e4b6e){var _0x1154e9={};var _0xfa313f={};var _0x26e4dc;var _0x42ee88;return db[_0x6dde('0x26')][_0x6dde('0x46')]({'where':{'id':_0x5b2d82[_0x6dde('0x41')]['id']}})[_0x6dde('0x20')](handleEntityNotFound(_0x4f36d9,null))['then'](function(_0x34c31c){if(_0x34c31c){_0x26e4dc=_0x34c31c;_0xfa313f[_0x6dde('0x2a')]=_[_0x6dde('0x2c')](db[_0x6dde('0x49')]['rawAttributes']);_0xfa313f[_0x6dde('0x2f')]=_[_0x6dde('0x2c')](_0x5b2d82[_0x6dde('0x2f')]);_0xfa313f[_0x6dde('0x2d')]=_[_0x6dde('0x2e')](_0xfa313f[_0x6dde('0x2a')],_0xfa313f['query']);_0x1154e9[_0x6dde('0x30')]=_['intersection'](_0xfa313f[_0x6dde('0x2a')],qs['fields'](_0x5b2d82['query']['fields']));_0x1154e9[_0x6dde('0x30')]=_0x1154e9['attributes']['length']?_0x1154e9['attributes']:_0xfa313f[_0x6dde('0x2a')];_0x1154e9['order']=qs[_0x6dde('0x36')](_0x5b2d82['query']['sort']);_0x1154e9[_0x6dde('0x37')]=qs[_0x6dde('0x2d')](_[_0x6dde('0x38')](_0x5b2d82[_0x6dde('0x2f')],_0xfa313f[_0x6dde('0x2d')]));if(_0x5b2d82[_0x6dde('0x2f')][_0x6dde('0x3a')]){_0x1154e9[_0x6dde('0x37')]=_['merge'](_0x1154e9[_0x6dde('0x37')],{'$or':_[_0x6dde('0x2b')](_0x1154e9['attributes'],function(_0xe3781){var _0x29f181={};_0x29f181[_0xe3781]={'$like':'%'+_0x5b2d82[_0x6dde('0x2f')][_0x6dde('0x3a')]+'%'};return _0x29f181;})});}_0x1154e9=_[_0x6dde('0x39')]({},_0x1154e9,_0x5b2d82['options']);return _0x26e4dc[_0x6dde('0x48')](_0x1154e9);}})[_0x6dde('0x20')](function(_0x232576){if(_0x232576){_0x42ee88=_0x232576[_0x6dde('0x32')];if(!_0x5b2d82[_0x6dde('0x2f')][_0x6dde('0x33')](_0x6dde('0x34'))){_0x1154e9['limit']=qs[_0x6dde('0x18')](_0x5b2d82[_0x6dde('0x2f')]['limit']);_0x1154e9[_0x6dde('0x1b')]=qs['offset'](_0x5b2d82['query'][_0x6dde('0x1b')]);}return _0x26e4dc['getSubjects'](_0x1154e9);}})[_0x6dde('0x20')](function(_0x55c72d){if(_0x55c72d){return _0x55c72d?{'count':_0x42ee88,'rows':_0x55c72d}:null;}})['then'](respondWithResult(_0x4f36d9,null))[_0x6dde('0x3f')](handleError(_0x4f36d9,null));};exports[_0x6dde('0x4a')]=function(_0x5cdf5b,_0x311fb4,_0x2dd2c9){var _0x292d03={};var _0x34d4e9={};var _0x3e132c;var _0xe2b77e;return db['Dynamics365Configuration'][_0x6dde('0x46')]({'where':{'id':_0x5cdf5b[_0x6dde('0x41')]['id']}})['then'](handleEntityNotFound(_0x311fb4,null))[_0x6dde('0x20')](function(_0x4cc435){if(_0x4cc435){_0x3e132c=_0x4cc435;_0x34d4e9[_0x6dde('0x2a')]=_['keys'](db['Dynamics365Field']['rawAttributes']);_0x34d4e9[_0x6dde('0x2f')]=_[_0x6dde('0x2c')](_0x5cdf5b[_0x6dde('0x2f')]);_0x34d4e9[_0x6dde('0x2d')]=_['intersection'](_0x34d4e9['model'],_0x34d4e9[_0x6dde('0x2f')]);_0x292d03['attributes']=_['intersection'](_0x34d4e9['model'],qs['fields'](_0x5cdf5b[_0x6dde('0x2f')]['fields']));_0x292d03[_0x6dde('0x30')]=_0x292d03[_0x6dde('0x30')][_0x6dde('0x32')]?_0x292d03[_0x6dde('0x30')]:_0x34d4e9['model'];_0x292d03[_0x6dde('0x35')]=qs[_0x6dde('0x36')](_0x5cdf5b[_0x6dde('0x2f')]['sort']);_0x292d03[_0x6dde('0x37')]=qs[_0x6dde('0x2d')](_['pick'](_0x5cdf5b[_0x6dde('0x2f')],_0x34d4e9[_0x6dde('0x2d')]));if(_0x5cdf5b[_0x6dde('0x2f')][_0x6dde('0x3a')]){_0x292d03['where']=_[_0x6dde('0x39')](_0x292d03[_0x6dde('0x37')],{'$or':_[_0x6dde('0x2b')](_0x292d03[_0x6dde('0x30')],function(_0x11ccba){var _0xbfad13={};_0xbfad13[_0x11ccba]={'$like':'%'+_0x5cdf5b[_0x6dde('0x2f')][_0x6dde('0x3a')]+'%'};return _0xbfad13;})});}_0x292d03=_[_0x6dde('0x39')]({},_0x292d03,_0x5cdf5b[_0x6dde('0x3b')]);return _0x3e132c[_0x6dde('0x4a')](_0x292d03);}})['then'](function(_0x2407e6){if(_0x2407e6){_0xe2b77e=_0x2407e6['length'];if(!_0x5cdf5b[_0x6dde('0x2f')][_0x6dde('0x33')](_0x6dde('0x34'))){_0x292d03[_0x6dde('0x18')]=qs[_0x6dde('0x18')](_0x5cdf5b[_0x6dde('0x2f')][_0x6dde('0x18')]);_0x292d03[_0x6dde('0x1b')]=qs[_0x6dde('0x1b')](_0x5cdf5b[_0x6dde('0x2f')][_0x6dde('0x1b')]);}return _0x3e132c['getDescriptions'](_0x292d03);}})[_0x6dde('0x20')](function(_0x4b49e3){if(_0x4b49e3){return _0x4b49e3?{'count':_0xe2b77e,'rows':_0x4b49e3}:null;}})[_0x6dde('0x20')](respondWithResult(_0x311fb4,null))[_0x6dde('0x3f')](handleError(_0x311fb4,null));};