@wix/bex-core 2.234.0 → 2.236.0

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.
Files changed (81) hide show
  1. package/dist/cjs/assets/locale/messages_da.json +26 -26
  2. package/dist/cjs/assets/locale/messages_it.json +26 -26
  3. package/dist/cjs/assets/locale/messages_ja.json +26 -26
  4. package/dist/cjs/assets/locale/messages_ko.json +1 -1
  5. package/dist/cjs/assets/locale/messages_no.json +26 -26
  6. package/dist/cjs/assets/locale/messages_pt.json +26 -26
  7. package/dist/cjs/assets/locale/messages_ru.json +26 -26
  8. package/dist/cjs/assets/locale/messages_sv.json +26 -26
  9. package/dist/cjs/assets/locale/messages_th.json +26 -26
  10. package/dist/cjs/assets/locale/messages_tr.json +26 -26
  11. package/dist/cjs/assets/locale/messages_uk.json +26 -26
  12. package/dist/cjs/assets/locale/messages_vi.json +26 -26
  13. package/dist/cjs/assets/locale/messages_zh.json +26 -26
  14. package/dist/cjs/index.js +5 -2
  15. package/dist/cjs/index.js.map +1 -1
  16. package/dist/cjs/services/DataExtensionFieldOperationsService.js +235 -0
  17. package/dist/cjs/services/DataExtensionFieldOperationsService.js.map +1 -0
  18. package/dist/cjs/services/DataExtensionService/dataExtensionService.js +55 -2
  19. package/dist/cjs/services/DataExtensionService/dataExtensionService.js.map +1 -1
  20. package/dist/cjs/services/DataExtensionService/deleteUserDefinedFieldsErrors.js +33 -0
  21. package/dist/cjs/services/DataExtensionService/deleteUserDefinedFieldsErrors.js.map +1 -0
  22. package/dist/cjs/services/translations.js.map +1 -1
  23. package/dist/cjs/state/CollectionOptimisticActions.js +4 -2
  24. package/dist/cjs/state/CollectionOptimisticActions.js.map +1 -1
  25. package/dist/cjs/state/DataExtensionState.js +131 -48
  26. package/dist/cjs/state/DataExtensionState.js.map +1 -1
  27. package/dist/cjs/state/DataExtensionStateBIReporter.js +23 -0
  28. package/dist/cjs/state/DataExtensionStateBIReporter.js.map +1 -1
  29. package/dist/cjs/state/OptimisticActions.js.map +1 -1
  30. package/dist/cjs/types/DeepPartial.js +4 -0
  31. package/dist/cjs/types/DeepPartial.js.map +1 -0
  32. package/dist/esm/assets/locale/messages_da.json +26 -26
  33. package/dist/esm/assets/locale/messages_it.json +26 -26
  34. package/dist/esm/assets/locale/messages_ja.json +26 -26
  35. package/dist/esm/assets/locale/messages_ko.json +1 -1
  36. package/dist/esm/assets/locale/messages_no.json +26 -26
  37. package/dist/esm/assets/locale/messages_pt.json +26 -26
  38. package/dist/esm/assets/locale/messages_ru.json +26 -26
  39. package/dist/esm/assets/locale/messages_sv.json +26 -26
  40. package/dist/esm/assets/locale/messages_th.json +26 -26
  41. package/dist/esm/assets/locale/messages_tr.json +26 -26
  42. package/dist/esm/assets/locale/messages_uk.json +26 -26
  43. package/dist/esm/assets/locale/messages_vi.json +26 -26
  44. package/dist/esm/assets/locale/messages_zh.json +26 -26
  45. package/dist/esm/index.js +0 -2
  46. package/dist/esm/index.js.map +1 -1
  47. package/dist/esm/services/DataExtensionFieldOperationsService.js +157 -0
  48. package/dist/esm/services/DataExtensionFieldOperationsService.js.map +1 -0
  49. package/dist/esm/services/DataExtensionService/dataExtensionService.js +45 -3
  50. package/dist/esm/services/DataExtensionService/dataExtensionService.js.map +1 -1
  51. package/dist/esm/services/DataExtensionService/deleteUserDefinedFieldsErrors.js +26 -0
  52. package/dist/esm/services/DataExtensionService/deleteUserDefinedFieldsErrors.js.map +1 -0
  53. package/dist/esm/state/CollectionOptimisticActions.js +6 -2
  54. package/dist/esm/state/CollectionOptimisticActions.js.map +1 -1
  55. package/dist/esm/state/DataExtensionState.js +94 -40
  56. package/dist/esm/state/DataExtensionState.js.map +1 -1
  57. package/dist/esm/state/DataExtensionStateBIReporter.js +20 -0
  58. package/dist/esm/state/DataExtensionStateBIReporter.js.map +1 -1
  59. package/dist/esm/types/DeepPartial.js +2 -0
  60. package/dist/esm/types/DeepPartial.js.map +1 -0
  61. package/dist/types/index.d.ts +1 -0
  62. package/dist/types/index.d.ts.map +1 -1
  63. package/dist/types/services/DataExtensionFieldOperationsService.d.ts +31 -0
  64. package/dist/types/services/DataExtensionFieldOperationsService.d.ts.map +1 -0
  65. package/dist/types/services/DataExtensionService/dataExtensionService.d.ts +4 -1
  66. package/dist/types/services/DataExtensionService/dataExtensionService.d.ts.map +1 -1
  67. package/dist/types/services/DataExtensionService/deleteUserDefinedFieldsErrors.d.ts +7 -0
  68. package/dist/types/services/DataExtensionService/deleteUserDefinedFieldsErrors.d.ts.map +1 -0
  69. package/dist/types/services/translations.d.ts +1 -1
  70. package/dist/types/services/translations.d.ts.map +1 -1
  71. package/dist/types/state/CollectionOptimisticActions.d.ts +2 -2
  72. package/dist/types/state/CollectionOptimisticActions.d.ts.map +1 -1
  73. package/dist/types/state/DataExtensionState.d.ts +45 -0
  74. package/dist/types/state/DataExtensionState.d.ts.map +1 -1
  75. package/dist/types/state/DataExtensionStateBIReporter.d.ts +5 -0
  76. package/dist/types/state/DataExtensionStateBIReporter.d.ts.map +1 -1
  77. package/dist/types/state/OptimisticActions.d.ts +5 -0
  78. package/dist/types/state/OptimisticActions.d.ts.map +1 -1
  79. package/dist/types/types/DeepPartial.d.ts +4 -0
  80. package/dist/types/types/DeepPartial.d.ts.map +1 -0
  81. package/package.json +4 -4
@@ -0,0 +1,235 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.DataExtensionFieldOperationsService = void 0;
5
+ var _DataExtensionStateBIReporter = require("../state/DataExtensionStateBIReporter");
6
+ /**
7
+ * Service for handling archive, restore, and delete operations on custom fields.
8
+ * This service is lazily loaded to reduce bundle size for consumers who don't use these features.
9
+ */
10
+ class DataExtensionFieldOperationsService {
11
+ constructor(context) {
12
+ this.context = context;
13
+ }
14
+ showFieldOperationToast({
15
+ type,
16
+ operation,
17
+ message,
18
+ action,
19
+ onRetryClick,
20
+ biName
21
+ }) {
22
+ const {
23
+ container
24
+ } = this.context;
25
+ const retryAction = {
26
+ uiType: 'LINK',
27
+ text: container.translate('cairo.toast.retry'),
28
+ onClick: onRetryClick,
29
+ removeToastOnClick: true
30
+ };
31
+ container.showToast == null || container.showToast({
32
+ message,
33
+ action: type !== 'SUCCESS' && onRetryClick ? retryAction : action,
34
+ type,
35
+ biName: biName || `cairo-${operation}-custom-field-${type.toLowerCase()}-toast`
36
+ });
37
+ }
38
+ async archiveField({
39
+ id,
40
+ origin,
41
+ reportBi
42
+ }) {
43
+ if (!id) {
44
+ return;
45
+ }
46
+ const {
47
+ dataExtensionService,
48
+ userSchema,
49
+ fqdnString,
50
+ extractFieldValuesFromSchema,
51
+ upsertSchema,
52
+ container,
53
+ enableArchive,
54
+ openArchivedPanel
55
+ } = this.context;
56
+ const fieldValues = extractFieldValuesFromSchema(id);
57
+ const fieldName = (fieldValues == null ? void 0 : fieldValues.name) || '';
58
+ const biReporter = new _DataExtensionStateBIReporter.DataExtensionStateBIReporter({
59
+ reportBi
60
+ });
61
+ try {
62
+ const {
63
+ dataExtensionSchema
64
+ } = await dataExtensionService.archiveCustomField({
65
+ schema: userSchema,
66
+ fqdn: fqdnString,
67
+ id
68
+ });
69
+ if (dataExtensionSchema) {
70
+ upsertSchema(dataExtensionSchema);
71
+ }
72
+ const successMessage = enableArchive && fieldName ? container.translate('cairo.customFields.archive.success.toast.enabled', {
73
+ selectedField: fieldName
74
+ }) : container.translate('cairo.customFields.archive.success.toast');
75
+ const action = enableArchive ? {
76
+ text: container.translate('cairo.customFields.archive.success.toast.CTA'),
77
+ uiType: 'LINK',
78
+ onClick: () => openArchivedPanel == null ? void 0 : openArchivedPanel()
79
+ } : undefined;
80
+ this.showFieldOperationToast({
81
+ type: 'SUCCESS',
82
+ operation: 'archive',
83
+ message: successMessage,
84
+ action
85
+ });
86
+ } catch (e) {
87
+ this.showFieldOperationToast({
88
+ type: 'ERROR',
89
+ operation: 'archive',
90
+ message: container.translate('cairo.customFields.archive.error.toast', {
91
+ selectedField: fieldName
92
+ }),
93
+ onRetryClick: () => {
94
+ biReporter.reportArchiveTryAgain();
95
+ this.archiveField({
96
+ id,
97
+ origin,
98
+ reportBi
99
+ });
100
+ }
101
+ });
102
+ biReporter.reportArchiveFieldFailed({
103
+ formValues: fieldValues,
104
+ origin
105
+ });
106
+ }
107
+ }
108
+ async restoreField({
109
+ id,
110
+ origin,
111
+ reportBi
112
+ }) {
113
+ if (!id) {
114
+ return;
115
+ }
116
+ const {
117
+ dataExtensionService,
118
+ userSchema,
119
+ fqdnString,
120
+ extractFieldValuesFromSchema,
121
+ upsertSchema,
122
+ container
123
+ } = this.context;
124
+ const fieldValues = extractFieldValuesFromSchema(id);
125
+ const fieldName = (fieldValues == null ? void 0 : fieldValues.name) || '';
126
+ const biReporter = new _DataExtensionStateBIReporter.DataExtensionStateBIReporter({
127
+ reportBi
128
+ });
129
+ try {
130
+ const {
131
+ dataExtensionSchema
132
+ } = await dataExtensionService.restoreCustomField({
133
+ schema: userSchema,
134
+ fqdn: fqdnString,
135
+ id
136
+ });
137
+ if (dataExtensionSchema) {
138
+ upsertSchema(dataExtensionSchema);
139
+ }
140
+ this.showFieldOperationToast({
141
+ type: 'SUCCESS',
142
+ operation: 'restore',
143
+ message: container.translate('cairo.customFields.restored.success.toast', {
144
+ selectedField: fieldName
145
+ })
146
+ });
147
+ } catch (e) {
148
+ this.showFieldOperationToast({
149
+ type: 'ERROR',
150
+ operation: 'restore',
151
+ message: container.translate('cairo.customFields.restore.error.toast', {
152
+ selectedField: fieldName
153
+ }),
154
+ onRetryClick: () => {
155
+ biReporter.reportRestoreTryAgain();
156
+ this.restoreField({
157
+ id,
158
+ origin,
159
+ reportBi
160
+ });
161
+ }
162
+ });
163
+ biReporter.reportRestoreFieldFailed({
164
+ formValues: fieldValues,
165
+ origin
166
+ });
167
+ }
168
+ }
169
+ async deleteField({
170
+ id,
171
+ origin,
172
+ reportBi
173
+ }) {
174
+ var _userSchema$jsonSchem;
175
+ if (!id) {
176
+ return;
177
+ }
178
+ const {
179
+ dataExtensionService,
180
+ userSchema,
181
+ fqdnString,
182
+ extractFieldValuesFromSchema,
183
+ upsertSchema,
184
+ container
185
+ } = this.context;
186
+ const fieldValues = extractFieldValuesFromSchema(id);
187
+ const fieldName = (fieldValues == null ? void 0 : fieldValues.name) || '';
188
+
189
+ // Validate field is archived
190
+ const field = userSchema == null || (_userSchema$jsonSchem = userSchema.jsonSchema) == null || (_userSchema$jsonSchem = _userSchema$jsonSchem.properties) == null ? void 0 : _userSchema$jsonSchem[id];
191
+ if (field && !field['x-wix-archived']) {
192
+ this.showFieldOperationToast({
193
+ type: 'ERROR',
194
+ operation: 'delete',
195
+ message: `${fieldName || 'Field'} must be archived before it can be deleted.`,
196
+ biName: 'cairo-delete-custom-field-not-archived-error-toast'
197
+ });
198
+ return;
199
+ }
200
+ try {
201
+ const {
202
+ dataExtensionSchema
203
+ } = await dataExtensionService.deleteCustomField({
204
+ schema: userSchema,
205
+ fqdn: fqdnString,
206
+ id
207
+ });
208
+ if (dataExtensionSchema) {
209
+ upsertSchema(dataExtensionSchema);
210
+ }
211
+ this.showFieldOperationToast({
212
+ type: 'SUCCESS',
213
+ operation: 'delete',
214
+ message: container.translate('cairo.customFields.deleted.success.toast', {
215
+ selectedField: fieldName
216
+ })
217
+ });
218
+ } catch (e) {
219
+ this.showFieldOperationToast({
220
+ type: 'ERROR',
221
+ operation: 'delete',
222
+ message: container.translate('cairo.customFields.delete.error.toast', {
223
+ selectedField: fieldName
224
+ }),
225
+ onRetryClick: () => this.deleteField({
226
+ id,
227
+ origin,
228
+ reportBi
229
+ })
230
+ });
231
+ }
232
+ }
233
+ }
234
+ exports.DataExtensionFieldOperationsService = DataExtensionFieldOperationsService;
235
+ //# sourceMappingURL=DataExtensionFieldOperationsService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_DataExtensionStateBIReporter","require","DataExtensionFieldOperationsService","constructor","context","showFieldOperationToast","type","operation","message","action","onRetryClick","biName","container","retryAction","uiType","text","translate","onClick","removeToastOnClick","showToast","toLowerCase","archiveField","id","origin","reportBi","dataExtensionService","userSchema","fqdnString","extractFieldValuesFromSchema","upsertSchema","enableArchive","openArchivedPanel","fieldValues","fieldName","name","biReporter","DataExtensionStateBIReporter","dataExtensionSchema","archiveCustomField","schema","fqdn","successMessage","selectedField","undefined","e","reportArchiveTryAgain","reportArchiveFieldFailed","formValues","restoreField","restoreCustomField","reportRestoreTryAgain","reportRestoreFieldFailed","deleteField","_userSchema$jsonSchem","field","jsonSchema","properties","deleteCustomField","exports"],"sources":["../../../src/services/DataExtensionFieldOperationsService.ts"],"sourcesContent":["import type { DataExtensionSchema } from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/types';\nimport type { CustomFieldForm, WixPatternsContainer } from '../state';\nimport type { DataExtensionSchemaService, ReportBI } from '.';\nimport { DataExtensionStateBIReporter } from '../state/DataExtensionStateBIReporter';\nimport { ToastAction } from '../model';\n\nexport interface FieldOperationParams {\n id?: string;\n origin: string;\n reportBi: ReportBI;\n}\n\nexport interface FieldOperationContext {\n container: WixPatternsContainer;\n dataExtensionService: DataExtensionSchemaService;\n userSchema?: DataExtensionSchema;\n fqdnString: string;\n enableArchive?: boolean;\n extractFieldValuesFromSchema: (\n fieldId: string,\n ) => CustomFieldForm | undefined;\n upsertSchema: (schema: DataExtensionSchema) => void;\n openArchivedPanel?: () => void;\n}\n\n/**\n * Service for handling archive, restore, and delete operations on custom fields.\n * This service is lazily loaded to reduce bundle size for consumers who don't use these features.\n */\nexport class DataExtensionFieldOperationsService {\n constructor(private readonly context: FieldOperationContext) {}\n\n private showFieldOperationToast({\n type,\n operation,\n message,\n action,\n onRetryClick,\n biName,\n }: {\n type: 'SUCCESS' | 'ERROR';\n operation: 'archive' | 'restore' | 'delete';\n message: string;\n action?: ToastAction;\n onRetryClick?: () => void;\n biName?: string;\n }) {\n const { container } = this.context;\n const retryAction = {\n uiType: 'LINK' as const,\n text: container.translate('cairo.toast.retry'),\n onClick: onRetryClick,\n removeToastOnClick: true,\n };\n\n container.showToast?.({\n message,\n action: type !== 'SUCCESS' && onRetryClick ? retryAction : action,\n type,\n biName:\n biName || `cairo-${operation}-custom-field-${type.toLowerCase()}-toast`,\n });\n }\n\n async archiveField({ id, origin, reportBi }: FieldOperationParams) {\n if (!id) {\n return;\n }\n\n const {\n dataExtensionService,\n userSchema,\n fqdnString,\n extractFieldValuesFromSchema,\n upsertSchema,\n container,\n enableArchive,\n openArchivedPanel,\n } = this.context;\n\n const fieldValues = extractFieldValuesFromSchema(id);\n const fieldName = fieldValues?.name || '';\n const biReporter = new DataExtensionStateBIReporter({ reportBi });\n\n try {\n const { dataExtensionSchema } =\n await dataExtensionService.archiveCustomField({\n schema: userSchema,\n fqdn: fqdnString,\n id,\n });\n\n if (dataExtensionSchema) {\n upsertSchema(dataExtensionSchema);\n }\n\n const successMessage =\n enableArchive && fieldName\n ? container.translate(\n 'cairo.customFields.archive.success.toast.enabled',\n { selectedField: fieldName },\n )\n : container.translate('cairo.customFields.archive.success.toast');\n\n const action = enableArchive\n ? {\n text: container.translate(\n 'cairo.customFields.archive.success.toast.CTA',\n ),\n uiType: 'LINK' as const,\n onClick: () => openArchivedPanel?.(),\n }\n : undefined;\n\n this.showFieldOperationToast({\n type: 'SUCCESS',\n operation: 'archive',\n message: successMessage,\n action,\n });\n } catch (e) {\n this.showFieldOperationToast({\n type: 'ERROR',\n operation: 'archive',\n message: container.translate('cairo.customFields.archive.error.toast', {\n selectedField: fieldName,\n }),\n onRetryClick: () => {\n biReporter.reportArchiveTryAgain();\n this.archiveField({ id, origin, reportBi });\n },\n });\n biReporter.reportArchiveFieldFailed({ formValues: fieldValues, origin });\n }\n }\n\n async restoreField({ id, origin, reportBi }: FieldOperationParams) {\n if (!id) {\n return;\n }\n\n const {\n dataExtensionService,\n userSchema,\n fqdnString,\n extractFieldValuesFromSchema,\n upsertSchema,\n container,\n } = this.context;\n\n const fieldValues = extractFieldValuesFromSchema(id);\n const fieldName = fieldValues?.name || '';\n const biReporter = new DataExtensionStateBIReporter({ reportBi });\n\n try {\n const { dataExtensionSchema } =\n await dataExtensionService.restoreCustomField({\n schema: userSchema,\n fqdn: fqdnString,\n id,\n });\n\n if (dataExtensionSchema) {\n upsertSchema(dataExtensionSchema);\n }\n\n this.showFieldOperationToast({\n type: 'SUCCESS',\n operation: 'restore',\n message: container.translate(\n 'cairo.customFields.restored.success.toast',\n { selectedField: fieldName },\n ),\n });\n } catch (e) {\n this.showFieldOperationToast({\n type: 'ERROR',\n operation: 'restore',\n message: container.translate('cairo.customFields.restore.error.toast', {\n selectedField: fieldName,\n }),\n onRetryClick: () => {\n biReporter.reportRestoreTryAgain();\n this.restoreField({ id, origin, reportBi });\n },\n });\n biReporter.reportRestoreFieldFailed({ formValues: fieldValues, origin });\n }\n }\n\n async deleteField({ id, origin, reportBi }: FieldOperationParams) {\n if (!id) {\n return;\n }\n\n const {\n dataExtensionService,\n userSchema,\n fqdnString,\n extractFieldValuesFromSchema,\n upsertSchema,\n container,\n } = this.context;\n\n const fieldValues = extractFieldValuesFromSchema(id);\n const fieldName = fieldValues?.name || '';\n\n // Validate field is archived\n const field = userSchema?.jsonSchema?.properties?.[id];\n if (field && !field['x-wix-archived']) {\n this.showFieldOperationToast({\n type: 'ERROR',\n operation: 'delete',\n message: `${\n fieldName || 'Field'\n } must be archived before it can be deleted.`,\n biName: 'cairo-delete-custom-field-not-archived-error-toast',\n });\n return;\n }\n\n try {\n const { dataExtensionSchema } =\n await dataExtensionService.deleteCustomField({\n schema: userSchema,\n fqdn: fqdnString,\n id,\n });\n\n if (dataExtensionSchema) {\n upsertSchema(dataExtensionSchema);\n }\n\n this.showFieldOperationToast({\n type: 'SUCCESS',\n operation: 'delete',\n message: container.translate(\n 'cairo.customFields.deleted.success.toast',\n { selectedField: fieldName },\n ),\n });\n } catch (e) {\n this.showFieldOperationToast({\n type: 'ERROR',\n operation: 'delete',\n message: container.translate('cairo.customFields.delete.error.toast', {\n selectedField: fieldName,\n }),\n onRetryClick: () => this.deleteField({ id, origin, reportBi }),\n });\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,10 +4,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  exports.__esModule = true;
5
5
  exports.DataExtensionSchemaService = void 0;
6
6
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
- var _types = require("@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/types");
8
7
  var _http = require("@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/http");
9
8
  var _updateDataExtensionSchemaErrors = require("./updateDataExtensionSchemaErrors");
10
9
  var _createDataExtensionSchemaErrors = require("./createDataExtensionSchemaErrors");
10
+ var _deleteUserDefinedFieldsErrors = require("./deleteUserDefinedFieldsErrors");
11
11
  // server types
12
12
 
13
13
  // client types
@@ -205,6 +205,47 @@ class DataExtensionSchemaService {
205
205
  };
206
206
  return this._updateDataExtensionSchema(schema);
207
207
  }
208
+ restoreCustomField(params) {
209
+ var _params$schema6, _params$schema7;
210
+ const {
211
+ userFieldsNamespace
212
+ } = this;
213
+ const {
214
+ id,
215
+ fqdn
216
+ } = params;
217
+ const schema = {
218
+ fqdn,
219
+ namespace: userFieldsNamespace,
220
+ ...params.schema,
221
+ jsonSchema: {
222
+ properties: {
223
+ ...((_params$schema6 = params.schema) == null || (_params$schema6 = _params$schema6.jsonSchema) == null ? void 0 : _params$schema6.properties),
224
+ [id]: {
225
+ ...((_params$schema7 = params.schema) == null || (_params$schema7 = _params$schema7.jsonSchema) == null ? void 0 : _params$schema7.properties[id]),
226
+ 'x-wix-archived': false
227
+ }
228
+ }
229
+ }
230
+ };
231
+ return this._updateDataExtensionSchema(schema);
232
+ }
233
+ deleteCustomField(params) {
234
+ var _params$schema8, _params$schema$jsonSc;
235
+ const {
236
+ id
237
+ } = params;
238
+ if (!((_params$schema8 = params.schema) != null && _params$schema8.id)) {
239
+ throw new Error('Schema ID is required to delete a custom field');
240
+ }
241
+
242
+ // Check if the field is archived before attempting deletion
243
+ const field = (_params$schema$jsonSc = params.schema.jsonSchema) == null || (_params$schema$jsonSc = _params$schema$jsonSc.properties) == null ? void 0 : _params$schema$jsonSc[id];
244
+ if (field && !field['x-wix-archived']) {
245
+ throw new Error('Field must be archived before it can be deleted. Please archive the field first.');
246
+ }
247
+ return this._deleteUserDefinedFields(params.schema.id, [id]);
248
+ }
208
249
  async fetchSchemas(fqdn) {
209
250
  const {
210
251
  httpClient,
@@ -213,7 +254,7 @@ class DataExtensionSchemaService {
213
254
  const res = await errorHandler.withErrorHandler(() => httpClient.request((0, _http.listDataExtensionSchemas)({
214
255
  fqdn,
215
256
  namespaces: [],
216
- fields: [_types.RequestedField.ARCHIVED]
257
+ fields: ['ARCHIVED']
217
258
  })), {});
218
259
  return res.data;
219
260
  }
@@ -239,6 +280,18 @@ class DataExtensionSchemaService {
239
280
  translate: this.translate
240
281
  })).then(res => res.data);
241
282
  }
283
+ async _deleteUserDefinedFields(dataExtensionSchemaId, fieldsToDelete) {
284
+ const {
285
+ httpClient,
286
+ errorHandler
287
+ } = this;
288
+ return errorHandler.withErrorHandler(() => httpClient.request((0, _http.deleteUserDefinedFields)({
289
+ dataExtensionSchemaId,
290
+ fieldsToDelete
291
+ })), (0, _deleteUserDefinedFieldsErrors.deleteUserDefinedFieldsErrors)({
292
+ translate: this.translate
293
+ })).then(res => res.data);
294
+ }
242
295
  }
243
296
  exports.DataExtensionSchemaService = DataExtensionSchemaService;
244
297
  //# sourceMappingURL=dataExtensionService.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","_http","_updateDataExtensionSchemaErrors","_createDataExtensionSchemaErrors","DataExtensionSchemaService","toSchemaType","type","format","maxLength","items","Error","toCustomType","field","hasOwnProperty","_field$items","toCustomField","schema","key","_schema$jsonSchema","property","jsonSchema","properties","title","id","constructor","params","_defineProperty2","default","httpClient","translate","errorHandler","addCustomField","_params$schema","_params$schema2","_params$schema3","userFieldsNamespace","form","name","readApps","readUsers","writeApps","writeUsers","containsPii","fqdn","permissions","read","write","filterable","namespace","enabled","_updateDataExtensionSchema","_createDataExtensionSchema","archiveCustomField","_params$schema4","_params$schema5","fetchSchemas","res","withErrorHandler","request","listDataExtensionSchemas","namespaces","fields","RequestedField","ARCHIVED","data","createDataExtensionSchema","dataExtensionSchema","createDataExtensionSchemaErrors","then","updateDataExtensionSchema","updateDataExtensionSchemaErrors","exports"],"sources":["../../../../src/services/DataExtensionService/dataExtensionService.ts"],"sourcesContent":["import {\n DataExtensionSchema,\n RequestedField,\n} from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/types';\nimport {\n createDataExtensionSchema,\n listDataExtensionSchemas,\n updateDataExtensionSchema,\n} from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/http';\nimport { CustomFieldForm, WixPatternsContainer } from '../../state';\nimport { PatternsErrorHandler, WixPatternsEssentials } from '../../model';\nimport { updateDataExtensionSchemaErrors } from './updateDataExtensionSchemaErrors';\nimport { createDataExtensionSchemaErrors } from './createDataExtensionSchemaErrors';\n\nexport interface DataExtensionSchemaServiceParams {\n readonly httpClient: WixPatternsEssentials['httpClient'];\n readonly translate: WixPatternsContainer['translate'];\n readonly errorHandler: PatternsErrorHandler;\n}\n\n// server types\nexport type DataExtensionType =\n | 'string'\n | 'number'\n | 'integer'\n | 'boolean'\n | 'array'\n | 'object';\n\nexport type DataExtensionPermission =\n | 'apps'\n | 'owning-app'\n | 'users'\n | 'users-of-users';\n\ninterface DataExtensionFieldItems\n extends Partial<Omit<DataExtensionField, 'type' | 'maxLength'>> {\n type: Omit<DataExtensionType, 'array'>;\n maxLength: number;\n}\nexport interface DataExtensionField {\n id: string;\n type?: DataExtensionType;\n format?: 'date-time' | 'date' | 'single-line' | 'uri' | string;\n title?: string;\n maxLength?: number;\n enum?: string[];\n 'x-wix-archived'?: boolean;\n 'x-wix-filterable'?: boolean;\n 'x-wix-created-date': string;\n 'x-wix-object-type'?: string;\n 'x-wix-permissions': {\n read: DataExtensionPermission[];\n write: DataExtensionPermission[];\n };\n properties?: Record<string, any>;\n items?: DataExtensionFieldItems;\n 'x-wix-pii'?: { enabled: boolean };\n}\n\n// client types\nexport type CustomFieldType =\n | 'shortText'\n | 'longText'\n | 'url'\n | 'date'\n | 'dateTime'\n | 'integer'\n | 'decimal'\n | 'checkbox'\n | 'dropdown'\n | 'files'\n | 'multiSelect';\n\nexport type CustomFieldOrigin =\n | 'Custom columns panel'\n | 'Custom fields panel'\n | 'Custom fields widget'\n | 'external';\n\nexport interface ExtendedFieldsDataMap {\n [key: string]: any;\n}\n\nexport interface ExtendedFields {\n _type?: 'ExtendedFields';\n /**\n * Data Extensions extended fields\n * Key: Namespace\n * Value: extended fields data in Struct format\n */\n namespaces?: {\n _user_fields?: ExtendedFieldsDataMap | undefined;\n [key: string]: ExtendedFieldsDataMap | undefined;\n };\n}\n\nexport type CustomFieldOwner = 'user' | 'app';\n\nexport interface CustomField {\n id: string;\n type: CustomFieldType;\n label?: string;\n maxLength?: number;\n options?: string[];\n editable: boolean;\n filterable?: boolean;\n owner: CustomFieldOwner;\n properties?: Record<string, string>;\n namespace: string;\n permissions?: {\n read?: DataExtensionPermission[];\n write?: DataExtensionPermission[];\n };\n}\n\nexport interface AddFieldParams {\n schema?: DataExtensionSchema;\n fqdn: string;\n form: CustomFieldForm;\n filterable?: boolean;\n}\n\nexport interface ArchiveFieldParams {\n schema?: DataExtensionSchema;\n fqdn: string;\n id: string;\n}\n\nexport class DataExtensionSchemaService {\n readonly httpClient: WixPatternsEssentials['httpClient'];\n readonly translate: WixPatternsContainer['translate'];\n readonly errorHandler;\n\n readonly userFieldsNamespace = '_user_fields';\n\n static toSchemaType(type?: CustomFieldType) {\n switch (type) {\n case 'shortText':\n return {\n type: 'string',\n format: 'single-line',\n maxLength: 120,\n };\n case 'longText':\n return {\n type: 'string',\n maxLength: 200,\n };\n case 'url':\n return {\n type: 'string',\n format: 'uri',\n maxLength: 256,\n };\n case 'date':\n return {\n type: 'string',\n format: 'date',\n };\n case 'dateTime':\n return {\n type: 'string',\n format: 'date-time',\n };\n case 'integer':\n return {\n type: 'integer',\n };\n case 'decimal':\n return {\n type: 'number',\n };\n case 'checkbox':\n return {\n type: 'boolean',\n };\n case 'dropdown':\n return {\n type: 'array',\n items: {\n type: 'string',\n },\n };\n default:\n throw new Error(`Unexpected type: ${type}`);\n }\n }\n\n static toCustomType(field: DataExtensionField): CustomFieldType | undefined {\n switch (field.type) {\n case 'string':\n if (field.hasOwnProperty('enum')) {\n return 'dropdown';\n }\n switch (field.format) {\n case 'date-time':\n return 'dateTime';\n case 'uri':\n return 'url';\n case 'date':\n return 'date';\n case 'single-line':\n return 'shortText';\n default:\n return 'longText';\n }\n case 'number':\n return 'decimal';\n case 'integer':\n return 'integer';\n case 'boolean':\n return 'checkbox';\n case 'array': {\n if (field.items?.['x-wix-object-type'] === 'FILE/V1') {\n return 'files';\n }\n return 'multiSelect';\n }\n case 'object': {\n if (field['x-wix-object-type'] === 'FILE/V1') {\n return 'files';\n }\n return 'dropdown';\n }\n default:\n return;\n }\n }\n\n static toCustomField(\n schema: DataExtensionSchema,\n key: string,\n ): DataExtensionField | undefined {\n const property: DataExtensionField = schema.jsonSchema?.properties?.[key];\n\n if (!property || typeof property !== 'object') {\n return;\n }\n\n if (\n typeof property.title !== 'string' ||\n typeof property.type !== 'string' ||\n typeof property['x-wix-permissions'] !== 'object'\n ) {\n return;\n }\n\n return { ...property, id: key };\n }\n\n constructor(params: DataExtensionSchemaServiceParams) {\n this.httpClient = params.httpClient;\n this.translate = params.translate;\n this.errorHandler = params.errorHandler;\n }\n addCustomField(params: AddFieldParams) {\n const { userFieldsNamespace } = this;\n const {\n form: {\n key,\n name,\n readApps,\n readUsers,\n writeApps,\n writeUsers,\n containsPii,\n },\n fqdn,\n } = params;\n const type = DataExtensionSchemaService.toSchemaType(params.form.type);\n\n const permissions = {\n read: [\n 'users',\n ...(readUsers ? ['users-of-users'] : []),\n ...(readApps ? ['apps'] : []),\n ],\n write: [\n 'users',\n ...(writeUsers ? ['users-of-users'] : []),\n ...(writeApps ? ['apps'] : []),\n ],\n };\n\n const filterable = params.filterable ? { 'x-wix-filterable': true } : {};\n\n const schema: DataExtensionSchema = {\n fqdn,\n namespace: userFieldsNamespace,\n ...params.schema,\n jsonSchema: {\n properties: {\n ...params.schema?.jsonSchema?.properties,\n [key]: {\n ...params.schema?.jsonSchema?.properties[key],\n title: name,\n ...(containsPii ? { 'x-wix-pii': { enabled: true } } : {}),\n ...type,\n 'x-wix-permissions': permissions,\n ...filterable,\n },\n },\n },\n };\n\n return params.schema?.id\n ? this._updateDataExtensionSchema(schema)\n : this._createDataExtensionSchema(schema);\n }\n\n archiveCustomField(params: ArchiveFieldParams) {\n const { userFieldsNamespace } = this;\n const { id, fqdn } = params;\n\n const schema: DataExtensionSchema = {\n fqdn,\n namespace: userFieldsNamespace,\n ...params.schema,\n jsonSchema: {\n properties: {\n ...params.schema?.jsonSchema?.properties,\n [id]: {\n ...params.schema?.jsonSchema?.properties[id],\n 'x-wix-archived': true,\n },\n },\n },\n };\n return this._updateDataExtensionSchema(schema);\n }\n\n async fetchSchemas(fqdn: string) {\n const { httpClient, errorHandler } = this;\n\n const res = await errorHandler.withErrorHandler(\n () =>\n httpClient.request(\n listDataExtensionSchemas({\n fqdn,\n namespaces: [],\n fields: [RequestedField.ARCHIVED],\n }),\n ),\n {},\n );\n\n return res.data;\n }\n\n private async _createDataExtensionSchema(schema: DataExtensionSchema) {\n const { httpClient, errorHandler } = this;\n\n return errorHandler\n .withErrorHandler(\n () =>\n httpClient.request(\n createDataExtensionSchema({ dataExtensionSchema: schema }),\n ),\n createDataExtensionSchemaErrors({\n translate: this.translate,\n }),\n )\n .then((res) => res.data);\n }\n\n private async _updateDataExtensionSchema(schema: DataExtensionSchema) {\n const { httpClient, errorHandler } = this;\n return errorHandler\n .withErrorHandler(\n () =>\n httpClient.request(\n updateDataExtensionSchema({ dataExtensionSchema: schema }),\n ),\n updateDataExtensionSchemaErrors({\n translate: this.translate,\n }),\n )\n .then((res) => res.data);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_http","require","_updateDataExtensionSchemaErrors","_createDataExtensionSchemaErrors","_deleteUserDefinedFieldsErrors","DataExtensionSchemaService","toSchemaType","type","format","maxLength","items","Error","toCustomType","field","hasOwnProperty","_field$items","toCustomField","schema","key","_schema$jsonSchema","property","jsonSchema","properties","title","id","constructor","params","_defineProperty2","default","httpClient","translate","errorHandler","addCustomField","_params$schema","_params$schema2","_params$schema3","userFieldsNamespace","form","name","readApps","readUsers","writeApps","writeUsers","containsPii","fqdn","permissions","read","write","filterable","namespace","enabled","_updateDataExtensionSchema","_createDataExtensionSchema","archiveCustomField","_params$schema4","_params$schema5","restoreCustomField","_params$schema6","_params$schema7","deleteCustomField","_params$schema8","_params$schema$jsonSc","_deleteUserDefinedFields","fetchSchemas","res","withErrorHandler","request","listDataExtensionSchemas","namespaces","fields","data","createDataExtensionSchema","dataExtensionSchema","createDataExtensionSchemaErrors","then","updateDataExtensionSchema","updateDataExtensionSchemaErrors","dataExtensionSchemaId","fieldsToDelete","deleteUserDefinedFields","deleteUserDefinedFieldsErrors","exports"],"sources":["../../../../src/services/DataExtensionService/dataExtensionService.ts"],"sourcesContent":["import type {\n DataExtensionSchema,\n RequestedField,\n} from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/types';\nimport {\n createDataExtensionSchema,\n listDataExtensionSchemas,\n updateDataExtensionSchema,\n deleteUserDefinedFields,\n} from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/http';\nimport { CustomFieldForm, WixPatternsContainer } from '../../state';\nimport { PatternsErrorHandler, WixPatternsEssentials } from '../../model';\nimport { updateDataExtensionSchemaErrors } from './updateDataExtensionSchemaErrors';\nimport { createDataExtensionSchemaErrors } from './createDataExtensionSchemaErrors';\nimport { deleteUserDefinedFieldsErrors } from './deleteUserDefinedFieldsErrors';\n\nexport interface DataExtensionSchemaServiceParams {\n readonly httpClient: WixPatternsEssentials['httpClient'];\n readonly translate: WixPatternsContainer['translate'];\n readonly errorHandler: PatternsErrorHandler;\n}\n\n// server types\nexport type DataExtensionType =\n | 'string'\n | 'number'\n | 'integer'\n | 'boolean'\n | 'array'\n | 'object';\n\nexport type DataExtensionPermission =\n | 'apps'\n | 'owning-app'\n | 'users'\n | 'users-of-users';\n\ninterface DataExtensionFieldItems\n extends Partial<Omit<DataExtensionField, 'type' | 'maxLength'>> {\n type: Omit<DataExtensionType, 'array'>;\n maxLength: number;\n}\nexport interface DataExtensionField {\n id: string;\n type?: DataExtensionType;\n format?: 'date-time' | 'date' | 'single-line' | 'uri' | string;\n title?: string;\n maxLength?: number;\n enum?: string[];\n 'x-wix-archived'?: boolean;\n 'x-wix-filterable'?: boolean;\n 'x-wix-created-date': string;\n 'x-wix-object-type'?: string;\n 'x-wix-permissions': {\n read: DataExtensionPermission[];\n write: DataExtensionPermission[];\n };\n properties?: Record<string, any>;\n items?: DataExtensionFieldItems;\n 'x-wix-pii'?: { enabled: boolean };\n}\n\n// client types\nexport type CustomFieldType =\n | 'shortText'\n | 'longText'\n | 'url'\n | 'date'\n | 'dateTime'\n | 'integer'\n | 'decimal'\n | 'checkbox'\n | 'dropdown'\n | 'files'\n | 'multiSelect';\n\nexport type CustomFieldOrigin =\n | 'Custom columns panel'\n | 'Custom fields panel'\n | 'Custom fields widget'\n | 'external';\n\nexport interface ExtendedFieldsDataMap {\n [key: string]: any;\n}\n\nexport interface ExtendedFields {\n _type?: 'ExtendedFields';\n /**\n * Data Extensions extended fields\n * Key: Namespace\n * Value: extended fields data in Struct format\n */\n namespaces?: {\n _user_fields?: ExtendedFieldsDataMap | undefined;\n [key: string]: ExtendedFieldsDataMap | undefined;\n };\n}\n\nexport type CustomFieldOwner = 'user' | 'app';\n\nexport interface CustomField {\n id: string;\n type: CustomFieldType;\n label?: string;\n maxLength?: number;\n options?: string[];\n editable: boolean;\n filterable?: boolean;\n owner: CustomFieldOwner;\n properties?: Record<string, string>;\n namespace: string;\n permissions?: {\n read?: DataExtensionPermission[];\n write?: DataExtensionPermission[];\n };\n}\n\nexport interface AddFieldParams {\n schema?: DataExtensionSchema;\n fqdn: string;\n form: CustomFieldForm;\n filterable?: boolean;\n}\n\nexport interface ArchiveFieldParams {\n schema?: DataExtensionSchema;\n fqdn: string;\n id: string;\n}\n\nexport class DataExtensionSchemaService {\n readonly httpClient: WixPatternsEssentials['httpClient'];\n readonly translate: WixPatternsContainer['translate'];\n readonly errorHandler;\n\n readonly userFieldsNamespace = '_user_fields';\n\n static toSchemaType(type?: CustomFieldType) {\n switch (type) {\n case 'shortText':\n return {\n type: 'string',\n format: 'single-line',\n maxLength: 120,\n };\n case 'longText':\n return {\n type: 'string',\n maxLength: 200,\n };\n case 'url':\n return {\n type: 'string',\n format: 'uri',\n maxLength: 256,\n };\n case 'date':\n return {\n type: 'string',\n format: 'date',\n };\n case 'dateTime':\n return {\n type: 'string',\n format: 'date-time',\n };\n case 'integer':\n return {\n type: 'integer',\n };\n case 'decimal':\n return {\n type: 'number',\n };\n case 'checkbox':\n return {\n type: 'boolean',\n };\n case 'dropdown':\n return {\n type: 'array',\n items: {\n type: 'string',\n },\n };\n default:\n throw new Error(`Unexpected type: ${type}`);\n }\n }\n\n static toCustomType(field: DataExtensionField): CustomFieldType | undefined {\n switch (field.type) {\n case 'string':\n if (field.hasOwnProperty('enum')) {\n return 'dropdown';\n }\n switch (field.format) {\n case 'date-time':\n return 'dateTime';\n case 'uri':\n return 'url';\n case 'date':\n return 'date';\n case 'single-line':\n return 'shortText';\n default:\n return 'longText';\n }\n case 'number':\n return 'decimal';\n case 'integer':\n return 'integer';\n case 'boolean':\n return 'checkbox';\n case 'array': {\n if (field.items?.['x-wix-object-type'] === 'FILE/V1') {\n return 'files';\n }\n return 'multiSelect';\n }\n case 'object': {\n if (field['x-wix-object-type'] === 'FILE/V1') {\n return 'files';\n }\n return 'dropdown';\n }\n default:\n return;\n }\n }\n\n static toCustomField(\n schema: DataExtensionSchema,\n key: string,\n ): DataExtensionField | undefined {\n const property: DataExtensionField = schema.jsonSchema?.properties?.[key];\n\n if (!property || typeof property !== 'object') {\n return;\n }\n\n if (\n typeof property.title !== 'string' ||\n typeof property.type !== 'string' ||\n typeof property['x-wix-permissions'] !== 'object'\n ) {\n return;\n }\n\n return { ...property, id: key };\n }\n\n constructor(params: DataExtensionSchemaServiceParams) {\n this.httpClient = params.httpClient;\n this.translate = params.translate;\n this.errorHandler = params.errorHandler;\n }\n addCustomField(params: AddFieldParams) {\n const { userFieldsNamespace } = this;\n const {\n form: {\n key,\n name,\n readApps,\n readUsers,\n writeApps,\n writeUsers,\n containsPii,\n },\n fqdn,\n } = params;\n const type = DataExtensionSchemaService.toSchemaType(params.form.type);\n\n const permissions = {\n read: [\n 'users',\n ...(readUsers ? ['users-of-users'] : []),\n ...(readApps ? ['apps'] : []),\n ],\n write: [\n 'users',\n ...(writeUsers ? ['users-of-users'] : []),\n ...(writeApps ? ['apps'] : []),\n ],\n };\n\n const filterable = params.filterable ? { 'x-wix-filterable': true } : {};\n\n const schema: DataExtensionSchema = {\n fqdn,\n namespace: userFieldsNamespace,\n ...params.schema,\n jsonSchema: {\n properties: {\n ...params.schema?.jsonSchema?.properties,\n [key]: {\n ...params.schema?.jsonSchema?.properties[key],\n title: name,\n ...(containsPii ? { 'x-wix-pii': { enabled: true } } : {}),\n ...type,\n 'x-wix-permissions': permissions,\n ...filterable,\n },\n },\n },\n };\n\n return params.schema?.id\n ? this._updateDataExtensionSchema(schema)\n : this._createDataExtensionSchema(schema);\n }\n\n archiveCustomField(params: ArchiveFieldParams) {\n const { userFieldsNamespace } = this;\n const { id, fqdn } = params;\n\n const schema: DataExtensionSchema = {\n fqdn,\n namespace: userFieldsNamespace,\n ...params.schema,\n jsonSchema: {\n properties: {\n ...params.schema?.jsonSchema?.properties,\n [id]: {\n ...params.schema?.jsonSchema?.properties[id],\n 'x-wix-archived': true,\n },\n },\n },\n };\n return this._updateDataExtensionSchema(schema);\n }\n\n restoreCustomField(params: ArchiveFieldParams) {\n const { userFieldsNamespace } = this;\n const { id, fqdn } = params;\n\n const schema: DataExtensionSchema = {\n fqdn,\n namespace: userFieldsNamespace,\n ...params.schema,\n jsonSchema: {\n properties: {\n ...params.schema?.jsonSchema?.properties,\n [id]: {\n ...params.schema?.jsonSchema?.properties[id],\n 'x-wix-archived': false,\n },\n },\n },\n };\n return this._updateDataExtensionSchema(schema);\n }\n\n deleteCustomField(params: ArchiveFieldParams) {\n const { id } = params;\n\n if (!params.schema?.id) {\n throw new Error('Schema ID is required to delete a custom field');\n }\n\n // Check if the field is archived before attempting deletion\n const field = params.schema.jsonSchema?.properties?.[id];\n if (field && !field['x-wix-archived']) {\n throw new Error(\n 'Field must be archived before it can be deleted. Please archive the field first.',\n );\n }\n\n return this._deleteUserDefinedFields(params.schema.id, [id]);\n }\n\n async fetchSchemas(fqdn: string) {\n const { httpClient, errorHandler } = this;\n\n const res = await errorHandler.withErrorHandler(\n () =>\n httpClient.request(\n listDataExtensionSchemas({\n fqdn,\n namespaces: [],\n fields: ['ARCHIVED' as RequestedField],\n }),\n ),\n {},\n );\n\n return res.data;\n }\n\n private async _createDataExtensionSchema(schema: DataExtensionSchema) {\n const { httpClient, errorHandler } = this;\n\n return errorHandler\n .withErrorHandler(\n () =>\n httpClient.request(\n createDataExtensionSchema({ dataExtensionSchema: schema }),\n ),\n createDataExtensionSchemaErrors({\n translate: this.translate,\n }),\n )\n .then((res) => res.data);\n }\n\n private async _updateDataExtensionSchema(schema: DataExtensionSchema) {\n const { httpClient, errorHandler } = this;\n return errorHandler\n .withErrorHandler(\n () =>\n httpClient.request(\n updateDataExtensionSchema({ dataExtensionSchema: schema }),\n ),\n updateDataExtensionSchemaErrors({\n translate: this.translate,\n }),\n )\n .then((res) => res.data);\n }\n\n private async _deleteUserDefinedFields(\n dataExtensionSchemaId: string,\n fieldsToDelete: string[],\n ) {\n const { httpClient, errorHandler } = this;\n return errorHandler\n .withErrorHandler(\n () =>\n httpClient.request(\n deleteUserDefinedFields({\n dataExtensionSchemaId,\n fieldsToDelete,\n }),\n ),\n deleteUserDefinedFieldsErrors({\n translate: this.translate,\n }),\n )\n .then((res) => res.data);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.deleteUserDefinedFieldsErrors = void 0;
5
+ const deleteUserDefinedFieldsErrors = ({
6
+ translate: t
7
+ }) => {
8
+ return {
9
+ INVALID_NAMESPACE: () => ({
10
+ message: t('cairo.customFields.updateDataExtension.invalid-namespace.error'),
11
+ action: {
12
+ text: t('cairo.error.contactSupport.cta'),
13
+ onClick: () => {}
14
+ }
15
+ }),
16
+ FQDN_NOT_FOUND: () => ({
17
+ message: t('cairo.customFields.updateDataExtension.fqdn-not-found.error'),
18
+ action: {
19
+ text: t('cairo.error.contactSupport.cta'),
20
+ onClick: () => {}
21
+ }
22
+ }),
23
+ REMOVING_FIELDS_IS_DISALLOWED: () => ({
24
+ message: t('cairo.customFields.updateDataExtension.removing-fields-not-allowed.error'),
25
+ action: {
26
+ text: t('cairo.error.contactSupport.cta'),
27
+ onClick: () => {}
28
+ }
29
+ })
30
+ };
31
+ };
32
+ exports.deleteUserDefinedFieldsErrors = deleteUserDefinedFieldsErrors;
33
+ //# sourceMappingURL=deleteUserDefinedFieldsErrors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["deleteUserDefinedFieldsErrors","translate","t","INVALID_NAMESPACE","message","action","text","onClick","FQDN_NOT_FOUND","REMOVING_FIELDS_IS_DISALLOWED","exports"],"sources":["../../../../src/services/DataExtensionService/deleteUserDefinedFieldsErrors.ts"],"sourcesContent":["import { Translate } from '../translations';\nimport type { errorHandler } from '@wix/essentials';\nimport type { deleteUserDefinedFields } from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/http';\n\nexport const deleteUserDefinedFieldsErrors = ({\n translate: t,\n}: {\n translate: Translate;\n}): errorHandler.ErrorCodesMap<typeof deleteUserDefinedFields> => {\n return {\n INVALID_NAMESPACE: () => ({\n message: t(\n 'cairo.customFields.updateDataExtension.invalid-namespace.error',\n ),\n action: {\n text: t('cairo.error.contactSupport.cta'),\n onClick: () => {},\n },\n }),\n FQDN_NOT_FOUND: () => ({\n message: t('cairo.customFields.updateDataExtension.fqdn-not-found.error'),\n action: {\n text: t('cairo.error.contactSupport.cta'),\n onClick: () => {},\n },\n }),\n REMOVING_FIELDS_IS_DISALLOWED: () => ({\n message: t(\n 'cairo.customFields.updateDataExtension.removing-fields-not-allowed.error',\n ),\n action: {\n text: t('cairo.error.contactSupport.cta'),\n onClick: () => {},\n },\n }),\n };\n};\n"],"mappings":";;;;AAIO,MAAMA,6BAA6B,GAAGA,CAAC;EAC5CC,SAAS,EAAEC;AAGb,CAAC,KAAiE;EAChE,OAAO;IACLC,iBAAiB,EAAEA,CAAA,MAAO;MACxBC,OAAO,EAAEF,CAAC,CACR,gEACF,CAAC;MACDG,MAAM,EAAE;QACNC,IAAI,EAAEJ,CAAC,CAAC,gCAAgC,CAAC;QACzCK,OAAO,EAAEA,CAAA,KAAM,CAAC;MAClB;IACF,CAAC,CAAC;IACFC,cAAc,EAAEA,CAAA,MAAO;MACrBJ,OAAO,EAAEF,CAAC,CAAC,6DAA6D,CAAC;MACzEG,MAAM,EAAE;QACNC,IAAI,EAAEJ,CAAC,CAAC,gCAAgC,CAAC;QACzCK,OAAO,EAAEA,CAAA,KAAM,CAAC;MAClB;IACF,CAAC,CAAC;IACFE,6BAA6B,EAAEA,CAAA,MAAO;MACpCL,OAAO,EAAEF,CAAC,CACR,0EACF,CAAC;MACDG,MAAM,EAAE;QACNC,IAAI,EAAEJ,CAAC,CAAC,gCAAgC,CAAC;QACzCK,OAAO,EAAEA,CAAA,KAAM,CAAC;MAClB;IACF,CAAC;EACH,CAAC;AACH,CAAC;AAACG,OAAA,CAAAV,6BAAA,GAAAA,6BAAA","ignoreList":[]}