@atlaskit/link-datasource 1.16.5 → 1.17.1

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 (32) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/cjs/analytics/constants.js +1 -1
  3. package/dist/cjs/hooks/useAssetsClient.js +7 -4
  4. package/dist/cjs/hooks/useDatasourceTableState.js +83 -52
  5. package/dist/cjs/hooks/useValidateAqlText.js +5 -2
  6. package/dist/cjs/services/cmdbService.js +50 -35
  7. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +58 -15
  8. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.js +26 -3
  9. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/index.js +6 -3
  10. package/dist/es2019/analytics/constants.js +1 -1
  11. package/dist/es2019/hooks/useAssetsClient.js +8 -4
  12. package/dist/es2019/hooks/useDatasourceTableState.js +40 -12
  13. package/dist/es2019/hooks/useValidateAqlText.js +6 -2
  14. package/dist/es2019/services/cmdbService.js +27 -12
  15. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +41 -16
  16. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.js +23 -3
  17. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/index.js +5 -3
  18. package/dist/esm/analytics/constants.js +1 -1
  19. package/dist/esm/hooks/useAssetsClient.js +7 -4
  20. package/dist/esm/hooks/useDatasourceTableState.js +83 -52
  21. package/dist/esm/hooks/useValidateAqlText.js +5 -2
  22. package/dist/esm/services/cmdbService.js +50 -35
  23. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +59 -16
  24. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.js +26 -3
  25. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/index.js +7 -4
  26. package/dist/types/analytics/generated/analytics.types.d.ts +41 -1
  27. package/dist/types/services/cmdbService.d.ts +8 -4
  28. package/dist/types/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.d.ts +2 -1
  29. package/dist/types-ts4.5/analytics/generated/analytics.types.d.ts +41 -1
  30. package/dist/types-ts4.5/services/cmdbService.d.ts +8 -4
  31. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.d.ts +2 -1
  32. package/package.json +5 -4
@@ -1,24 +1,44 @@
1
1
  import React, { forwardRef } from 'react';
2
2
  import { FormattedMessage } from 'react-intl-next';
3
+ import Badge from '@atlaskit/badge';
3
4
  import Button from '@atlaskit/button/standard-button';
4
5
  import ChevronDownIcon from '@atlaskit/icon/glyph/chevron-down';
6
+ import { Box, Flex, xcss } from '@atlaskit/primitives';
5
7
  import { asyncPopupSelectMessages } from './messages';
8
+ const triggerButtonLabelStyles = xcss({
9
+ textOverflow: 'ellipsis',
10
+ overflow: 'hidden',
11
+ maxWidth: '150px'
12
+ });
13
+ const badgeStyles = xcss({
14
+ marginLeft: 'space.050'
15
+ });
6
16
  const PopupTrigger = /*#__PURE__*/forwardRef(({
7
17
  filterType,
8
18
  isSelected,
9
19
  isDisabled,
10
- onClick
20
+ onClick,
21
+ selectedOptions
11
22
  }, ref) => {
23
+ const [firstOption] = selectedOptions || [];
24
+ const hasOptions = selectedOptions && selectedOptions.length > 0;
12
25
  return /*#__PURE__*/React.createElement(Button, {
13
26
  ref: ref,
14
27
  appearance: "default",
15
- isSelected: isSelected,
28
+ isSelected: isSelected || hasOptions,
16
29
  isDisabled: isDisabled,
17
30
  onClick: onClick,
18
31
  testId: `jlol-basic-filter-${filterType}-trigger`,
19
32
  iconAfter: /*#__PURE__*/React.createElement(ChevronDownIcon, {
20
33
  label: ""
21
34
  })
22
- }, /*#__PURE__*/React.createElement(FormattedMessage, asyncPopupSelectMessages[`${filterType}Label`]));
35
+ }, /*#__PURE__*/React.createElement(Flex, null, /*#__PURE__*/React.createElement(Box, {
36
+ xcss: triggerButtonLabelStyles
37
+ }, /*#__PURE__*/React.createElement(FormattedMessage, asyncPopupSelectMessages[`${filterType}Label`]), firstOption && /*#__PURE__*/React.createElement(React.Fragment, null, ": ", firstOption.label)), selectedOptions && selectedOptions.length > 1 && /*#__PURE__*/React.createElement(Flex, {
38
+ xcss: badgeStyles,
39
+ alignItems: "center"
40
+ }, /*#__PURE__*/React.createElement(Badge, {
41
+ appearance: "primary"
42
+ }, "+", selectedOptions.length - 1))));
23
43
  });
24
44
  export default PopupTrigger;
@@ -1,4 +1,4 @@
1
- import React, { useEffect, useState } from 'react';
1
+ import React, { useCallback, useEffect, useState } from 'react';
2
2
  import { Flex, xcss } from '@atlaskit/primitives';
3
3
  import { isValidJql } from '../utils';
4
4
  import AsyncPopupSelect from './async-popup-select';
@@ -10,13 +10,15 @@ const BasicFilterContainer = ({
10
10
  jql,
11
11
  cloudId
12
12
  }) => {
13
- const [selection] = useState([]);
13
+ const [selection, setSelection] = useState([]);
14
14
  useEffect(() => {
15
15
  if (isValidJql(jql)) {
16
16
  // hydrate hook call goes in here
17
17
  }
18
18
  }, [jql]);
19
- const handleSelectionChange = () => {};
19
+ const handleSelectionChange = useCallback(options => {
20
+ setSelection(options);
21
+ }, [setSelection]);
20
22
  return /*#__PURE__*/React.createElement(Flex, {
21
23
  xcss: basicFilterContainerStyles,
22
24
  gap: "space.100",
@@ -1,5 +1,5 @@
1
1
  export var EVENT_CHANNEL = 'media';
2
2
  export var packageMetaData = {
3
3
  packageName: "@atlaskit/link-datasource",
4
- packageVersion: "1.16.5"
4
+ packageVersion: "1.17.1"
5
5
  };
@@ -2,6 +2,7 @@ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  import _regeneratorRuntime from "@babel/runtime/regenerator";
4
4
  import { useEffect, useState } from 'react';
5
+ import { useDatasourceAnalyticsEvents } from '../analytics';
5
6
  import { fetchObjectSchema, fetchObjectSchemas, getWorkspaceId } from '../services/cmdbService';
6
7
  var handleAssetsClientErrors = function handleAssetsClientErrors(errorSetter, error) {
7
8
  if (error instanceof Error) {
@@ -43,6 +44,8 @@ export var useAssetsClient = function useAssetsClient(initialParameters) {
43
44
  _useState16 = _slicedToArray(_useState15, 2),
44
45
  objectSchemasError = _useState16[0],
45
46
  setObjectSchemasError = _useState16[1];
47
+ var _useDatasourceAnalyti = useDatasourceAnalyticsEvents(),
48
+ fireEvent = _useDatasourceAnalyti.fireEvent;
46
49
 
47
50
  /*
48
51
  * We wrap this in nested try/catch blocks because we want to handle
@@ -59,7 +62,7 @@ export var useAssetsClient = function useAssetsClient(initialParameters) {
59
62
  setWorkspaceError(undefined);
60
63
  _context.prev = 2;
61
64
  _context.next = 5;
62
- return getWorkspaceId();
65
+ return getWorkspaceId(fireEvent);
63
66
  case 5:
64
67
  _workspaceId = _context.sent;
65
68
  setWorkspaceId(_workspaceId);
@@ -70,7 +73,7 @@ export var useAssetsClient = function useAssetsClient(initialParameters) {
70
73
  }
71
74
  _context.prev = 8;
72
75
  _context.next = 11;
73
- return fetchObjectSchema(_workspaceId, initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.schemaId);
76
+ return fetchObjectSchema(_workspaceId, initialParameters === null || initialParameters === void 0 ? void 0 : initialParameters.schemaId, fireEvent);
74
77
  case 11:
75
78
  fetchedObjectSchema = _context.sent;
76
79
  setExistingObjectSchema(fetchedObjectSchema);
@@ -83,7 +86,7 @@ export var useAssetsClient = function useAssetsClient(initialParameters) {
83
86
  case 18:
84
87
  _context.prev = 18;
85
88
  _context.next = 21;
86
- return fetchObjectSchemas(_workspaceId);
89
+ return fetchObjectSchemas(_workspaceId, undefined, fireEvent);
87
90
  case 21:
88
91
  fetchedObjectSchemasResponse = _context.sent;
89
92
  setObjectSchemas(fetchedObjectSchemasResponse.values);
@@ -111,7 +114,7 @@ export var useAssetsClient = function useAssetsClient(initialParameters) {
111
114
  }
112
115
  }, _callee, null, [[2, 31, 34, 37], [8, 15], [18, 26]]);
113
116
  }))();
114
- }, [initialParameters]);
117
+ }, [initialParameters, fireEvent]);
115
118
  return {
116
119
  workspaceId: workspaceId,
117
120
  workspaceError: workspaceError,
@@ -13,6 +13,8 @@ export var useDatasourceTableState = function useDatasourceTableState(_ref) {
13
13
  fieldKeys = _ref$fieldKeys === void 0 ? [] : _ref$fieldKeys;
14
14
  var _useDatasourceAnalyti = useDatasourceAnalyticsEvents(),
15
15
  fireEvent = _useDatasourceAnalyti.fireEvent;
16
+ var idFieldCount = 1;
17
+ var keyFieldCount = 1;
16
18
  var _useState = useState([]),
17
19
  _useState2 = _slicedToArray(_useState, 2),
18
20
  defaultVisibleColumnKeys = _useState2[0],
@@ -21,42 +23,48 @@ export var useDatasourceTableState = function useDatasourceTableState(_ref) {
21
23
  _useState4 = _slicedToArray(_useState3, 2),
22
24
  lastRequestedFieldKeys = _useState4[0],
23
25
  setLastRequestedFieldKeys = _useState4[1];
24
- var _useState5 = useState('empty'),
26
+ var _useState5 = useState({
27
+ properties: []
28
+ }),
25
29
  _useState6 = _slicedToArray(_useState5, 2),
26
- status = _useState6[0],
27
- setStatus = _useState6[1];
28
- var _useState7 = useState([]),
30
+ fullSchema = _useState6[0],
31
+ setFullSchema = _useState6[1];
32
+ var _useState7 = useState('empty'),
29
33
  _useState8 = _slicedToArray(_useState7, 2),
30
- responseItems = _useState8[0],
31
- setResponseItems = _useState8[1];
32
- var _useState9 = useState(true),
34
+ status = _useState8[0],
35
+ setStatus = _useState8[1];
36
+ var _useState9 = useState([]),
33
37
  _useState10 = _slicedToArray(_useState9, 2),
34
- hasNextPage = _useState10[0],
35
- setHasNextPage = _useState10[1];
36
- var _useState11 = useState(undefined),
38
+ responseItems = _useState10[0],
39
+ setResponseItems = _useState10[1];
40
+ var _useState11 = useState(true),
37
41
  _useState12 = _slicedToArray(_useState11, 2),
38
- nextCursor = _useState12[0],
39
- setNextCursor = _useState12[1];
40
- var _useState13 = useState([]),
42
+ hasNextPage = _useState12[0],
43
+ setHasNextPage = _useState12[1];
44
+ var _useState13 = useState(undefined),
41
45
  _useState14 = _slicedToArray(_useState13, 2),
42
- columns = _useState14[0],
43
- setColumns = _useState14[1];
44
- var _useState15 = useState(undefined),
46
+ nextCursor = _useState14[0],
47
+ setNextCursor = _useState14[1];
48
+ var _useState15 = useState([]),
45
49
  _useState16 = _slicedToArray(_useState15, 2),
46
- totalCount = _useState16[0],
47
- setTotalCount = _useState16[1];
48
- var _useState17 = useState(false),
50
+ columns = _useState16[0],
51
+ setColumns = _useState16[1];
52
+ var _useState17 = useState(undefined),
49
53
  _useState18 = _slicedToArray(_useState17, 2),
50
- shouldForceRequest = _useState18[0],
51
- setShouldForceRequest = _useState18[1];
52
- var _useState19 = useState([]),
54
+ totalCount = _useState18[0],
55
+ setTotalCount = _useState18[1];
56
+ var _useState19 = useState(false),
53
57
  _useState20 = _slicedToArray(_useState19, 2),
54
- destinationObjectTypes = _useState20[0],
55
- setDestinationObjectTypes = _useState20[1];
56
- var _useState21 = useState(),
58
+ shouldForceRequest = _useState20[0],
59
+ setShouldForceRequest = _useState20[1];
60
+ var _useState21 = useState([]),
57
61
  _useState22 = _slicedToArray(_useState21, 2),
58
- extensionKey = _useState22[0],
59
- setExtensionKey = _useState22[1];
62
+ destinationObjectTypes = _useState22[0],
63
+ setDestinationObjectTypes = _useState22[1];
64
+ var _useState23 = useState(),
65
+ _useState24 = _slicedToArray(_useState23, 2),
66
+ extensionKey = _useState24[0],
67
+ setExtensionKey = _useState24[1];
60
68
  var _useDatasourceClientE = useDatasourceClientExtension(),
61
69
  getDatasourceData = _useDatasourceClientE.getDatasourceData,
62
70
  getDatasourceDetails = _useDatasourceClientE.getDatasourceDetails;
@@ -114,21 +122,39 @@ export var useDatasourceTableState = function useDatasourceTableState(_ref) {
114
122
  }
115
123
  }, _callee, null, [[2, 17]]);
116
124
  })), [columns, datasourceId, getDatasourceDetails, parameters]);
117
- var applySchemaProperties = useCallback(function (properties) {
118
- if (!isEqual(columns, properties)) {
119
- setColumns(properties);
125
+ var applySchemaProperties = useCallback(function (schema, fieldKeys) {
126
+ var properties = schema.properties,
127
+ _schema$defaultProper = schema.defaultProperties,
128
+ defaultProperties = _schema$defaultProper === void 0 ? [] : _schema$defaultProper;
129
+ var propertiesToBeUsed = properties;
130
+ var propertyKeysToBeUsed = Array.isArray(fieldKeys) && fieldKeys.length > 0 ? fieldKeys : defaultProperties;
131
+ if (fieldKeys.length > 0 || defaultProperties.length > 0) {
132
+ propertiesToBeUsed = properties.filter(function (property) {
133
+ return propertyKeysToBeUsed.includes(property.key);
134
+ });
135
+ }
136
+
137
+ /*Jira adds identifier fields like id and key to all data responses
138
+ Since defaultProperties already send back the keyField, we are accounting only
139
+ for the idField when we are using defaulProperties
140
+ */
141
+ if (properties.length > fieldKeys.length + idFieldCount + keyFieldCount && properties.length > defaultProperties.length + idFieldCount) {
142
+ setFullSchema(schema);
120
143
  }
121
- var defaultProperties = properties.map(function (prop) {
144
+ if (!isEqual(columns, propertiesToBeUsed)) {
145
+ setColumns(propertiesToBeUsed);
146
+ }
147
+ var newProperties = propertiesToBeUsed.map(function (prop) {
122
148
  return prop.key;
123
149
  });
124
150
 
125
151
  // when loading for the first time, we will need to set default visible props as /data does not give you that info
126
152
  // also, since we dont pass any fields, we will need to set this info as lastRequestedFieldKeys
127
- if (!isEqual(defaultVisibleColumnKeys, defaultProperties)) {
128
- setDefaultVisibleColumnKeys(defaultProperties);
153
+ if (!isEqual(defaultVisibleColumnKeys, newProperties)) {
154
+ setDefaultVisibleColumnKeys(newProperties);
129
155
  }
130
- if (!isEqual(lastRequestedFieldKeys, defaultProperties)) {
131
- setLastRequestedFieldKeys(defaultProperties);
156
+ if (!isEqual(lastRequestedFieldKeys, newProperties)) {
157
+ setLastRequestedFieldKeys(newProperties);
132
158
  }
133
159
  }, [columns, defaultVisibleColumnKeys, lastRequestedFieldKeys]);
134
160
  var onNextPage = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
@@ -138,6 +164,7 @@ export var useDatasourceTableState = function useDatasourceTableState(_ref) {
138
164
  shouldRequestFirstPage,
139
165
  _requestInfo$shouldFo,
140
166
  shouldForceRequest,
167
+ isFullSchemaLoaded,
141
168
  datasourceDataRequest,
142
169
  _yield$getDatasourceD2,
143
170
  _yield$getDatasourceD3,
@@ -164,18 +191,19 @@ export var useDatasourceTableState = function useDatasourceTableState(_ref) {
164
191
  return _context2.abrupt("return");
165
192
  case 3:
166
193
  _requestInfo$isSchema = requestInfo.isSchemaFromData, isSchemaFromData = _requestInfo$isSchema === void 0 ? true : _requestInfo$isSchema, shouldRequestFirstPage = requestInfo.shouldRequestFirstPage, _requestInfo$shouldFo = requestInfo.shouldForceRequest, shouldForceRequest = _requestInfo$shouldFo === void 0 ? false : _requestInfo$shouldFo;
194
+ isFullSchemaLoaded = fullSchema.properties.length > 0;
167
195
  datasourceDataRequest = {
168
196
  parameters: parameters,
169
197
  pageSize: DEFAULT_GET_DATASOURCE_DATA_PAGE_SIZE,
170
198
  pageCursor: shouldRequestFirstPage ? undefined : nextCursor,
171
199
  fields: fieldKeys,
172
- includeSchema: isSchemaFromData
200
+ includeSchema: isFullSchemaLoaded ? false : isSchemaFromData
173
201
  };
174
202
  setStatus('loading');
175
- _context2.prev = 6;
176
- _context2.next = 9;
203
+ _context2.prev = 7;
204
+ _context2.next = 10;
177
205
  return getDatasourceData(datasourceId, datasourceDataRequest, shouldForceRequest);
178
- case 9:
206
+ case 10:
179
207
  _yield$getDatasourceD2 = _context2.sent;
180
208
  _yield$getDatasourceD3 = _yield$getDatasourceD2.meta;
181
209
  access = _yield$getDatasourceD3.access;
@@ -187,12 +215,12 @@ export var useDatasourceTableState = function useDatasourceTableState(_ref) {
187
215
  _totalCount = _yield$getDatasourceD4.totalCount;
188
216
  schema = _yield$getDatasourceD4.schema;
189
217
  if (!(access === 'forbidden' || access === 'unauthorized')) {
190
- _context2.next = 22;
218
+ _context2.next = 23;
191
219
  break;
192
220
  }
193
221
  setStatus('unauthorized');
194
222
  return _context2.abrupt("return");
195
- case 22:
223
+ case 23:
196
224
  setExtensionKey(_extensionKey);
197
225
  setDestinationObjectTypes(_destinationObjectTypes);
198
226
  setTotalCount(_totalCount);
@@ -207,8 +235,8 @@ export var useDatasourceTableState = function useDatasourceTableState(_ref) {
207
235
  if (fieldKeys.length > 0) {
208
236
  setLastRequestedFieldKeys(fieldKeys);
209
237
  }
210
- if (isSchemaFromData && schema && items.length > 0) {
211
- applySchemaProperties(schema.properties);
238
+ if ((isSchemaFromData && schema || fullSchema.properties.length > 0) && items.length > 0) {
239
+ applySchemaProperties(schema || fullSchema, fieldKeys);
212
240
  }
213
241
  isUserLoadingNextPage = (responseItems === null || responseItems === void 0 ? void 0 : responseItems.length) !== 0 && !shouldRequestFirstPage;
214
242
  if (isUserLoadingNextPage) {
@@ -221,25 +249,25 @@ export var useDatasourceTableState = function useDatasourceTableState(_ref) {
221
249
  });
222
250
  }
223
251
  setStatus('resolved');
224
- _context2.next = 41;
252
+ _context2.next = 42;
225
253
  break;
226
- case 35:
227
- _context2.prev = 35;
228
- _context2.t0 = _context2["catch"](6);
254
+ case 36:
255
+ _context2.prev = 36;
256
+ _context2.t0 = _context2["catch"](7);
229
257
  if (!(_context2.t0 instanceof Response && (_context2.t0.status === 401 || _context2.t0.status === 403))) {
230
- _context2.next = 40;
258
+ _context2.next = 41;
231
259
  break;
232
260
  }
233
261
  setStatus('unauthorized');
234
262
  return _context2.abrupt("return");
235
- case 40:
236
- setStatus('rejected');
237
263
  case 41:
264
+ setStatus('rejected');
265
+ case 42:
238
266
  case "end":
239
267
  return _context2.stop();
240
268
  }
241
- }, _callee2, null, [[6, 35]]);
242
- })), [parameters, fieldKeys, nextCursor, getDatasourceData, datasourceId, responseItems === null || responseItems === void 0 ? void 0 : responseItems.length, applySchemaProperties, fireEvent]);
269
+ }, _callee2, null, [[7, 36]]);
270
+ })), [parameters, fieldKeys, nextCursor, getDatasourceData, datasourceId, responseItems === null || responseItems === void 0 ? void 0 : responseItems.length, applySchemaProperties, fireEvent, fullSchema]);
243
271
  var reset = useCallback(function (options) {
244
272
  setStatus('empty');
245
273
  setResponseItems([]);
@@ -247,6 +275,9 @@ export var useDatasourceTableState = function useDatasourceTableState(_ref) {
247
275
  setNextCursor(undefined);
248
276
  setTotalCount(undefined);
249
277
  setLastRequestedFieldKeys([]);
278
+ setFullSchema({
279
+ properties: []
280
+ });
250
281
  setShouldForceRequest((options === null || options === void 0 ? void 0 : options.shouldForceRequest) || false);
251
282
  if (options !== null && options !== void 0 && options.shouldResetColumns) {
252
283
  setColumns([]);
@@ -2,6 +2,7 @@ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  import _regeneratorRuntime from "@babel/runtime/regenerator";
4
4
  import { useCallback, useState } from 'react';
5
+ import { useDatasourceAnalyticsEvents } from '../analytics';
5
6
  import { validateAql } from '../services/cmdbService';
6
7
  export var useValidateAqlText = function useValidateAqlText(workspaceId) {
7
8
  var _useState = useState(false),
@@ -16,6 +17,8 @@ export var useValidateAqlText = function useValidateAqlText(workspaceId) {
16
17
  _useState6 = _slicedToArray(_useState5, 2),
17
18
  error = _useState6[0],
18
19
  setError = _useState6[1];
20
+ var _useDatasourceAnalyti = useDatasourceAnalyticsEvents(),
21
+ fireEvent = _useDatasourceAnalyti.fireEvent;
19
22
  var validateAqlText = useCallback( /*#__PURE__*/function () {
20
23
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(aql) {
21
24
  var isValid, message, _validateAqlResponse$, validateAqlResponse;
@@ -30,7 +33,7 @@ export var useValidateAqlText = function useValidateAqlText(workspaceId) {
30
33
  _context.next = 7;
31
34
  return validateAql(workspaceId, {
32
35
  qlQuery: aql
33
- });
36
+ }, fireEvent);
34
37
  case 7:
35
38
  validateAqlResponse = _context.sent;
36
39
  setIsValidAqlText(validateAqlResponse.isValid);
@@ -64,7 +67,7 @@ export var useValidateAqlText = function useValidateAqlText(workspaceId) {
64
67
  return function (_x) {
65
68
  return _ref.apply(this, arguments);
66
69
  };
67
- }(), [workspaceId]);
70
+ }(), [workspaceId, fireEvent]);
68
71
  return {
69
72
  isValidAqlText: isValidAqlText,
70
73
  validateAqlText: validateAqlText,
@@ -3,7 +3,7 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
3
3
  import { request } from '@atlaskit/linking-common';
4
4
  import { FetchError, getStatusCodeGroup, mapFetchErrors, PermissionError } from './cmdbService.utils';
5
5
  export var getWorkspaceId = /*#__PURE__*/function () {
6
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
6
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(fireEvent) {
7
7
  var url, _workspaceDetailsResp, workspaceDetailsResponse, error;
8
8
  return _regeneratorRuntime.wrap(function _callee$(_context) {
9
9
  while (1) switch (_context.prev = _context.next) {
@@ -20,32 +20,35 @@ export var getWorkspaceId = /*#__PURE__*/function () {
20
20
  }
21
21
  throw new PermissionError('No workspace results found');
22
22
  case 7:
23
+ fireEvent && fireEvent('operational.getWorkspaceId.success', {});
23
24
  return _context.abrupt("return", workspaceDetailsResponse.results[0].id);
24
- case 10:
25
- _context.prev = 10;
25
+ case 11:
26
+ _context.prev = 11;
26
27
  _context.t0 = _context["catch"](1);
27
28
  error = mapFetchErrors(_context.t0);
28
29
  if (error instanceof FetchError) {
29
- // TODO Fire error operational event for workspace here before remapping to PermissionError
30
- // Only 429 and 5xx errors will be treated as FetchErrors otherwise PermissionError
30
+ fireEvent && fireEvent('operational.getWorkspaceId.failed', {
31
+ statusCodeGroup: getStatusCodeGroup(error)
32
+ });
33
+ // Only 429 and5xx errors will be treated as FetchErrors otherwise PermissionError
31
34
  if (getStatusCodeGroup(error) !== '5xx' && error.statusCode !== 429) {
32
35
  error = new PermissionError('Failed to fetch workspace');
33
36
  }
34
37
  }
35
38
  throw error;
36
- case 15:
39
+ case 16:
37
40
  case "end":
38
41
  return _context.stop();
39
42
  }
40
- }, _callee, null, [[1, 10]]);
43
+ }, _callee, null, [[1, 11]]);
41
44
  }));
42
- return function getWorkspaceId() {
45
+ return function getWorkspaceId(_x) {
43
46
  return _ref.apply(this, arguments);
44
47
  };
45
48
  }();
46
49
  export var validateAql = /*#__PURE__*/function () {
47
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(workspaceId, data) {
48
- var url, error;
50
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(workspaceId, data, fireEvent) {
51
+ var url, response, error;
49
52
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
50
53
  while (1) switch (_context2.prev = _context2.next) {
51
54
  case 0:
@@ -57,31 +60,35 @@ export var validateAql = /*#__PURE__*/function () {
57
60
  context: 'SMART_LINKS'
58
61
  }, undefined, [200, 201, 202, 203, 204]);
59
62
  case 4:
60
- return _context2.abrupt("return", _context2.sent);
61
- case 7:
62
- _context2.prev = 7;
63
+ response = _context2.sent;
64
+ fireEvent && fireEvent('operational.validateAql.success', {});
65
+ return _context2.abrupt("return", response);
66
+ case 9:
67
+ _context2.prev = 9;
63
68
  _context2.t0 = _context2["catch"](1);
64
69
  error = mapFetchErrors(_context2.t0);
65
70
  if (error instanceof FetchError) {
66
- // TODO Fire error operational event for aql here before remapping to PermissionError
71
+ fireEvent && fireEvent('operational.validateAql.failed', {
72
+ statusCodeGroup: getStatusCodeGroup(error)
73
+ });
67
74
  if (error.statusCode === 401 || error.statusCode === 403) {
68
75
  error = new PermissionError('Failed to fetch object schemas');
69
76
  }
70
77
  }
71
78
  throw error;
72
- case 12:
79
+ case 14:
73
80
  case "end":
74
81
  return _context2.stop();
75
82
  }
76
- }, _callee2, null, [[1, 7]]);
83
+ }, _callee2, null, [[1, 9]]);
77
84
  }));
78
- return function validateAql(_x, _x2) {
85
+ return function validateAql(_x2, _x3, _x4) {
79
86
  return _ref2.apply(this, arguments);
80
87
  };
81
88
  }();
82
89
  export var fetchObjectSchema = /*#__PURE__*/function () {
83
- var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(workspaceId, schemaId) {
84
- var url, error;
90
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(workspaceId, schemaId, fireEvent) {
91
+ var url, response, error;
85
92
  return _regeneratorRuntime.wrap(function _callee3$(_context3) {
86
93
  while (1) switch (_context3.prev = _context3.next) {
87
94
  case 0:
@@ -90,31 +97,35 @@ export var fetchObjectSchema = /*#__PURE__*/function () {
90
97
  _context3.next = 4;
91
98
  return request('get', url, undefined, undefined, [200, 201, 202, 203, 204]);
92
99
  case 4:
93
- return _context3.abrupt("return", _context3.sent);
94
- case 7:
95
- _context3.prev = 7;
100
+ response = _context3.sent;
101
+ fireEvent && fireEvent('operational.objectSchema.success', {});
102
+ return _context3.abrupt("return", response);
103
+ case 9:
104
+ _context3.prev = 9;
96
105
  _context3.t0 = _context3["catch"](1);
97
106
  error = mapFetchErrors(_context3.t0);
98
107
  if (error instanceof FetchError) {
99
- // TODO Fire error operational event for object schema here before remapping to PermissionError
108
+ fireEvent && fireEvent('operational.objectSchema.failed', {
109
+ statusCodeGroup: getStatusCodeGroup(error)
110
+ });
100
111
  if (error.statusCode === 401 || error.statusCode === 403) {
101
112
  error = new PermissionError('Failed to fetch object schemas');
102
113
  }
103
114
  }
104
115
  throw error;
105
- case 12:
116
+ case 14:
106
117
  case "end":
107
118
  return _context3.stop();
108
119
  }
109
- }, _callee3, null, [[1, 7]]);
120
+ }, _callee3, null, [[1, 9]]);
110
121
  }));
111
- return function fetchObjectSchema(_x3, _x4) {
122
+ return function fetchObjectSchema(_x5, _x6, _x7) {
112
123
  return _ref3.apply(this, arguments);
113
124
  };
114
125
  }();
115
126
  export var fetchObjectSchemas = /*#__PURE__*/function () {
116
- var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(workspaceId, query) {
117
- var queryParams, url, error;
127
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(workspaceId, query, fireEvent) {
128
+ var queryParams, url, response, error;
118
129
  return _regeneratorRuntime.wrap(function _callee4$(_context4) {
119
130
  while (1) switch (_context4.prev = _context4.next) {
120
131
  case 0:
@@ -127,25 +138,29 @@ export var fetchObjectSchemas = /*#__PURE__*/function () {
127
138
  _context4.next = 8;
128
139
  return request('get', url, undefined, undefined, [200, 201, 202, 203, 204]);
129
140
  case 8:
130
- return _context4.abrupt("return", _context4.sent);
131
- case 11:
132
- _context4.prev = 11;
141
+ response = _context4.sent;
142
+ fireEvent && fireEvent('operational.objectSchemas.success', {});
143
+ return _context4.abrupt("return", response);
144
+ case 13:
145
+ _context4.prev = 13;
133
146
  _context4.t0 = _context4["catch"](5);
134
147
  error = mapFetchErrors(_context4.t0);
135
148
  if (error instanceof FetchError) {
136
- // TODO Fire error operational event for object schemas here before remapping to PermissionError
149
+ fireEvent && fireEvent('operational.objectSchemas.failed', {
150
+ statusCodeGroup: getStatusCodeGroup(error)
151
+ });
137
152
  if (error.statusCode === 401 || error.statusCode === 403) {
138
153
  error = new PermissionError('Failed to fetch object schemas');
139
154
  }
140
155
  }
141
156
  throw error;
142
- case 16:
157
+ case 18:
143
158
  case "end":
144
159
  return _context4.stop();
145
160
  }
146
- }, _callee4, null, [[5, 11]]);
161
+ }, _callee4, null, [[5, 13]]);
147
162
  }));
148
- return function fetchObjectSchemas(_x5, _x6) {
163
+ return function fetchObjectSchemas(_x8, _x9, _x10) {
149
164
  return _ref4.apply(this, arguments);
150
165
  };
151
166
  }();