datastake-daf 0.6.830 → 0.6.831

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,7 +8,7 @@ var g2plot = require('@antv/g2plot');
8
8
  require('country-city-location');
9
9
  var L = require('leaflet');
10
10
  var axios = require('axios');
11
- require('antd');
11
+ var antd = require('antd');
12
12
  var lodash = require('lodash');
13
13
  var PropTypes = require('prop-types');
14
14
  var reactIs = require('react-is');
@@ -1456,6 +1456,32 @@ class BaseHTTPService {
1456
1456
  }
1457
1457
  }
1458
1458
 
1459
+ /**
1460
+ * Check if a successful response contains embedded error data
1461
+ */
1462
+ const isErrorResponse = data => {
1463
+ if (!data) return false;
1464
+ return (
1465
+ // Check for Exception names
1466
+ data.name && data.name.includes('Exception') ||
1467
+ // Check for nested response with error status
1468
+ data.response?.statusCode && data.response.statusCode >= 400 ||
1469
+ // Check for top-level error status
1470
+ data.statusCode && data.statusCode >= 400 ||
1471
+ // Check for explicit error flag
1472
+ data.error === true ||
1473
+ // Check for nested error property
1474
+ data.response?.error && data.response.error !== null
1475
+ );
1476
+ };
1477
+
1478
+ /**
1479
+ * Extract error message from various error response formats
1480
+ */
1481
+ const getErrorMessage = data => {
1482
+ return data?.message || data?.response?.message || data?.response?.error || 'An error occurred';
1483
+ };
1484
+
1459
1485
  /**
1460
1486
  * Generic error handler factory for axios requests
1461
1487
  * Highly configurable to adapt to different project needs
@@ -2284,6 +2310,11 @@ const useWidgetFetch = ({
2284
2310
  data
2285
2311
  } = await getData(rest);
2286
2312
  setData(data || defaultData);
2313
+ if (isErrorResponse(data)) {
2314
+ const errorMessage = getErrorMessage(data);
2315
+ antd.message.error(errorMessage);
2316
+ return;
2317
+ }
2287
2318
  onFetch();
2288
2319
  } catch (err) {
2289
2320
  console.log(err);
@@ -4646,7 +4646,7 @@ CustomIcon.propTypes = {
4646
4646
  };
4647
4647
 
4648
4648
  const userIsAdmin = user => {
4649
- return user?.role?.id === 'APP_ADMIN';
4649
+ return user?.role?.id === 'APP_ADMIN' || user?.role?.id === 'SUPER_ADMIN';
4650
4650
  };
4651
4651
 
4652
4652
  /* eslint-disable no-unused-vars */
@@ -5948,7 +5948,7 @@ function MobileDrawer({
5948
5948
  }, {
5949
5949
  type: 'link',
5950
5950
  name: t('Settings'),
5951
- path: `/app/${mod}/view/settings`,
5951
+ path: `/app/view/settings`,
5952
5952
  isDashboard: true,
5953
5953
  visible: canViewSettings
5954
5954
  }, {
@@ -7206,6 +7206,32 @@ class BaseHTTPService {
7206
7206
  }
7207
7207
  }
7208
7208
 
7209
+ /**
7210
+ * Check if a successful response contains embedded error data
7211
+ */
7212
+ const isErrorResponse = data => {
7213
+ if (!data) return false;
7214
+ return (
7215
+ // Check for Exception names
7216
+ data.name && data.name.includes('Exception') ||
7217
+ // Check for nested response with error status
7218
+ data.response?.statusCode && data.response.statusCode >= 400 ||
7219
+ // Check for top-level error status
7220
+ data.statusCode && data.statusCode >= 400 ||
7221
+ // Check for explicit error flag
7222
+ data.error === true ||
7223
+ // Check for nested error property
7224
+ data.response?.error && data.response.error !== null
7225
+ );
7226
+ };
7227
+
7228
+ /**
7229
+ * Extract error message from various error response formats
7230
+ */
7231
+ const getErrorMessage = data => {
7232
+ return data?.message || data?.response?.message || data?.response?.error || 'An error occurred';
7233
+ };
7234
+
7209
7235
  /**
7210
7236
  * Generic error handler factory for axios requests
7211
7237
  * Highly configurable to adapt to different project needs
@@ -7483,6 +7509,11 @@ const useWidgetFetch = ({
7483
7509
  data
7484
7510
  } = await getData(rest);
7485
7511
  setData(data || defaultData);
7512
+ if (isErrorResponse(data)) {
7513
+ const errorMessage = getErrorMessage(data);
7514
+ antd.message.error(errorMessage);
7515
+ return;
7516
+ }
7486
7517
  onFetch();
7487
7518
  } catch (err) {
7488
7519
  console.log(err);
@@ -45855,38 +45886,57 @@ const useSummary = ({
45855
45886
  };
45856
45887
  }, [debouncedSearch]);
45857
45888
  React.useEffect(() => {
45858
- if (_partners !== undefined) {
45859
- if ((params?.id !== null || isPdf && id !== null) && !hasSelect) {
45860
- getOne({
45861
- datastakeId: params?.id || id,
45862
- sources: _partners
45863
- });
45864
- }
45865
- }
45889
+ // if (_partners !== undefined) {
45890
+ // if ((params?.id !== null || (isPdf && id !== null)) && !hasSelect) {
45891
+ // getOne({ datastakeId: params?.id || id, sources: _partners });
45892
+ // }
45893
+ // }
45866
45894
  if (hasSelect && !params?.id) {
45867
45895
  getMultiple(filters);
45868
45896
  }
45869
- }, [params?.id, hasSelect, getOne, getMultiple, _partners, isPdf, id, filters]);
45897
+ }, [hasSelect, params?.id, filters]);
45898
+ const activeId = React.useMemo(() => {
45899
+ return selectedItem || params?.id;
45900
+ }, [selectedItem, params?.id]);
45901
+ const memoizedPartners = React.useMemo(() => {
45902
+ return _partners;
45903
+ }, [_partners]);
45904
+ const memoizedService = React.useMemo(() => {
45905
+ return service;
45906
+ }, [service]);
45870
45907
  React.useEffect(() => {
45871
- if ((selectedItem || params?.id) && _partners !== undefined) {
45872
- const fetchSingleItem = async () => {
45873
- setLoading(true);
45874
- try {
45875
- const {
45876
- data
45877
- } = await service.getOne(selectedItem || params?.id, {
45878
- sources: _partners
45879
- });
45880
- setSingleItemData(data);
45881
- } catch (error) {
45908
+ if (!activeId || memoizedPartners === undefined) return;
45909
+ let cancelled = false;
45910
+ const fetchSingleItem = async () => {
45911
+ setLoading(true);
45912
+ try {
45913
+ const {
45914
+ data
45915
+ } = await memoizedService.getOne(activeId, {
45916
+ sources: memoizedPartners
45917
+ });
45918
+ if (cancelled) return;
45919
+ setSingleItemData(data);
45920
+ if (isErrorResponse(data)) {
45921
+ const errorMessage = getErrorMessage(data);
45922
+ antd.message.error(errorMessage);
45923
+ return;
45924
+ }
45925
+ } catch (error) {
45926
+ if (!cancelled) {
45882
45927
  console.log(error);
45883
- } finally {
45928
+ }
45929
+ } finally {
45930
+ if (!cancelled) {
45884
45931
  setLoading(false);
45885
45932
  }
45886
- };
45887
- fetchSingleItem();
45888
- }
45889
- }, [selectedItem, service, _partners, params?.id]);
45933
+ }
45934
+ };
45935
+ fetchSingleItem();
45936
+ return () => {
45937
+ cancelled = true;
45938
+ };
45939
+ }, [activeId, memoizedPartners, memoizedService]);
45890
45940
  React.useEffect(() => {
45891
45941
  _setPartners(selectedPartners?.partners);
45892
45942
  }, [selectedPartners]);
@@ -2022,6 +2022,118 @@ class WorkersService extends BaseService {
2022
2022
  }
2023
2023
  var WorkersService$1 = createLazyService(WorkersService);
2024
2024
 
2025
+ class MineSiteService extends BaseService {
2026
+ get(params) {
2027
+ const {
2028
+ datastakeId,
2029
+ ...rest
2030
+ } = params;
2031
+ if (datastakeId) {
2032
+ return this.apiGet({
2033
+ url: `/location/${datastakeId}`,
2034
+ params: {
2035
+ ...rest
2036
+ },
2037
+ isApp: true
2038
+ });
2039
+ }
2040
+ return this.apiGet({
2041
+ url: "/location",
2042
+ params: {
2043
+ ...rest
2044
+ },
2045
+ isApp: true
2046
+ });
2047
+ }
2048
+ getOne(id, params) {
2049
+ return this.apiGet({
2050
+ url: `/location/${id}`,
2051
+ params,
2052
+ isApp: true
2053
+ });
2054
+ }
2055
+ getForm(scope = "create", language = "en") {
2056
+ return this.apiGet({
2057
+ url: `/forms/location`,
2058
+ params: {
2059
+ scope,
2060
+ language
2061
+ },
2062
+ isApp: true
2063
+ });
2064
+ }
2065
+ getAll(params, signal) {
2066
+ return this.apiGet({
2067
+ url: "/location",
2068
+ params,
2069
+ signal,
2070
+ isApp: true
2071
+ });
2072
+ }
2073
+ getData(id, sourceId, source, version) {
2074
+ return this.apiGet({
2075
+ url: `/location/${id}`,
2076
+ isApp: true,
2077
+ params: {
2078
+ authorId: sourceId,
2079
+ source,
2080
+ version
2081
+ }
2082
+ });
2083
+ }
2084
+ submit(payload) {
2085
+ if (payload.id) {
2086
+ // eslint-disable-next-line no-unused-vars
2087
+ const {
2088
+ namespace,
2089
+ ...data
2090
+ } = payload;
2091
+ return this.apiPut({
2092
+ url: `/location/${payload.id}`,
2093
+ data: filterCreateData(data),
2094
+ isApp: true
2095
+ });
2096
+ }
2097
+ if (payload?.form) {
2098
+ delete payload.form;
2099
+ return this.apiPost({
2100
+ url: "/location",
2101
+ data: filterCreateData(payload),
2102
+ isApp: true
2103
+ });
2104
+ }
2105
+ return this.apiPost({
2106
+ url: "/location",
2107
+ data: filterCreateData(payload),
2108
+ isApp: true
2109
+ });
2110
+ }
2111
+ submitStep(data, id) {
2112
+ return this.apiPut({
2113
+ isApp: true,
2114
+ url: `/location/submit/${id}`,
2115
+ data: filterCreateData(data)
2116
+ });
2117
+ }
2118
+ remove(id, data) {
2119
+ return this.apiDelete({
2120
+ url: `/location/${id}/remove`,
2121
+ data: data,
2122
+ isApp: true
2123
+ });
2124
+ }
2125
+ getOptions(id = "countries,minerals") {
2126
+ return this.apiGet({
2127
+ isApp: true,
2128
+ url: `/forms/options`,
2129
+ params: {
2130
+ id
2131
+ }
2132
+ });
2133
+ }
2134
+ }
2135
+ var MineSiteService$1 = createLazyService(MineSiteService);
2136
+
2025
2137
  exports.AdminService = AdminService$1;
2026
2138
  exports.AuthenticationService = AuthenticationService$1;
2027
2139
  exports.BaseHTTPService = BaseHTTPService;
@@ -2033,6 +2145,7 @@ exports.ErrorHandler = ErrorHandler;
2033
2145
  exports.ErrorService = ErrorService;
2034
2146
  exports.EventsService = EventsService$1;
2035
2147
  exports.LinkedSubjectsService = LinkedSubjects;
2148
+ exports.MineSiteService = MineSiteService$1;
2036
2149
  exports.NotificationService = NotificationService$1;
2037
2150
  exports.OperatorService = OperatorService$1;
2038
2151
  exports.PartnerService = PartnerService$1;
@@ -7795,7 +7795,7 @@ const userHasInterface = (user, app, intf) => {
7795
7795
  return currentApp && intf.includes(currentApp.interface) ? true : false;
7796
7796
  };
7797
7797
  const userIsAdmin = user => {
7798
- return user?.role?.id === 'APP_ADMIN';
7798
+ return user?.role?.id === 'APP_ADMIN' || user?.role?.id === 'SUPER_ADMIN';
7799
7799
  };
7800
7800
  const createModule = (selectedModule, role = "user") => {
7801
7801
  return {
@@ -7836,6 +7836,18 @@ function getRedirectPath(user, fallback = '', app, isDatastake) {
7836
7836
  }
7837
7837
  return isDatastake ? `/${app}/app` : '/app';
7838
7838
  }
7839
+ function mapUser(user) {
7840
+ return {
7841
+ ...user,
7842
+ company: user.company,
7843
+ verified: user.emailVerified,
7844
+ companyId: user?.company?.id,
7845
+ modules: Array.isArray(user.company?.modules) ? user.company?.modules.reduce((all, item) => {
7846
+ all[item.id] = item;
7847
+ return all;
7848
+ }, {}) : user.company?.modules || {}
7849
+ };
7850
+ }
7839
7851
 
7840
7852
  const en = {
7841
7853
  "review-requests": "Review Requests",
@@ -15176,6 +15188,7 @@ exports.mapFormGroup = mapFormGroup;
15176
15188
  exports.mapModulesFromApps = mapModulesFromApps;
15177
15189
  exports.mapSubGroupsInGet = mapSubGroupsInGet;
15178
15190
  exports.mapSubGroupsInSubmit = mapSubGroupsInSubmit;
15191
+ exports.mapUser = mapUser;
15179
15192
  exports.modules = modules;
15180
15193
  exports.nowToIso = nowToIso;
15181
15194
  exports.processConfig = processConfig;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "datastake-daf",
3
- "version": "0.6.830",
3
+ "version": "0.6.831",
4
4
  "dependencies": {
5
5
  "@ant-design/icons": "^5.2.5",
6
6
  "@antv/g2": "^5.1.1",