Built motion from commit 0900f080.|2.5.45
[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 _0x7722=['VIRTUAL','includeAll','include','findAll','rows','show','params','length','options','find','catch','create','body','getFields','Dynamics365Field','nolimit','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','undefined','limit','count','offset','set','Content-Range','json','apply','reject','save','update','then','destroy','error','name','send','index','map','Dynamics365Configuration','rawAttributes','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','pick','filter','merge','type'];(function(_0x5a9c0c,_0x4ec485){var _0x53c77d=function(_0x1cf384){while(--_0x1cf384){_0x5a9c0c['push'](_0x5a9c0c['shift']());}};_0x53c77d(++_0x4ec485);}(_0x7722,0x10b));var _0x2772=function(_0x114fd0,_0x36d30f){_0x114fd0=_0x114fd0-0x0;var _0x533de2=_0x7722[_0x114fd0];return _0x533de2;};'use strict';var emlformat=require(_0x2772('0x0'));var rimraf=require(_0x2772('0x1'));var zipdir=require(_0x2772('0x2'));var jsonpatch=require(_0x2772('0x3'));var rp=require(_0x2772('0x4'));var moment=require('moment');var BPromise=require(_0x2772('0x5'));var Mustache=require('mustache');var util=require(_0x2772('0x6'));var path=require(_0x2772('0x7'));var sox=require(_0x2772('0x8'));var csv=require(_0x2772('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x2772('0xa'));var _=require(_0x2772('0xb'));var squel=require(_0x2772('0xc'));var crypto=require(_0x2772('0xd'));var jsforce=require(_0x2772('0xe'));var deskjs=require(_0x2772('0xf'));var toCsv=require(_0x2772('0x9'));var querystring=require('querystring');var Papa=require(_0x2772('0x10'));var Redis=require(_0x2772('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x2772('0x12'));var as=require(_0x2772('0x13'));var hardwareService=require(_0x2772('0x14'));var logger=require(_0x2772('0x15'))('api');var utils=require(_0x2772('0x16'));var config=require(_0x2772('0x17'));var licenseUtil=require(_0x2772('0x18'));var db=require(_0x2772('0x19'))['db'];function respondWithStatusCode(_0x2590cf,_0x5b50d7){_0x5b50d7=_0x5b50d7||0xcc;return function(_0x4ad8a7){if(_0x4ad8a7){return _0x2590cf[_0x2772('0x1a')](_0x5b50d7);}return _0x2590cf[_0x2772('0x1b')](_0x5b50d7)[_0x2772('0x1c')]();};}function respondWithResult(_0x5e8c03,_0x32d246){_0x32d246=_0x32d246||0xc8;return function(_0x2746d0){if(_0x2746d0){return _0x5e8c03[_0x2772('0x1b')](_0x32d246)['json'](_0x2746d0);}};}function respondWithFilteredResult(_0x50f702,_0x5e012e){return function(_0x185e4a){if(_0x185e4a){var _0x287fa3=typeof _0x5e012e['offset']===_0x2772('0x1d')&&typeof _0x5e012e[_0x2772('0x1e')]===_0x2772('0x1d');var _0x50f07c=_0x185e4a[_0x2772('0x1f')];var _0x54c8fc=_0x287fa3?0x0:_0x5e012e[_0x2772('0x20')];var _0x41fac5=_0x287fa3?_0x185e4a['count']:_0x5e012e[_0x2772('0x20')]+_0x5e012e[_0x2772('0x1e')];var _0x43d166;if(_0x41fac5>=_0x50f07c){_0x41fac5=_0x50f07c;_0x43d166=0xc8;}else{_0x43d166=0xce;}_0x50f702[_0x2772('0x1b')](_0x43d166);return _0x50f702[_0x2772('0x21')](_0x2772('0x22'),_0x54c8fc+'-'+_0x41fac5+'/'+_0x50f07c)[_0x2772('0x23')](_0x185e4a);}return null;};}function patchUpdates(_0x33b5f0){return function(_0x28db54){try{jsonpatch[_0x2772('0x24')](_0x28db54,_0x33b5f0,!![]);}catch(_0x41ed5f){return BPromise[_0x2772('0x25')](_0x41ed5f);}return _0x28db54[_0x2772('0x26')]();};}function saveUpdates(_0x206ac9,_0x1098b4){return function(_0x2c61b2){if(_0x2c61b2){return _0x2c61b2[_0x2772('0x27')](_0x206ac9)[_0x2772('0x28')](function(_0x9c8046){return _0x9c8046;});}return null;};}function removeEntity(_0x1506d9,_0x473660){return function(_0x4f1472){if(_0x4f1472){return _0x4f1472[_0x2772('0x29')]()[_0x2772('0x28')](function(){_0x1506d9[_0x2772('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4f8011,_0x3017ae){return function(_0x3dd559){if(!_0x3dd559){_0x4f8011['sendStatus'](0x194);}return _0x3dd559;};}function handleError(_0x3037df,_0x221a41){_0x221a41=_0x221a41||0x1f4;return function(_0x4fd23e){logger[_0x2772('0x2a')](_0x4fd23e['stack']);if(_0x4fd23e[_0x2772('0x2b')]){delete _0x4fd23e[_0x2772('0x2b')];}_0x3037df[_0x2772('0x1b')](_0x221a41)[_0x2772('0x2c')](_0x4fd23e);};}exports[_0x2772('0x2d')]=function(_0x348b39,_0x10e1d9){var _0x48e932={},_0x11ca74={},_0xff8309={'count':0x0,'rows':[]};var _0x4f13b7=_[_0x2772('0x2e')](db[_0x2772('0x2f')][_0x2772('0x30')],function(_0x4fa63d){return{'name':_0x4fa63d['fieldName'],'type':_0x4fa63d['type'][_0x2772('0x31')]};});_0x11ca74[_0x2772('0x32')]=_[_0x2772('0x2e')](_0x4f13b7,_0x2772('0x2b'));_0x11ca74[_0x2772('0x33')]=_[_0x2772('0x34')](_0x348b39['query']);_0x11ca74[_0x2772('0x35')]=_[_0x2772('0x36')](_0x11ca74['model'],_0x11ca74[_0x2772('0x33')]);_0x48e932[_0x2772('0x37')]=_['intersection'](_0x11ca74[_0x2772('0x32')],qs[_0x2772('0x38')](_0x348b39[_0x2772('0x33')][_0x2772('0x38')]));_0x48e932[_0x2772('0x37')]=_0x48e932[_0x2772('0x37')]['length']?_0x48e932[_0x2772('0x37')]:_0x11ca74[_0x2772('0x32')];if(!_0x348b39[_0x2772('0x33')][_0x2772('0x39')]('nolimit')){_0x48e932[_0x2772('0x1e')]=qs[_0x2772('0x1e')](_0x348b39[_0x2772('0x33')][_0x2772('0x1e')]);_0x48e932[_0x2772('0x20')]=qs['offset'](_0x348b39[_0x2772('0x33')]['offset']);}_0x48e932[_0x2772('0x3a')]=qs[_0x2772('0x3b')](_0x348b39[_0x2772('0x33')][_0x2772('0x3b')]);_0x48e932[_0x2772('0x3c')]=qs[_0x2772('0x35')](_[_0x2772('0x3d')](_0x348b39['query'],_0x11ca74[_0x2772('0x35')]),_0x4f13b7);if(_0x348b39[_0x2772('0x33')][_0x2772('0x3e')]){_0x48e932['where']=_[_0x2772('0x3f')](_0x48e932[_0x2772('0x3c')],{'$or':_['map'](_0x4f13b7,function(_0x444c04){if(_0x444c04[_0x2772('0x40')]!==_0x2772('0x41')){var _0x4a5ae6={};_0x4a5ae6[_0x444c04['name']]={'$like':'%'+_0x348b39['query'][_0x2772('0x3e')]+'%'};return _0x4a5ae6;}})});}_0x48e932=_[_0x2772('0x3f')]({},_0x48e932,_0x348b39['options']);var _0xb3da7={'where':_0x48e932[_0x2772('0x3c')]};return db[_0x2772('0x2f')]['count'](_0xb3da7)[_0x2772('0x28')](function(_0x3feaf2){_0xff8309[_0x2772('0x1f')]=_0x3feaf2;if(_0x348b39[_0x2772('0x33')][_0x2772('0x42')]){_0x48e932[_0x2772('0x43')]=[{'all':!![]}];}return db[_0x2772('0x2f')][_0x2772('0x44')](_0x48e932);})[_0x2772('0x28')](function(_0x430088){_0xff8309[_0x2772('0x45')]=_0x430088;return _0xff8309;})[_0x2772('0x28')](respondWithFilteredResult(_0x10e1d9,_0x48e932))['catch'](handleError(_0x10e1d9,null));};exports[_0x2772('0x46')]=function(_0x200c41,_0x548ccd){var _0x13da35={'raw':![],'where':{'id':_0x200c41[_0x2772('0x47')]['id']}},_0x274f07={};_0x274f07['model']=_[_0x2772('0x34')](db[_0x2772('0x2f')][_0x2772('0x30')]);_0x274f07[_0x2772('0x33')]=_[_0x2772('0x34')](_0x200c41[_0x2772('0x33')]);_0x274f07[_0x2772('0x35')]=_['intersection'](_0x274f07[_0x2772('0x32')],_0x274f07[_0x2772('0x33')]);_0x13da35[_0x2772('0x37')]=_[_0x2772('0x36')](_0x274f07[_0x2772('0x32')],qs['fields'](_0x200c41['query'][_0x2772('0x38')]));_0x13da35['attributes']=_0x13da35[_0x2772('0x37')][_0x2772('0x48')]?_0x13da35[_0x2772('0x37')]:_0x274f07[_0x2772('0x32')];if(_0x200c41[_0x2772('0x33')][_0x2772('0x42')]){_0x13da35[_0x2772('0x43')]=[{'all':!![]}];}_0x13da35=_[_0x2772('0x3f')]({},_0x13da35,_0x200c41[_0x2772('0x49')]);return db[_0x2772('0x2f')][_0x2772('0x4a')](_0x13da35)[_0x2772('0x28')](handleEntityNotFound(_0x548ccd,null))['then'](respondWithResult(_0x548ccd,null))[_0x2772('0x4b')](handleError(_0x548ccd,null));};exports[_0x2772('0x4c')]=function(_0x477633,_0x18b3df){return db[_0x2772('0x2f')][_0x2772('0x4c')](_0x477633[_0x2772('0x4d')],{})[_0x2772('0x28')](respondWithResult(_0x18b3df,0xc9))[_0x2772('0x4b')](handleError(_0x18b3df,null));};exports[_0x2772('0x27')]=function(_0x4d04f1,_0x54d017){if(_0x4d04f1[_0x2772('0x4d')]['id']){delete _0x4d04f1[_0x2772('0x4d')]['id'];}return db[_0x2772('0x2f')][_0x2772('0x4a')]({'where':{'id':_0x4d04f1[_0x2772('0x47')]['id']}})[_0x2772('0x28')](handleEntityNotFound(_0x54d017,null))[_0x2772('0x28')](saveUpdates(_0x4d04f1['body'],null))[_0x2772('0x28')](respondWithResult(_0x54d017,null))[_0x2772('0x4b')](handleError(_0x54d017,null));};exports[_0x2772('0x29')]=function(_0x2ac1e4,_0x2f4da1){return db['Dynamics365Configuration']['find']({'where':{'id':_0x2ac1e4[_0x2772('0x47')]['id']}})['then'](handleEntityNotFound(_0x2f4da1,null))[_0x2772('0x28')](removeEntity(_0x2f4da1,null))[_0x2772('0x4b')](handleError(_0x2f4da1,null));};exports[_0x2772('0x4e')]=function(_0x3e9e61,_0x2c938c,_0x4c5485){var _0x44fbe6={};var _0x19e96d={};var _0x205667;var _0xc50032;return db[_0x2772('0x2f')]['findOne']({'where':{'id':_0x3e9e61[_0x2772('0x47')]['id']}})[_0x2772('0x28')](handleEntityNotFound(_0x2c938c,null))[_0x2772('0x28')](function(_0xba631a){if(_0xba631a){_0x205667=_0xba631a;_0x19e96d['model']=_[_0x2772('0x34')](db[_0x2772('0x4f')][_0x2772('0x30')]);_0x19e96d[_0x2772('0x33')]=_[_0x2772('0x34')](_0x3e9e61[_0x2772('0x33')]);_0x19e96d[_0x2772('0x35')]=_[_0x2772('0x36')](_0x19e96d[_0x2772('0x32')],_0x19e96d['query']);_0x44fbe6[_0x2772('0x37')]=_[_0x2772('0x36')](_0x19e96d[_0x2772('0x32')],qs[_0x2772('0x38')](_0x3e9e61['query'][_0x2772('0x38')]));_0x44fbe6['attributes']=_0x44fbe6[_0x2772('0x37')][_0x2772('0x48')]?_0x44fbe6[_0x2772('0x37')]:_0x19e96d[_0x2772('0x32')];_0x44fbe6[_0x2772('0x3a')]=qs['sort'](_0x3e9e61[_0x2772('0x33')][_0x2772('0x3b')]);_0x44fbe6[_0x2772('0x3c')]=qs[_0x2772('0x35')](_[_0x2772('0x3d')](_0x3e9e61[_0x2772('0x33')],_0x19e96d[_0x2772('0x35')]));if(_0x3e9e61[_0x2772('0x33')][_0x2772('0x3e')]){_0x44fbe6['where']=_[_0x2772('0x3f')](_0x44fbe6[_0x2772('0x3c')],{'$or':_[_0x2772('0x2e')](_0x44fbe6[_0x2772('0x37')],function(_0x5c01cd){var _0x324915={};_0x324915[_0x5c01cd]={'$like':'%'+_0x3e9e61[_0x2772('0x33')][_0x2772('0x3e')]+'%'};return _0x324915;})});}_0x44fbe6=_['merge']({},_0x44fbe6,_0x3e9e61[_0x2772('0x49')]);return _0x205667['getFields'](_0x44fbe6);}})[_0x2772('0x28')](function(_0x5d07ae){if(_0x5d07ae){_0xc50032=_0x5d07ae[_0x2772('0x48')];if(!_0x3e9e61['query'][_0x2772('0x39')](_0x2772('0x50'))){_0x44fbe6[_0x2772('0x1e')]=qs[_0x2772('0x1e')](_0x3e9e61['query'][_0x2772('0x1e')]);_0x44fbe6['offset']=qs[_0x2772('0x20')](_0x3e9e61[_0x2772('0x33')]['offset']);}return _0x205667[_0x2772('0x4e')](_0x44fbe6);}})[_0x2772('0x28')](function(_0x3f0af4){if(_0x3f0af4){return _0x3f0af4?{'count':_0xc50032,'rows':_0x3f0af4}:null;}})[_0x2772('0x28')](respondWithResult(_0x2c938c,null))['catch'](handleError(_0x2c938c,null));};exports['getSubjects']=function(_0x4d434c,_0x439177,_0x2621fb){var _0x5bc570={};var _0x5a41d6={};var _0x2c2eba;var _0x2ca302;return db[_0x2772('0x2f')]['findOne']({'where':{'id':_0x4d434c[_0x2772('0x47')]['id']}})['then'](handleEntityNotFound(_0x439177,null))[_0x2772('0x28')](function(_0xd5ec66){if(_0xd5ec66){_0x2c2eba=_0xd5ec66;_0x5a41d6[_0x2772('0x32')]=_['keys'](db[_0x2772('0x4f')][_0x2772('0x30')]);_0x5a41d6[_0x2772('0x33')]=_[_0x2772('0x34')](_0x4d434c[_0x2772('0x33')]);_0x5a41d6[_0x2772('0x35')]=_[_0x2772('0x36')](_0x5a41d6[_0x2772('0x32')],_0x5a41d6[_0x2772('0x33')]);_0x5bc570[_0x2772('0x37')]=_[_0x2772('0x36')](_0x5a41d6[_0x2772('0x32')],qs[_0x2772('0x38')](_0x4d434c[_0x2772('0x33')]['fields']));_0x5bc570['attributes']=_0x5bc570[_0x2772('0x37')][_0x2772('0x48')]?_0x5bc570[_0x2772('0x37')]:_0x5a41d6[_0x2772('0x32')];_0x5bc570[_0x2772('0x3a')]=qs[_0x2772('0x3b')](_0x4d434c[_0x2772('0x33')][_0x2772('0x3b')]);_0x5bc570[_0x2772('0x3c')]=qs[_0x2772('0x35')](_[_0x2772('0x3d')](_0x4d434c[_0x2772('0x33')],_0x5a41d6[_0x2772('0x35')]));if(_0x4d434c[_0x2772('0x33')][_0x2772('0x3e')]){_0x5bc570[_0x2772('0x3c')]=_[_0x2772('0x3f')](_0x5bc570[_0x2772('0x3c')],{'$or':_['map'](_0x5bc570[_0x2772('0x37')],function(_0x298e26){var _0x18101c={};_0x18101c[_0x298e26]={'$like':'%'+_0x4d434c[_0x2772('0x33')][_0x2772('0x3e')]+'%'};return _0x18101c;})});}_0x5bc570=_[_0x2772('0x3f')]({},_0x5bc570,_0x4d434c['options']);return _0x2c2eba[_0x2772('0x51')](_0x5bc570);}})[_0x2772('0x28')](function(_0x1ff1c4){if(_0x1ff1c4){_0x2ca302=_0x1ff1c4[_0x2772('0x48')];if(!_0x4d434c['query'][_0x2772('0x39')](_0x2772('0x50'))){_0x5bc570[_0x2772('0x1e')]=qs[_0x2772('0x1e')](_0x4d434c['query'][_0x2772('0x1e')]);_0x5bc570['offset']=qs[_0x2772('0x20')](_0x4d434c[_0x2772('0x33')]['offset']);}return _0x2c2eba[_0x2772('0x51')](_0x5bc570);}})[_0x2772('0x28')](function(_0x1638e4){if(_0x1638e4){return _0x1638e4?{'count':_0x2ca302,'rows':_0x1638e4}:null;}})['then'](respondWithResult(_0x439177,null))['catch'](handleError(_0x439177,null));};exports[_0x2772('0x52')]=function(_0x4b9768,_0x337e18,_0x451a07){var _0x59aa0e={};var _0x52f231={};var _0x387b66;var _0x3490a8;return db[_0x2772('0x2f')]['findOne']({'where':{'id':_0x4b9768[_0x2772('0x47')]['id']}})[_0x2772('0x28')](handleEntityNotFound(_0x337e18,null))[_0x2772('0x28')](function(_0x2a2cac){if(_0x2a2cac){_0x387b66=_0x2a2cac;_0x52f231[_0x2772('0x32')]=_[_0x2772('0x34')](db[_0x2772('0x4f')][_0x2772('0x30')]);_0x52f231[_0x2772('0x33')]=_[_0x2772('0x34')](_0x4b9768[_0x2772('0x33')]);_0x52f231[_0x2772('0x35')]=_[_0x2772('0x36')](_0x52f231['model'],_0x52f231[_0x2772('0x33')]);_0x59aa0e[_0x2772('0x37')]=_[_0x2772('0x36')](_0x52f231[_0x2772('0x32')],qs[_0x2772('0x38')](_0x4b9768[_0x2772('0x33')][_0x2772('0x38')]));_0x59aa0e[_0x2772('0x37')]=_0x59aa0e[_0x2772('0x37')][_0x2772('0x48')]?_0x59aa0e[_0x2772('0x37')]:_0x52f231[_0x2772('0x32')];_0x59aa0e[_0x2772('0x3a')]=qs['sort'](_0x4b9768[_0x2772('0x33')]['sort']);_0x59aa0e[_0x2772('0x3c')]=qs[_0x2772('0x35')](_[_0x2772('0x3d')](_0x4b9768['query'],_0x52f231[_0x2772('0x35')]));if(_0x4b9768[_0x2772('0x33')][_0x2772('0x3e')]){_0x59aa0e[_0x2772('0x3c')]=_['merge'](_0x59aa0e['where'],{'$or':_[_0x2772('0x2e')](_0x59aa0e['attributes'],function(_0x231af4){var _0x316994={};_0x316994[_0x231af4]={'$like':'%'+_0x4b9768['query']['filter']+'%'};return _0x316994;})});}_0x59aa0e=_[_0x2772('0x3f')]({},_0x59aa0e,_0x4b9768['options']);return _0x387b66[_0x2772('0x52')](_0x59aa0e);}})[_0x2772('0x28')](function(_0x5e8662){if(_0x5e8662){_0x3490a8=_0x5e8662[_0x2772('0x48')];if(!_0x4b9768[_0x2772('0x33')][_0x2772('0x39')]('nolimit')){_0x59aa0e[_0x2772('0x1e')]=qs[_0x2772('0x1e')](_0x4b9768['query'][_0x2772('0x1e')]);_0x59aa0e[_0x2772('0x20')]=qs[_0x2772('0x20')](_0x4b9768[_0x2772('0x33')][_0x2772('0x20')]);}return _0x387b66[_0x2772('0x52')](_0x59aa0e);}})[_0x2772('0x28')](function(_0x20b99b){if(_0x20b99b){return _0x20b99b?{'count':_0x3490a8,'rows':_0x20b99b}:null;}})[_0x2772('0x28')](respondWithResult(_0x337e18,null))[_0x2772('0x4b')](handleError(_0x337e18,null));};