b00584b7c1c02c108da8fcfe952f265d4515c36e
[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 _0xc908=['model','query','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filters','pick','filter','VIRTUAL','merge','options','findAll','catch','show','params','rawAttributes','includeAll','include','find','create','body','getFields','findOne','Dynamics365Field','getSubjects','nolimit','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','undefined','limit','count','offset','set','Content-Range','json','apply','reject','save','update','then','destroy','name','send','index','map','Dynamics365Configuration','fieldName','key'];(function(_0x3afe00,_0x19d479){var _0x9aa407=function(_0x25d425){while(--_0x25d425){_0x3afe00['push'](_0x3afe00['shift']());}};_0x9aa407(++_0x19d479);}(_0xc908,0x165));var _0x8c90=function(_0x25701b,_0x2a6976){_0x25701b=_0x25701b-0x0;var _0x3a8a2c=_0xc908[_0x25701b];return _0x3a8a2c;};'use strict';var emlformat=require(_0x8c90('0x0'));var rimraf=require(_0x8c90('0x1'));var zipdir=require(_0x8c90('0x2'));var jsonpatch=require(_0x8c90('0x3'));var rp=require(_0x8c90('0x4'));var moment=require(_0x8c90('0x5'));var BPromise=require(_0x8c90('0x6'));var Mustache=require(_0x8c90('0x7'));var util=require(_0x8c90('0x8'));var path=require(_0x8c90('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x8c90('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x8c90('0xb'));var jsforce=require(_0x8c90('0xc'));var deskjs=require(_0x8c90('0xd'));var toCsv=require(_0x8c90('0xe'));var querystring=require(_0x8c90('0xf'));var Papa=require(_0x8c90('0x10'));var Redis=require(_0x8c90('0x11'));var authService=require(_0x8c90('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x8c90('0x13'));var hardwareService=require(_0x8c90('0x14'));var logger=require('../../config/logger')(_0x8c90('0x15'));var utils=require('../../config/utils');var config=require(_0x8c90('0x16'));var licenseUtil=require(_0x8c90('0x17'));var db=require(_0x8c90('0x18'))['db'];function respondWithStatusCode(_0xfd39fe,_0x5e5f63){_0x5e5f63=_0x5e5f63||0xcc;return function(_0x3ce04b){if(_0x3ce04b){return _0xfd39fe[_0x8c90('0x19')](_0x5e5f63);}return _0xfd39fe['status'](_0x5e5f63)[_0x8c90('0x1a')]();};}function respondWithResult(_0x4ce50f,_0x21a3b3){_0x21a3b3=_0x21a3b3||0xc8;return function(_0x1365fe){if(_0x1365fe){return _0x4ce50f[_0x8c90('0x1b')](_0x21a3b3)['json'](_0x1365fe);}};}function respondWithFilteredResult(_0x293f23,_0x43476c){return function(_0x255c92){if(_0x255c92){var _0x4380eb=typeof _0x43476c['offset']===_0x8c90('0x1c')&&typeof _0x43476c[_0x8c90('0x1d')]===_0x8c90('0x1c');var _0x33b020=_0x255c92[_0x8c90('0x1e')];var _0xa35ab8=_0x4380eb?0x0:_0x43476c['offset'];var _0x5bec49=_0x4380eb?_0x255c92[_0x8c90('0x1e')]:_0x43476c[_0x8c90('0x1f')]+_0x43476c['limit'];var _0x3dbf3d;if(_0x5bec49>=_0x33b020){_0x5bec49=_0x33b020;_0x3dbf3d=0xc8;}else{_0x3dbf3d=0xce;}_0x293f23['status'](_0x3dbf3d);return _0x293f23[_0x8c90('0x20')](_0x8c90('0x21'),_0xa35ab8+'-'+_0x5bec49+'/'+_0x33b020)[_0x8c90('0x22')](_0x255c92);}return null;};}function patchUpdates(_0x529376){return function(_0x55018f){try{jsonpatch[_0x8c90('0x23')](_0x55018f,_0x529376,!![]);}catch(_0x5195c5){return BPromise[_0x8c90('0x24')](_0x5195c5);}return _0x55018f[_0x8c90('0x25')]();};}function saveUpdates(_0x166a31,_0x53ed36){return function(_0x578e8d){if(_0x578e8d){return _0x578e8d[_0x8c90('0x26')](_0x166a31)[_0x8c90('0x27')](function(_0x252cd1){return _0x252cd1;});}return null;};}function removeEntity(_0x41b895,_0x4faedf){return function(_0x22e89b){if(_0x22e89b){return _0x22e89b[_0x8c90('0x28')]()[_0x8c90('0x27')](function(){_0x41b895[_0x8c90('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x6e39e9,_0x473bb0){return function(_0x56af21){if(!_0x56af21){_0x6e39e9[_0x8c90('0x19')](0x194);}return _0x56af21;};}function handleError(_0x1b1894,_0x21dbed){_0x21dbed=_0x21dbed||0x1f4;return function(_0xd5a000){logger['error'](_0xd5a000['stack']);if(_0xd5a000['name']){delete _0xd5a000[_0x8c90('0x29')];}_0x1b1894['status'](_0x21dbed)[_0x8c90('0x2a')](_0xd5a000);};}exports[_0x8c90('0x2b')]=function(_0x9475ce,_0x1df903){var _0x27b874={},_0x2eab05={},_0x7b3e63={'count':0x0,'rows':[]};var _0x3203a=_[_0x8c90('0x2c')](db[_0x8c90('0x2d')]['rawAttributes'],function(_0xeac18d){return{'name':_0xeac18d[_0x8c90('0x2e')],'type':_0xeac18d['type'][_0x8c90('0x2f')]};});_0x2eab05[_0x8c90('0x30')]=_['map'](_0x3203a,'name');_0x2eab05[_0x8c90('0x31')]=_[_0x8c90('0x32')](_0x9475ce[_0x8c90('0x31')]);_0x2eab05['filters']=_[_0x8c90('0x33')](_0x2eab05['model'],_0x2eab05[_0x8c90('0x31')]);_0x27b874[_0x8c90('0x34')]=_[_0x8c90('0x33')](_0x2eab05[_0x8c90('0x30')],qs[_0x8c90('0x35')](_0x9475ce[_0x8c90('0x31')][_0x8c90('0x35')]));_0x27b874['attributes']=_0x27b874[_0x8c90('0x34')][_0x8c90('0x36')]?_0x27b874[_0x8c90('0x34')]:_0x2eab05['model'];if(!_0x9475ce[_0x8c90('0x31')][_0x8c90('0x37')]('nolimit')){_0x27b874[_0x8c90('0x1d')]=qs[_0x8c90('0x1d')](_0x9475ce[_0x8c90('0x31')][_0x8c90('0x1d')]);_0x27b874[_0x8c90('0x1f')]=qs[_0x8c90('0x1f')](_0x9475ce['query'][_0x8c90('0x1f')]);}_0x27b874[_0x8c90('0x38')]=qs[_0x8c90('0x39')](_0x9475ce[_0x8c90('0x31')][_0x8c90('0x39')]);_0x27b874[_0x8c90('0x3a')]=qs[_0x8c90('0x3b')](_[_0x8c90('0x3c')](_0x9475ce[_0x8c90('0x31')],_0x2eab05['filters']),_0x3203a);if(_0x9475ce[_0x8c90('0x31')][_0x8c90('0x3d')]){_0x27b874[_0x8c90('0x3a')]=_['merge'](_0x27b874[_0x8c90('0x3a')],{'$or':_[_0x8c90('0x2c')](_0x3203a,function(_0x41e927){if(_0x41e927['type']!==_0x8c90('0x3e')){var _0x56416f={};_0x56416f[_0x41e927[_0x8c90('0x29')]]={'$like':'%'+_0x9475ce[_0x8c90('0x31')]['filter']+'%'};return _0x56416f;}})});}_0x27b874=_[_0x8c90('0x3f')]({},_0x27b874,_0x9475ce[_0x8c90('0x40')]);var _0x277ba0={'where':_0x27b874[_0x8c90('0x3a')]};return db[_0x8c90('0x2d')]['count'](_0x277ba0)[_0x8c90('0x27')](function(_0x11c586){_0x7b3e63[_0x8c90('0x1e')]=_0x11c586;if(_0x9475ce[_0x8c90('0x31')]['includeAll']){_0x27b874['include']=[{'all':!![]}];}return db[_0x8c90('0x2d')][_0x8c90('0x41')](_0x27b874);})[_0x8c90('0x27')](function(_0x2cf14b){_0x7b3e63['rows']=_0x2cf14b;return _0x7b3e63;})[_0x8c90('0x27')](respondWithFilteredResult(_0x1df903,_0x27b874))[_0x8c90('0x42')](handleError(_0x1df903,null));};exports[_0x8c90('0x43')]=function(_0x1cacd7,_0x2b93d9){var _0x155c44={'raw':![],'where':{'id':_0x1cacd7[_0x8c90('0x44')]['id']}},_0x4709ab={};_0x4709ab[_0x8c90('0x30')]=_['keys'](db[_0x8c90('0x2d')][_0x8c90('0x45')]);_0x4709ab[_0x8c90('0x31')]=_['keys'](_0x1cacd7['query']);_0x4709ab['filters']=_[_0x8c90('0x33')](_0x4709ab[_0x8c90('0x30')],_0x4709ab[_0x8c90('0x31')]);_0x155c44[_0x8c90('0x34')]=_[_0x8c90('0x33')](_0x4709ab[_0x8c90('0x30')],qs[_0x8c90('0x35')](_0x1cacd7[_0x8c90('0x31')][_0x8c90('0x35')]));_0x155c44[_0x8c90('0x34')]=_0x155c44['attributes'][_0x8c90('0x36')]?_0x155c44['attributes']:_0x4709ab[_0x8c90('0x30')];if(_0x1cacd7['query'][_0x8c90('0x46')]){_0x155c44[_0x8c90('0x47')]=[{'all':!![]}];}_0x155c44=_[_0x8c90('0x3f')]({},_0x155c44,_0x1cacd7[_0x8c90('0x40')]);return db[_0x8c90('0x2d')][_0x8c90('0x48')](_0x155c44)[_0x8c90('0x27')](handleEntityNotFound(_0x2b93d9,null))['then'](respondWithResult(_0x2b93d9,null))[_0x8c90('0x42')](handleError(_0x2b93d9,null));};exports[_0x8c90('0x49')]=function(_0x5a4bae,_0x148182){return db[_0x8c90('0x2d')]['create'](_0x5a4bae[_0x8c90('0x4a')],{})[_0x8c90('0x27')](respondWithResult(_0x148182,0xc9))['catch'](handleError(_0x148182,null));};exports[_0x8c90('0x26')]=function(_0x4771c6,_0x1ff3a3){if(_0x4771c6[_0x8c90('0x4a')]['id']){delete _0x4771c6[_0x8c90('0x4a')]['id'];}return db[_0x8c90('0x2d')][_0x8c90('0x48')]({'where':{'id':_0x4771c6[_0x8c90('0x44')]['id']}})[_0x8c90('0x27')](handleEntityNotFound(_0x1ff3a3,null))[_0x8c90('0x27')](saveUpdates(_0x4771c6['body'],null))[_0x8c90('0x27')](respondWithResult(_0x1ff3a3,null))[_0x8c90('0x42')](handleError(_0x1ff3a3,null));};exports[_0x8c90('0x28')]=function(_0x114338,_0x34053d){return db[_0x8c90('0x2d')][_0x8c90('0x48')]({'where':{'id':_0x114338[_0x8c90('0x44')]['id']}})[_0x8c90('0x27')](handleEntityNotFound(_0x34053d,null))['then'](removeEntity(_0x34053d,null))[_0x8c90('0x42')](handleError(_0x34053d,null));};exports[_0x8c90('0x4b')]=function(_0x134108,_0x628832,_0x2a376d){var _0x41bfd4={};var _0x5522da={};var _0x5d89a8;var _0x403a02;return db['Dynamics365Configuration'][_0x8c90('0x4c')]({'where':{'id':_0x134108['params']['id']}})[_0x8c90('0x27')](handleEntityNotFound(_0x628832,null))['then'](function(_0x3ad710){if(_0x3ad710){_0x5d89a8=_0x3ad710;_0x5522da[_0x8c90('0x30')]=_[_0x8c90('0x32')](db[_0x8c90('0x4d')]['rawAttributes']);_0x5522da[_0x8c90('0x31')]=_['keys'](_0x134108[_0x8c90('0x31')]);_0x5522da['filters']=_[_0x8c90('0x33')](_0x5522da[_0x8c90('0x30')],_0x5522da[_0x8c90('0x31')]);_0x41bfd4[_0x8c90('0x34')]=_['intersection'](_0x5522da['model'],qs[_0x8c90('0x35')](_0x134108[_0x8c90('0x31')][_0x8c90('0x35')]));_0x41bfd4[_0x8c90('0x34')]=_0x41bfd4[_0x8c90('0x34')][_0x8c90('0x36')]?_0x41bfd4['attributes']:_0x5522da['model'];_0x41bfd4['order']=qs[_0x8c90('0x39')](_0x134108[_0x8c90('0x31')][_0x8c90('0x39')]);_0x41bfd4[_0x8c90('0x3a')]=qs[_0x8c90('0x3b')](_[_0x8c90('0x3c')](_0x134108[_0x8c90('0x31')],_0x5522da[_0x8c90('0x3b')]));if(_0x134108[_0x8c90('0x31')][_0x8c90('0x3d')]){_0x41bfd4[_0x8c90('0x3a')]=_[_0x8c90('0x3f')](_0x41bfd4[_0x8c90('0x3a')],{'$or':_[_0x8c90('0x2c')](_0x41bfd4[_0x8c90('0x34')],function(_0x242b63){var _0x2087db={};_0x2087db[_0x242b63]={'$like':'%'+_0x134108[_0x8c90('0x31')][_0x8c90('0x3d')]+'%'};return _0x2087db;})});}_0x41bfd4=_[_0x8c90('0x3f')]({},_0x41bfd4,_0x134108[_0x8c90('0x40')]);return _0x5d89a8['getFields'](_0x41bfd4);}})['then'](function(_0x2183b6){if(_0x2183b6){_0x403a02=_0x2183b6[_0x8c90('0x36')];if(!_0x134108[_0x8c90('0x31')]['hasOwnProperty']('nolimit')){_0x41bfd4[_0x8c90('0x1d')]=qs['limit'](_0x134108[_0x8c90('0x31')][_0x8c90('0x1d')]);_0x41bfd4[_0x8c90('0x1f')]=qs[_0x8c90('0x1f')](_0x134108[_0x8c90('0x31')][_0x8c90('0x1f')]);}return _0x5d89a8[_0x8c90('0x4b')](_0x41bfd4);}})[_0x8c90('0x27')](function(_0x535677){if(_0x535677){return _0x535677?{'count':_0x403a02,'rows':_0x535677}:null;}})['then'](respondWithResult(_0x628832,null))[_0x8c90('0x42')](handleError(_0x628832,null));};exports[_0x8c90('0x4e')]=function(_0x1d243a,_0xf57805,_0x57250f){var _0x29b03c={};var _0x4bf813={};var _0x588489;var _0x540c0d;return db[_0x8c90('0x2d')][_0x8c90('0x4c')]({'where':{'id':_0x1d243a[_0x8c90('0x44')]['id']}})[_0x8c90('0x27')](handleEntityNotFound(_0xf57805,null))[_0x8c90('0x27')](function(_0xafc429){if(_0xafc429){_0x588489=_0xafc429;_0x4bf813[_0x8c90('0x30')]=_[_0x8c90('0x32')](db[_0x8c90('0x4d')]['rawAttributes']);_0x4bf813['query']=_[_0x8c90('0x32')](_0x1d243a['query']);_0x4bf813[_0x8c90('0x3b')]=_[_0x8c90('0x33')](_0x4bf813[_0x8c90('0x30')],_0x4bf813[_0x8c90('0x31')]);_0x29b03c[_0x8c90('0x34')]=_[_0x8c90('0x33')](_0x4bf813[_0x8c90('0x30')],qs[_0x8c90('0x35')](_0x1d243a[_0x8c90('0x31')][_0x8c90('0x35')]));_0x29b03c['attributes']=_0x29b03c[_0x8c90('0x34')][_0x8c90('0x36')]?_0x29b03c[_0x8c90('0x34')]:_0x4bf813['model'];_0x29b03c[_0x8c90('0x38')]=qs[_0x8c90('0x39')](_0x1d243a['query']['sort']);_0x29b03c['where']=qs[_0x8c90('0x3b')](_[_0x8c90('0x3c')](_0x1d243a[_0x8c90('0x31')],_0x4bf813[_0x8c90('0x3b')]));if(_0x1d243a['query'][_0x8c90('0x3d')]){_0x29b03c[_0x8c90('0x3a')]=_[_0x8c90('0x3f')](_0x29b03c[_0x8c90('0x3a')],{'$or':_['map'](_0x29b03c[_0x8c90('0x34')],function(_0x1f6536){var _0x41c8cb={};_0x41c8cb[_0x1f6536]={'$like':'%'+_0x1d243a[_0x8c90('0x31')][_0x8c90('0x3d')]+'%'};return _0x41c8cb;})});}_0x29b03c=_['merge']({},_0x29b03c,_0x1d243a[_0x8c90('0x40')]);return _0x588489['getSubjects'](_0x29b03c);}})[_0x8c90('0x27')](function(_0x38c3e9){if(_0x38c3e9){_0x540c0d=_0x38c3e9[_0x8c90('0x36')];if(!_0x1d243a[_0x8c90('0x31')][_0x8c90('0x37')](_0x8c90('0x4f'))){_0x29b03c[_0x8c90('0x1d')]=qs[_0x8c90('0x1d')](_0x1d243a[_0x8c90('0x31')][_0x8c90('0x1d')]);_0x29b03c[_0x8c90('0x1f')]=qs[_0x8c90('0x1f')](_0x1d243a['query']['offset']);}return _0x588489[_0x8c90('0x4e')](_0x29b03c);}})[_0x8c90('0x27')](function(_0x1e886b){if(_0x1e886b){return _0x1e886b?{'count':_0x540c0d,'rows':_0x1e886b}:null;}})[_0x8c90('0x27')](respondWithResult(_0xf57805,null))[_0x8c90('0x42')](handleError(_0xf57805,null));};exports['getDescriptions']=function(_0x5242cc,_0x5a2dc6,_0xa8d459){var _0x5e6981={};var _0x1242a9={};var _0x1a3aca;var _0x2dca72;return db[_0x8c90('0x2d')][_0x8c90('0x4c')]({'where':{'id':_0x5242cc['params']['id']}})[_0x8c90('0x27')](handleEntityNotFound(_0x5a2dc6,null))[_0x8c90('0x27')](function(_0x41219a){if(_0x41219a){_0x1a3aca=_0x41219a;_0x1242a9['model']=_[_0x8c90('0x32')](db['Dynamics365Field'][_0x8c90('0x45')]);_0x1242a9[_0x8c90('0x31')]=_['keys'](_0x5242cc[_0x8c90('0x31')]);_0x1242a9['filters']=_['intersection'](_0x1242a9[_0x8c90('0x30')],_0x1242a9[_0x8c90('0x31')]);_0x5e6981[_0x8c90('0x34')]=_[_0x8c90('0x33')](_0x1242a9[_0x8c90('0x30')],qs['fields'](_0x5242cc[_0x8c90('0x31')][_0x8c90('0x35')]));_0x5e6981[_0x8c90('0x34')]=_0x5e6981[_0x8c90('0x34')][_0x8c90('0x36')]?_0x5e6981[_0x8c90('0x34')]:_0x1242a9[_0x8c90('0x30')];_0x5e6981[_0x8c90('0x38')]=qs[_0x8c90('0x39')](_0x5242cc[_0x8c90('0x31')][_0x8c90('0x39')]);_0x5e6981[_0x8c90('0x3a')]=qs[_0x8c90('0x3b')](_[_0x8c90('0x3c')](_0x5242cc['query'],_0x1242a9['filters']));if(_0x5242cc[_0x8c90('0x31')][_0x8c90('0x3d')]){_0x5e6981[_0x8c90('0x3a')]=_['merge'](_0x5e6981['where'],{'$or':_[_0x8c90('0x2c')](_0x5e6981[_0x8c90('0x34')],function(_0x1fad3b){var _0x9bff50={};_0x9bff50[_0x1fad3b]={'$like':'%'+_0x5242cc[_0x8c90('0x31')][_0x8c90('0x3d')]+'%'};return _0x9bff50;})});}_0x5e6981=_[_0x8c90('0x3f')]({},_0x5e6981,_0x5242cc[_0x8c90('0x40')]);return _0x1a3aca[_0x8c90('0x50')](_0x5e6981);}})[_0x8c90('0x27')](function(_0x268b81){if(_0x268b81){_0x2dca72=_0x268b81[_0x8c90('0x36')];if(!_0x5242cc[_0x8c90('0x31')][_0x8c90('0x37')](_0x8c90('0x4f'))){_0x5e6981[_0x8c90('0x1d')]=qs[_0x8c90('0x1d')](_0x5242cc[_0x8c90('0x31')][_0x8c90('0x1d')]);_0x5e6981[_0x8c90('0x1f')]=qs[_0x8c90('0x1f')](_0x5242cc[_0x8c90('0x31')]['offset']);}return _0x1a3aca[_0x8c90('0x50')](_0x5e6981);}})[_0x8c90('0x27')](function(_0x13f022){if(_0x13f022){return _0x13f022?{'count':_0x2dca72,'rows':_0x13f022}:null;}})[_0x8c90('0x27')](respondWithResult(_0x5a2dc6,null))[_0x8c90('0x42')](handleError(_0x5a2dc6,null));};