datajunction-ui 0.0.78 → 0.0.80

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "datajunction-ui",
3
- "version": "0.0.78",
3
+ "version": "0.0.80",
4
4
  "description": "DataJunction UI",
5
5
  "module": "src/index.tsx",
6
6
  "repository": {
@@ -201,7 +201,7 @@ describe('AddEditNodePage submission succeeded', () => {
201
201
  '',
202
202
  '',
203
203
  '',
204
- '',
204
+ undefined,
205
205
  ['dj'],
206
206
  null,
207
207
  );
@@ -147,7 +147,10 @@ export function AddEditNodePage({ extensions = {} }) {
147
147
  values.primary_key ? primaryKeyToList(values.primary_key) : null,
148
148
  values.metric_direction,
149
149
  values.metric_unit,
150
- values.required_dimensions,
150
+ // Only send required_dimensions if it's set (for metrics)
151
+ values.required_dimensions && Array.isArray(values.required_dimensions)
152
+ ? values.required_dimensions
153
+ : undefined,
151
154
  parseCustomMetadata(values.custom_metadata),
152
155
  );
153
156
  if (status === 200 || status === 201) {
@@ -182,7 +185,10 @@ export function AddEditNodePage({ extensions = {} }) {
182
185
  values.metric_direction,
183
186
  values.metric_unit,
184
187
  values.significant_digits,
185
- values.required_dimensions,
188
+ // Only send required_dimensions if it's set (for metrics)
189
+ values.required_dimensions && Array.isArray(values.required_dimensions)
190
+ ? values.required_dimensions
191
+ : undefined,
186
192
  values.owners,
187
193
  parseCustomMetadata(values.custom_metadata),
188
194
  );
@@ -673,23 +673,30 @@ export const DataJunctionAPI = {
673
673
  unit: metric_unit,
674
674
  }
675
675
  : null;
676
+ // Build request body, filtering out undefined values
677
+ const requestBody = {
678
+ name: name,
679
+ display_name: display_name,
680
+ description: description,
681
+ query: query,
682
+ mode: mode,
683
+ namespace: namespace,
684
+ primary_key: primary_key,
685
+ metric_metadata: metricMetadata,
686
+ required_dimensions: required_dimensions,
687
+ custom_metadata: custom_metadata,
688
+ };
689
+ // Remove undefined fields to avoid sending them to the API
690
+ Object.keys(requestBody).forEach(
691
+ key => requestBody[key] === undefined && delete requestBody[key],
692
+ );
693
+
676
694
  const response = await fetch(`${DJ_URL}/nodes/${nodeType}`, {
677
695
  method: 'POST',
678
696
  headers: {
679
697
  'Content-Type': 'application/json',
680
698
  },
681
- body: JSON.stringify({
682
- name: name,
683
- display_name: display_name,
684
- description: description,
685
- query: query,
686
- mode: mode,
687
- namespace: namespace,
688
- primary_key: primary_key,
689
- metric_metadata: metricMetadata,
690
- required_dimensions: required_dimensions,
691
- custom_metadata: custom_metadata,
692
- }),
699
+ body: JSON.stringify(requestBody),
693
700
  credentials: 'include',
694
701
  });
695
702
  return { status: response.status, json: await response.json() };
@@ -718,22 +725,29 @@ export const DataJunctionAPI = {
718
725
  significant_digits: significant_digits || null,
719
726
  }
720
727
  : null;
728
+ // Build request body, filtering out undefined values
729
+ const requestBody = {
730
+ display_name: display_name,
731
+ description: description,
732
+ query: query,
733
+ mode: mode,
734
+ primary_key: primary_key,
735
+ metric_metadata: metricMetadata,
736
+ required_dimensions: required_dimensions,
737
+ owners: owners,
738
+ custom_metadata: custom_metadata,
739
+ };
740
+ // Remove undefined fields to avoid sending them to the API
741
+ Object.keys(requestBody).forEach(
742
+ key => requestBody[key] === undefined && delete requestBody[key],
743
+ );
744
+
721
745
  const response = await fetch(`${DJ_URL}/nodes/${name}`, {
722
746
  method: 'PATCH',
723
747
  headers: {
724
748
  'Content-Type': 'application/json',
725
749
  },
726
- body: JSON.stringify({
727
- display_name: display_name,
728
- description: description,
729
- query: query,
730
- mode: mode,
731
- primary_key: primary_key,
732
- metric_metadata: metricMetadata,
733
- required_dimensions: required_dimensions,
734
- owners: owners,
735
- custom_metadata: custom_metadata,
736
- }),
750
+ body: JSON.stringify(requestBody),
737
751
  credentials: 'include',
738
752
  });
739
753
  return { status: response.status, json: await response.json() };