mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
[Cases] Version metrics
API types (#162817)
## Summary This PR versions the `metrics` domain object and its corresponding APIs ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios ### For maintainers - [x] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
This commit is contained in:
parent
cb31a10822
commit
3b083b47a2
65 changed files with 117 additions and 107 deletions
|
@ -8,4 +8,3 @@
|
|||
export * from './helpers';
|
||||
export * from './runtime_types';
|
||||
export * from './saved_object';
|
||||
export * from './metrics';
|
||||
|
|
|
@ -58,4 +58,5 @@ export { getCasesFromAlertsUrl, getCaseFindUserActionsUrl, throwErrors } from '.
|
|||
export { StatusAll } from './ui/types';
|
||||
export { createUICapabilities } from './utils/capabilities';
|
||||
export { getApiTags } from './utils/api_tags';
|
||||
export { CaseMetricsFeature } from './api/metrics/case';
|
||||
export { CaseMetricsFeature } from './types/api';
|
||||
export type { SingleCaseMetricsResponse, CasesMetricsResponse } from './types/api';
|
||||
|
|
|
@ -15,6 +15,7 @@ export * from './stats/latest';
|
|||
export * from './user/latest';
|
||||
export * from './connector/latest';
|
||||
export * from './attachment/latest';
|
||||
export * from './metrics/latest';
|
||||
|
||||
// V1
|
||||
export * as configureApiV1 from './configure/v1';
|
||||
|
@ -26,3 +27,4 @@ export * as externalServiceApiV1 from './external_service/v1';
|
|||
export * as userApiV1 from './user/v1';
|
||||
export * as connectorApiV1 from './connector/v1';
|
||||
export * as attachmentApiV1 from './attachment/v1';
|
||||
export * as metricsApiV1 from './metrics/v1';
|
||||
|
|
|
@ -5,4 +5,4 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
export * from './case';
|
||||
export * from './v1';
|
|
@ -12,7 +12,7 @@ import {
|
|||
SingleCaseMetricsResponseRt,
|
||||
CasesMetricsResponseRt,
|
||||
CaseMetricsFeature,
|
||||
} from './case';
|
||||
} from './v1';
|
||||
|
||||
describe('Metrics case', () => {
|
||||
describe('SingleCaseMetricsRequestRt', () => {
|
|
@ -35,8 +35,10 @@ import type {
|
|||
GetCaseUsersResponse,
|
||||
UserActionFindRequestTypes,
|
||||
UserActionFindResponse,
|
||||
CaseMetricsFeature,
|
||||
CasesMetricsResponse,
|
||||
SingleCaseMetricsResponse,
|
||||
} from '../types/api';
|
||||
import type { CaseMetricsFeature, CasesMetricsResponse, SingleCaseMetricsResponse } from '../api';
|
||||
|
||||
type DeepRequired<T> = { [K in keyof T]: DeepRequired<T[K]> } & Required<T>;
|
||||
|
||||
|
|
|
@ -5,11 +5,10 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import type { CasesMetricsRequest } from '../../../common/api';
|
||||
import type { HTTPService } from '..';
|
||||
import { casesMetrics, casesStatus } from '../../containers/mock';
|
||||
import type { CasesMetrics, CasesStatus } from '../../containers/types';
|
||||
import type { CasesFindRequest } from '../../../common/types/api';
|
||||
import type { CasesFindRequest, CasesMetricsRequest } from '../../../common/types/api';
|
||||
|
||||
export const getCasesStatus = async ({
|
||||
http,
|
||||
|
|
|
@ -13,16 +13,16 @@ import type {
|
|||
CasesFindResponse,
|
||||
CasesStatusResponse,
|
||||
CasesBulkGetResponse,
|
||||
CasesMetricsResponse,
|
||||
} from '../../common/types/api';
|
||||
import {
|
||||
CasesFindResponseRt,
|
||||
CasesStatusResponseRt,
|
||||
CasesBulkGetResponseRt,
|
||||
CasesMetricsResponseRt,
|
||||
} from '../../common/types/api';
|
||||
import { createToasterPlainError } from '../containers/utils';
|
||||
import { throwErrors } from '../../common';
|
||||
import type { CasesMetricsResponse } from '../../common/api';
|
||||
import { CasesMetricsResponseRt } from '../../common/api';
|
||||
|
||||
export const decodeCasesFindResponse = (respCases?: CasesFindResponse) =>
|
||||
pipe(CasesFindResponseRt.decode(respCases), fold(throwErrors(createToasterPlainError), identity));
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { CaseMetricsFeature } from '../../common/api/metrics/case';
|
||||
import { CaseMetricsFeature } from '../../common/types/api';
|
||||
import { httpServiceMock } from '@kbn/core/public/mocks';
|
||||
import { bulkGetCases, getCases, getCasesMetrics } from '.';
|
||||
import { allCases, allCasesSnake, casesSnake } from '../containers/mock';
|
||||
|
|
|
@ -13,6 +13,8 @@ import type {
|
|||
CasesStatusResponse,
|
||||
CasesBulkGetRequest,
|
||||
CasesBulkGetResponse,
|
||||
CasesMetricsRequest,
|
||||
CasesMetricsResponse,
|
||||
} from '../../common/types/api';
|
||||
import type { CasesStatus, CasesMetrics, CasesFindResponseUI } from '../../common/ui';
|
||||
import {
|
||||
|
@ -21,7 +23,6 @@ import {
|
|||
CASE_STATUS_URL,
|
||||
INTERNAL_BULK_GET_CASES_URL,
|
||||
} from '../../common/constants';
|
||||
import type { CasesMetricsRequest, CasesMetricsResponse } from '../../common/api';
|
||||
import { convertAllCasesToCamel, convertToCamelCase } from './utils';
|
||||
import {
|
||||
decodeCasesBulkGetResponse,
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { CaseMetricsFeature } from '../../../common/api/metrics/case';
|
||||
import { CaseMetricsFeature } from '../../../common/types/api';
|
||||
import { httpServiceMock } from '@kbn/core/public/mocks';
|
||||
import { createClientAPI } from '.';
|
||||
import { allCases, allCasesSnake, casesSnake } from '../../containers/mock';
|
||||
|
|
|
@ -11,8 +11,8 @@ import type {
|
|||
GetRelatedCasesByAlertResponse,
|
||||
CasesFindRequest,
|
||||
CasesStatusRequest,
|
||||
CasesMetricsRequest,
|
||||
} from '../../../common/types/api';
|
||||
import type { CasesMetricsRequest } from '../../../common/api';
|
||||
import { getCasesFromAlertsUrl } from '../../../common/api';
|
||||
import { bulkGetCases, getCases, getCasesMetrics, getCasesStatus } from '../../api';
|
||||
import type { CasesFindResponseUI, CasesStatus, CasesMetrics } from '../../../common/ui';
|
||||
|
|
|
@ -14,7 +14,7 @@ import { useCasesFeatures } from './use_cases_features';
|
|||
import { TestProviders } from './mock/test_providers';
|
||||
import type { LicenseType } from '@kbn/licensing-plugin/common/types';
|
||||
import { LICENSE_TYPE } from '@kbn/licensing-plugin/common/types';
|
||||
import { CaseMetricsFeature } from '../../common/api/metrics/case';
|
||||
import { CaseMetricsFeature } from '../../common/types/api';
|
||||
|
||||
describe('useCasesFeatures', () => {
|
||||
// isAlertsEnabled, isSyncAlertsEnabled, alerts
|
||||
|
|
|
@ -22,7 +22,7 @@ import {
|
|||
import { useGetCaseConnectors } from '../../containers/use_get_case_connectors';
|
||||
import { useRefreshCaseViewPage } from '../case_view/use_on_refresh_case_view_page';
|
||||
import { getCaseConnectorsMockResponse } from '../../common/mock/connectors';
|
||||
import { CaseMetricsFeature } from '../../../common/api/metrics/case';
|
||||
import { CaseMetricsFeature } from '../../../common/types/api';
|
||||
|
||||
jest.mock('../../containers/use_get_case_connectors');
|
||||
jest.mock('../case_view/use_on_refresh_case_view_page');
|
||||
|
|
|
@ -18,7 +18,7 @@ import {
|
|||
} from '@elastic/eui';
|
||||
import type { CaseStatuses } from '../../../common/types/domain';
|
||||
import type { CaseUI } from '../../../common/ui/types';
|
||||
import { CaseMetricsFeature } from '../../../common/api';
|
||||
import { CaseMetricsFeature } from '../../../common/types/api';
|
||||
import * as i18n from '../case_view/translations';
|
||||
import { Actions } from './actions';
|
||||
import { StatusContextMenu } from './status_context_menu';
|
||||
|
|
|
@ -41,7 +41,7 @@ import { useInfiniteFindCaseUserActions } from '../../containers/use_infinite_fi
|
|||
import { useGetCaseUserActionsStats } from '../../containers/use_get_case_user_actions_stats';
|
||||
import { createQueryWithMarkup } from '../../common/test_utils';
|
||||
import { useCasesFeatures } from '../../common/use_cases_features';
|
||||
import { CaseMetricsFeature } from '../../../common/api/metrics/case';
|
||||
import { CaseMetricsFeature } from '../../../common/types/api';
|
||||
|
||||
jest.mock('../../containers/use_get_action_license');
|
||||
jest.mock('../../containers/use_update_case');
|
||||
|
|
|
@ -37,7 +37,7 @@ import { useInfiniteFindCaseUserActions } from '../../../containers/use_infinite
|
|||
import { useOnUpdateField } from '../use_on_update_field';
|
||||
import { useCasesFeatures } from '../../../common/use_cases_features';
|
||||
import { ConnectorTypes, UserActionTypes } from '../../../../common/types/domain';
|
||||
import { CaseMetricsFeature } from '../../../../common/api/metrics/case';
|
||||
import { CaseMetricsFeature } from '../../../../common/types/api';
|
||||
|
||||
jest.mock('../../../containers/use_infinite_find_case_user_actions');
|
||||
jest.mock('../../../containers/use_find_case_user_actions');
|
||||
|
|
|
@ -17,7 +17,7 @@ import type { SingleCaseMetrics, SingleCaseMetricsFeature } from '../../../../co
|
|||
import { TestProviders } from '../../../common/mock';
|
||||
import { useGetCaseMetrics } from '../../../containers/use_get_case_metrics';
|
||||
import { useCasesFeatures } from '../../../common/use_cases_features';
|
||||
import { CaseMetricsFeature } from '../../../../common/api/metrics/case';
|
||||
import { CaseMetricsFeature } from '../../../../common/types/api';
|
||||
|
||||
jest.mock('../../../containers/use_get_case_metrics');
|
||||
jest.mock('../../../common/use_cases_features');
|
||||
|
|
|
@ -9,7 +9,7 @@ import React, { useMemo } from 'react';
|
|||
import prettyMilliseconds from 'pretty-ms';
|
||||
import { EuiFlexGrid, EuiFlexGroup, EuiFlexItem, EuiIconTip, EuiSpacer } from '@elastic/eui';
|
||||
import { euiStyled } from '@kbn/kibana-react-plugin/common';
|
||||
import { CaseMetricsFeature } from '../../../../common/api/metrics/case';
|
||||
import { CaseMetricsFeature } from '../../../../common/types/api';
|
||||
import type { SingleCaseMetrics, SingleCaseMetricsFeature } from '../../../../common/ui';
|
||||
import {
|
||||
CASE_CREATED,
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
import React, { useMemo } from 'react';
|
||||
import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui';
|
||||
import { euiStyled } from '@kbn/kibana-react-plugin/common';
|
||||
import { CaseMetricsFeature } from '../../../../common/api/metrics/case';
|
||||
import { CaseMetricsFeature } from '../../../../common/types/api';
|
||||
import type { SingleCaseMetrics, SingleCaseMetricsFeature } from '../../../../common/ui';
|
||||
import {
|
||||
ASSOCIATED_HOSTS_METRIC,
|
||||
|
|
|
@ -39,17 +39,17 @@ import type {
|
|||
CaseUserActionsStats,
|
||||
} from '../../../common/ui/types';
|
||||
import { SeverityAll } from '../../../common/ui/types';
|
||||
import type { SingleCaseMetricsResponse } from '../../../common/api';
|
||||
import type {
|
||||
SingleCaseMetricsResponse,
|
||||
CasePostRequest,
|
||||
CasePatchRequest,
|
||||
AttachmentRequest,
|
||||
} from '../../../common/types/api';
|
||||
import { CaseStatuses } from '../../../common/types/domain';
|
||||
import type { ValidFeatureId } from '@kbn/rule-data-utils';
|
||||
import type { UserProfile } from '@kbn/security-plugin/common';
|
||||
import { userProfiles } from '../user_profiles/api.mock';
|
||||
import { getCaseConnectorsMockResponse } from '../../common/mock/connectors';
|
||||
import type {
|
||||
CasePostRequest,
|
||||
CasePatchRequest,
|
||||
AttachmentRequest,
|
||||
} from '../../../common/types/api';
|
||||
|
||||
export const getCase = async (
|
||||
caseId: string,
|
||||
|
|
|
@ -20,6 +20,7 @@ import type {
|
|||
CaseUserActionStatsResponse,
|
||||
GetCaseConnectorsResponse,
|
||||
UserActionFindResponse,
|
||||
SingleCaseMetricsResponse,
|
||||
} from '../../common/types/api';
|
||||
import type {
|
||||
CaseConnectors,
|
||||
|
@ -34,7 +35,6 @@ import type {
|
|||
CasesUI,
|
||||
} from '../../common/ui/types';
|
||||
import { SeverityAll, SortFieldCase, StatusAll } from '../../common/ui/types';
|
||||
import type { SingleCaseMetricsResponse } from '../../common/api';
|
||||
import {
|
||||
getCaseCommentsUrl,
|
||||
getCasesDeleteFileAttachmentsUrl,
|
||||
|
|
|
@ -43,7 +43,7 @@ import type {
|
|||
CasesUI,
|
||||
AttachmentUI,
|
||||
} from '../../common/ui/types';
|
||||
import { CaseMetricsFeature } from '../../common/api';
|
||||
import { CaseMetricsFeature } from '../../common/types/api';
|
||||
import { SECURITY_SOLUTION_OWNER } from '../../common/constants';
|
||||
import type { SnakeToCamelCase } from '../../common/types';
|
||||
import { covertToSnakeCase } from './utils';
|
||||
|
|
|
@ -13,7 +13,7 @@ import { basicCase } from './mock';
|
|||
import * as api from './api';
|
||||
import { TestProviders } from '../common/mock';
|
||||
import { useToasts } from '../common/lib/kibana';
|
||||
import { CaseMetricsFeature } from '../../common/api/metrics/case';
|
||||
import { CaseMetricsFeature } from '../../common/types/api';
|
||||
|
||||
jest.mock('./api');
|
||||
jest.mock('../common/lib/kibana');
|
||||
|
|
|
@ -12,7 +12,7 @@ import { createAppMockRenderer } from '../common/mock';
|
|||
import { useGetCasesMetrics } from './use_get_cases_metrics';
|
||||
import { SECURITY_SOLUTION_OWNER } from '../../common/constants';
|
||||
import { useToasts } from '../common/lib/kibana';
|
||||
import { CaseMetricsFeature } from '../../common/api/metrics/case';
|
||||
import { CaseMetricsFeature } from '../../common/types/api';
|
||||
|
||||
jest.mock('../api');
|
||||
jest.mock('../common/lib/kibana');
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
*/
|
||||
|
||||
import { useQuery } from '@tanstack/react-query';
|
||||
import { CaseMetricsFeature } from '../../common/api/metrics/case';
|
||||
import { CaseMetricsFeature } from '../../common/types/api';
|
||||
import { useCasesContext } from '../components/cases_context/use_cases_context';
|
||||
import * as i18n from './translations';
|
||||
import { useHttp } from '../common/lib/kibana';
|
||||
|
|
|
@ -23,8 +23,13 @@ import type {
|
|||
CasePatchRequest,
|
||||
CaseResolveResponse,
|
||||
CaseUserActionStatsResponse,
|
||||
SingleCaseMetricsResponse,
|
||||
} from '../../common/types/api';
|
||||
import {
|
||||
CaseResolveResponseRt,
|
||||
CaseUserActionStatsResponseRt,
|
||||
SingleCaseMetricsResponseRt,
|
||||
} from '../../common/types/api';
|
||||
import { CaseResolveResponseRt, CaseUserActionStatsResponseRt } from '../../common/types/api';
|
||||
import type {
|
||||
Case,
|
||||
Cases,
|
||||
|
@ -34,8 +39,7 @@ import type {
|
|||
UserActions,
|
||||
} from '../../common/types/domain';
|
||||
import { NO_ASSIGNEES_FILTERING_KEYWORD } from '../../common/constants';
|
||||
import type { SingleCaseMetricsResponse } from '../../common/api';
|
||||
import { throwErrors, SingleCaseMetricsResponseRt } from '../../common/api';
|
||||
import { throwErrors } from '../../common/api';
|
||||
import type { CaseUI, FilterOptions, UpdateByKey } from './types';
|
||||
import * as i18n from './translations';
|
||||
|
||||
|
|
|
@ -27,7 +27,6 @@ import type { SavedObjectsManagementPluginStart } from '@kbn/saved-objects-manag
|
|||
import type { UiActionsStart } from '@kbn/ui-actions-plugin/public';
|
||||
import type { ServerlessPluginSetup, ServerlessPluginStart } from '@kbn/serverless/public';
|
||||
|
||||
import type { CasesMetricsRequest } from '../common/api';
|
||||
import type { UseCasesAddToExistingCaseModal } from './components/all_cases/selector_modal/use_cases_add_to_existing_case_modal';
|
||||
import type { UseCasesAddToNewCaseFlyout } from './components/create/flyout/use_cases_add_to_new_case_flyout';
|
||||
import type { canUseCases } from './client/helpers/can_use_cases';
|
||||
|
@ -49,6 +48,7 @@ import type {
|
|||
CasesStatusRequest,
|
||||
CasesBulkGetRequest,
|
||||
CasesBulkGetResponse,
|
||||
CasesMetricsRequest,
|
||||
} from '../common/types/api';
|
||||
import type {
|
||||
AlertAttachmentPayload,
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { CaseMetricsFeature } from '../../../../common/api';
|
||||
import { CaseMetricsFeature } from '../../../../common/types/api';
|
||||
import { createCasesClientMock } from '../../mocks';
|
||||
import type { CasesClientArgs } from '../../types';
|
||||
import { loggingSystemMock } from '@kbn/core/server/mocks';
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
*/
|
||||
|
||||
import { merge } from 'lodash';
|
||||
import type { SingleCaseMetricsResponse } from '../../../../common/api';
|
||||
import { CaseMetricsFeature } from '../../../../common/api';
|
||||
import type { SingleCaseMetricsResponse } from '../../../../common/types/api';
|
||||
import { CaseMetricsFeature } from '../../../../common/types/api';
|
||||
import { Operations } from '../../../authorization';
|
||||
import { createCaseError } from '../../../common/error';
|
||||
import { SingleCaseAggregationHandler } from '../single_case_aggregation_handler';
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
*/
|
||||
|
||||
import { IsolateHostActionType } from '../../../../../common/types/domain';
|
||||
import type { SingleCaseMetricsResponse } from '../../../../../common/api';
|
||||
import type { SingleCaseMetricsResponse } from '../../../../../common/types/api';
|
||||
import { CASE_COMMENT_SAVED_OBJECT } from '../../../../../common/constants';
|
||||
import type { AggregationBuilder, AggregationResponse } from '../../types';
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
*/
|
||||
|
||||
import { merge } from 'lodash';
|
||||
import type { CaseMetricsFeature } from '../../../common/api';
|
||||
import type { CaseMetricsFeature } from '../../../common/types/api';
|
||||
import { BaseHandler } from './base_handler';
|
||||
import type { AggregationBuilder, AggregationResponse, BaseHandlerCommonOptions } from './types';
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
import { get } from 'lodash';
|
||||
|
||||
import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey';
|
||||
import type { SingleCaseMetricsResponse } from '../../../../../common/api';
|
||||
import type { SingleCaseMetricsResponse } from '../../../../../common/types/api';
|
||||
import type { AggregationBuilder, AggregationResponse } from '../../types';
|
||||
|
||||
type HostsAggregate = HostsAggregateResponse | undefined;
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import type { SingleCaseMetricsResponse } from '../../../../../common/api';
|
||||
import type { SingleCaseMetricsResponse } from '../../../../../common/types/api';
|
||||
import type { AggregationBuilder, AggregationResponse } from '../../types';
|
||||
|
||||
export class AlertUsers implements AggregationBuilder<SingleCaseMetricsResponse> {
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import type { SingleCaseMetricsResponse } from '../../../../common/api';
|
||||
import { CaseMetricsFeature } from '../../../../common/api';
|
||||
import type { SingleCaseMetricsResponse } from '../../../../common/types/api';
|
||||
import { CaseMetricsFeature } from '../../../../common/types/api';
|
||||
import { Operations } from '../../../authorization';
|
||||
import { createCaseError } from '../../../common/error';
|
||||
import { SingleCaseBaseHandler } from '../single_case_base_handler';
|
||||
|
|
|
@ -13,7 +13,7 @@ import { loggingSystemMock } from '@kbn/core/server/mocks';
|
|||
import { AlertDetails } from './details';
|
||||
import { mockAlertsService } from '../test_utils/alerts';
|
||||
import type { SingleCaseBaseHandlerCommonOptions } from '../types';
|
||||
import { CaseMetricsFeature } from '../../../../common/api/metrics/case';
|
||||
import { CaseMetricsFeature } from '../../../../common/types/api';
|
||||
|
||||
describe('AlertDetails', () => {
|
||||
let client: CasesClientMock;
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import type { SingleCaseMetricsResponse } from '../../../../common/api';
|
||||
import { CaseMetricsFeature } from '../../../../common/api';
|
||||
import type { SingleCaseMetricsResponse } from '../../../../common/types/api';
|
||||
import { CaseMetricsFeature } from '../../../../common/types/api';
|
||||
import { createCaseError } from '../../../common/error';
|
||||
|
||||
import { SingleCaseAggregationHandler } from '../single_case_aggregation_handler';
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
*/
|
||||
|
||||
import { CASE_SAVED_OBJECT } from '../../../../../common/constants';
|
||||
import type { CasesMetricsResponse } from '../../../../../common/api';
|
||||
import type { CasesMetricsResponse } from '../../../../../common/types/api';
|
||||
import type { AggregationBuilder, AggregationResponse } from '../../types';
|
||||
|
||||
export class AverageDuration implements AggregationBuilder<CasesMetricsResponse> {
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
*/
|
||||
|
||||
import type { Case } from '../../../../common/types/domain';
|
||||
import { CaseMetricsFeature } from '../../../../common/api';
|
||||
import { CaseMetricsFeature } from '../../../../common/types/api';
|
||||
import { createCasesClientMock } from '../../mocks';
|
||||
import type { CasesClientArgs } from '../../types';
|
||||
import { loggingSystemMock } from '@kbn/core/server/mocks';
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import type { CasesMetricsResponse } from '../../../../common/api';
|
||||
import type { CasesMetricsResponse } from '../../../../common/types/api';
|
||||
import { Operations } from '../../../authorization';
|
||||
import { createCaseError } from '../../../common/error';
|
||||
import { constructQueryOptions } from '../../utils';
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import type { CasesMetricsResponse } from '../../../common/api';
|
||||
import type { CasesMetricsResponse } from '../../../common/types/api';
|
||||
import { AggregationHandler } from './aggregation_handler';
|
||||
import type { AggregationBuilder, AllCasesBaseHandlerCommonOptions } from './types';
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import type { CaseMetricsFeature, CasesMetricsResponse } from '../../../common/api';
|
||||
import type { CaseMetricsFeature, CasesMetricsResponse } from '../../../common/types/api';
|
||||
import { BaseHandler } from './base_handler';
|
||||
import type { AllCasesBaseHandlerCommonOptions } from './types';
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import type { CasesMetricsFeatureField } from '../../../common/api/metrics/case';
|
||||
import type { CasesMetricsFeatureField } from '../../../common/types/api';
|
||||
import type { BaseHandlerCommonOptions, MetricsHandler } from './types';
|
||||
|
||||
export abstract class BaseHandler<R> implements MetricsHandler<R> {
|
||||
|
|
|
@ -5,12 +5,13 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import type { CasesStatusRequest, CasesStatusResponse } from '../../../common/types/api';
|
||||
import type {
|
||||
CasesStatusRequest,
|
||||
CasesStatusResponse,
|
||||
SingleCaseMetricsResponse,
|
||||
CasesMetricsRequest,
|
||||
CasesMetricsResponse,
|
||||
} from '../../../common/api';
|
||||
} from '../../../common/types/api';
|
||||
import type { CasesClient } from '../client';
|
||||
|
||||
import type { CasesClientArgs } from '../types';
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import type { SingleCaseMetricsResponse } from '../../../common/api';
|
||||
import { CaseMetricsFeature } from '../../../common/api';
|
||||
import type { SingleCaseMetricsResponse } from '../../../common/types/api';
|
||||
import { CaseMetricsFeature } from '../../../common/types/api';
|
||||
import { Operations } from '../../authorization';
|
||||
import { createCaseError } from '../../common/error';
|
||||
import { SingleCaseBaseHandler } from './single_case_base_handler';
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
import { loggingSystemMock, savedObjectsClientMock } from '@kbn/core/server/mocks';
|
||||
|
||||
import { getCaseMetrics } from './get_case_metrics';
|
||||
import { CaseMetricsFeature } from '../../../common/api';
|
||||
import { CaseMetricsFeature } from '../../../common/types/api';
|
||||
import type { CasesClientMock } from '../mocks';
|
||||
import { createCasesClientMock } from '../mocks';
|
||||
import type { CasesClientArgs } from '../types';
|
||||
|
|
|
@ -6,12 +6,9 @@
|
|||
*/
|
||||
import { merge } from 'lodash';
|
||||
|
||||
import type { SingleCaseMetricsResponse } from '../../../common/api';
|
||||
import {
|
||||
SingleCaseMetricsResponseRt,
|
||||
SingleCaseMetricsRequestRt,
|
||||
decodeWithExcessOrThrow,
|
||||
} from '../../../common/api';
|
||||
import type { SingleCaseMetricsResponse } from '../../../common/types/api';
|
||||
import { SingleCaseMetricsResponseRt, SingleCaseMetricsRequestRt } from '../../../common/types/api';
|
||||
import { decodeWithExcessOrThrow } from '../../../common/api';
|
||||
import { Operations } from '../../authorization';
|
||||
import { createCaseError } from '../../common/error';
|
||||
import type { CasesClient } from '../client';
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { CaseMetricsFeature } from '../../../common/api';
|
||||
import { CaseMetricsFeature } from '../../../common/types/api';
|
||||
import type { CasesClientMock } from '../mocks';
|
||||
import { getCasesMetrics } from './get_cases_metrics';
|
||||
import { createMockClientArgs, createMockClient } from './test_utils/client';
|
||||
|
|
|
@ -7,12 +7,9 @@
|
|||
|
||||
import { merge } from 'lodash';
|
||||
|
||||
import type { CasesMetricsRequest, CasesMetricsResponse } from '../../../common/api';
|
||||
import {
|
||||
CasesMetricsRequestRt,
|
||||
CasesMetricsResponseRt,
|
||||
decodeWithExcessOrThrow,
|
||||
} from '../../../common/api';
|
||||
import type { CasesMetricsRequest, CasesMetricsResponse } from '../../../common/types/api';
|
||||
import { decodeWithExcessOrThrow } from '../../../common/api';
|
||||
import { CasesMetricsRequestRt, CasesMetricsResponseRt } from '../../../common/types/api';
|
||||
import { createCaseError } from '../../common/error';
|
||||
import type { CasesClient } from '../client';
|
||||
import type { CasesClientArgs } from '../types';
|
||||
|
|
|
@ -7,10 +7,13 @@
|
|||
|
||||
import type { SavedObject } from '@kbn/core/server';
|
||||
import type { StatusUserAction, UserActionAttributes } from '../../../common/types/domain';
|
||||
import type { UserActionWithResponse } from '../../../common/types/api';
|
||||
import type {
|
||||
UserActionWithResponse,
|
||||
SingleCaseMetricsResponse,
|
||||
StatusInfo,
|
||||
} from '../../../common/types/api';
|
||||
import { StatusUserActionRt, CaseStatuses } from '../../../common/types/domain';
|
||||
import type { SingleCaseMetricsResponse, StatusInfo } from '../../../common/api';
|
||||
import { CaseMetricsFeature } from '../../../common/api';
|
||||
import { CaseMetricsFeature } from '../../../common/types/api';
|
||||
import { Operations } from '../../authorization';
|
||||
import { createCaseError } from '../../common/error';
|
||||
import { SingleCaseBaseHandler } from './single_case_base_handler';
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import type { SingleCaseMetricsResponse } from '../../../common/api';
|
||||
import type { SingleCaseMetricsResponse } from '../../../common/types/api';
|
||||
import { AggregationHandler } from './aggregation_handler';
|
||||
import type { AggregationBuilder, SingleCaseBaseHandlerCommonOptions } from './types';
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import type { CaseMetricsFeature, SingleCaseMetricsResponse } from '../../../common/api';
|
||||
import type { CaseMetricsFeature, SingleCaseMetricsResponse } from '../../../common/types/api';
|
||||
import { BaseHandler } from './base_handler';
|
||||
import type { SingleCaseBaseHandlerCommonOptions } from './types';
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey';
|
|||
import type {
|
||||
CasesMetricsFeatureField,
|
||||
SingleCaseMetricsFeatureField,
|
||||
} from '../../../common/api/metrics/case';
|
||||
} from '../../../common/types/api';
|
||||
import type { CasesClient } from '../client';
|
||||
import type { CasesClientArgs } from '../types';
|
||||
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import type { CasesMetricsFeatureField } from '../../../common/api/metrics/case';
|
||||
import { CaseMetricsFeature } from '../../../common/api/metrics/case';
|
||||
import type { CasesMetricsFeatureField } from '../../../common/types/api';
|
||||
import { CaseMetricsFeature } from '../../../common/types/api';
|
||||
import { createMockClient, createMockClientArgs } from './test_utils/client';
|
||||
import { buildHandlers } from './utils';
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
*/
|
||||
|
||||
import Boom from '@hapi/boom';
|
||||
import type { CasesMetricsRequest, SingleCaseMetricsRequest } from '../../../common/api';
|
||||
import type { CasesMetricsRequest, SingleCaseMetricsRequest } from '../../../common/types/api';
|
||||
import type { CasesClient } from '../client';
|
||||
import type { CasesClientArgs } from '../types';
|
||||
import { AlertsCount } from './alerts/count';
|
||||
|
|
|
@ -6,7 +6,8 @@
|
|||
*/
|
||||
|
||||
import { schema } from '@kbn/config-schema';
|
||||
import type { SingleCaseMetricsFeatureField } from '../../../../common/api';
|
||||
|
||||
import type { metricsApiV1 } from '../../../../common/types/api';
|
||||
|
||||
import { INTERNAL_CASE_METRICS_DETAILS_URL } from '../../../../common/constants';
|
||||
import { createCaseError } from '../../../common/error';
|
||||
|
@ -30,15 +31,18 @@ export const getCaseMetricRoute = createCasesRoute({
|
|||
try {
|
||||
const caseContext = await context.cases;
|
||||
const client = await caseContext.getCasesClient();
|
||||
const { features } = request.query;
|
||||
const { features } = request.query as metricsApiV1.SingleCaseMetricsRequest;
|
||||
|
||||
return response.ok({
|
||||
body: await client.metrics.getCaseMetrics({
|
||||
const responseBody: metricsApiV1.SingleCaseMetricsResponse =
|
||||
await client.metrics.getCaseMetrics({
|
||||
caseId: request.params.case_id,
|
||||
features: Array.isArray(features)
|
||||
? (features as SingleCaseMetricsFeatureField[])
|
||||
: [features as SingleCaseMetricsFeatureField],
|
||||
}),
|
||||
? (features as metricsApiV1.SingleCaseMetricsFeatureField[])
|
||||
: [features as metricsApiV1.SingleCaseMetricsFeatureField],
|
||||
});
|
||||
|
||||
return response.ok({
|
||||
body: responseBody,
|
||||
});
|
||||
} catch (error) {
|
||||
throw createCaseError({
|
||||
|
|
|
@ -7,8 +7,9 @@
|
|||
|
||||
import { schema } from '@kbn/config-schema';
|
||||
|
||||
import type { metricsApiV1 } from '../../../../common/types/api';
|
||||
|
||||
import { INTERNAL_CASE_METRICS_URL } from '../../../../common/constants';
|
||||
import type { CasesMetricsFeatureField } from '../../../../common/api/metrics/case';
|
||||
import { createCaseError } from '../../../common/error';
|
||||
import { createCasesRoute } from '../create_cases_route';
|
||||
|
||||
|
@ -30,15 +31,17 @@ export const getCasesMetricRoute = createCasesRoute({
|
|||
try {
|
||||
const caseContext = await context.cases;
|
||||
const client = await caseContext.getCasesClient();
|
||||
const { features } = request.query;
|
||||
const { features } = request.query as metricsApiV1.CasesMetricsRequest;
|
||||
|
||||
const responseBody: metricsApiV1.CasesMetricsResponse = await client.metrics.getCasesMetrics({
|
||||
...request.query,
|
||||
features: Array.isArray(features)
|
||||
? (features as metricsApiV1.CasesMetricsFeatureField[])
|
||||
: [features as metricsApiV1.CasesMetricsFeatureField],
|
||||
});
|
||||
|
||||
return response.ok({
|
||||
body: await client.metrics.getCasesMetrics({
|
||||
...request.query,
|
||||
features: Array.isArray(features)
|
||||
? (features as CasesMetricsFeatureField[])
|
||||
: [features as CasesMetricsFeatureField],
|
||||
}),
|
||||
body: responseBody,
|
||||
});
|
||||
} catch (error) {
|
||||
throw createCaseError({
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { CaseMetricsFeature } from '@kbn/cases-plugin/common/api';
|
||||
import { CaseMetricsFeature } from '@kbn/cases-plugin/common';
|
||||
|
||||
export const CASE_ACTIONS = '[data-test-subj="property-actions-ellipses"]';
|
||||
|
||||
|
|
|
@ -27,11 +27,8 @@ import {
|
|||
INTERNAL_CASE_METRICS_URL,
|
||||
INTERNAL_GET_CASE_CATEGORIES_URL,
|
||||
} from '@kbn/cases-plugin/common/constants';
|
||||
import {
|
||||
SingleCaseMetricsResponse,
|
||||
CasesMetricsResponse,
|
||||
CaseMetricsFeature,
|
||||
} from '@kbn/cases-plugin/common/api';
|
||||
import { CaseMetricsFeature } from '@kbn/cases-plugin/common';
|
||||
import type { SingleCaseMetricsResponse, CasesMetricsResponse } from '@kbn/cases-plugin/common';
|
||||
import { SignalHit } from '@kbn/security-solution-plugin/server/lib/detection_engine/rule_types/types';
|
||||
import { ActionResult } from '@kbn/actions-plugin/server/types';
|
||||
import { CasePersistedAttributes } from '@kbn/cases-plugin/server/common/types/case';
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { CaseMetricsFeature } from '@kbn/cases-plugin/common/api/metrics/case';
|
||||
import expect from '@kbn/expect';
|
||||
import { CaseMetricsFeature } from '@kbn/cases-plugin/common';
|
||||
|
||||
import { FtrProviderContext } from '../../../../../common/ftr_provider_context';
|
||||
import { createCase, deleteAllCaseItems, getCaseMetrics } from '../../../../../common/lib/api';
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
*/
|
||||
|
||||
import expect from '@kbn/expect';
|
||||
import { CaseMetricsFeature } from '@kbn/cases-plugin/common/api/metrics/case';
|
||||
import { CaseMetricsFeature } from '@kbn/cases-plugin/common';
|
||||
import { getPostCaseRequest, postCommentActionsReq } from '../../../../../common/lib/mock';
|
||||
|
||||
import { FtrProviderContext } from '../../../../../common/ftr_provider_context';
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
*/
|
||||
|
||||
import expect from '@kbn/expect';
|
||||
import { CaseMetricsFeature } from '@kbn/cases-plugin/common/api/metrics/case';
|
||||
import { CaseMetricsFeature } from '@kbn/cases-plugin/common';
|
||||
import { getPostCaseRequest, postCommentAlertReq } from '../../../../../common/lib/mock';
|
||||
|
||||
import { FtrProviderContext } from '../../../../../common/ftr_provider_context';
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
import expect from '@kbn/expect';
|
||||
import { ConnectorTypes } from '@kbn/cases-plugin/common/types/domain';
|
||||
import { CaseMetricsFeature } from '@kbn/cases-plugin/common/api/metrics/case';
|
||||
import { CaseMetricsFeature } from '@kbn/cases-plugin/common';
|
||||
import { getPostCaseRequest } from '../../../../../common/lib/mock';
|
||||
import { ObjectRemover as ActionsRemover } from '../../../../../../alerting_api_integration/common/lib';
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { CaseMetricsFeature } from '@kbn/cases-plugin/common/api/metrics/case';
|
||||
import { CaseMetricsFeature } from '@kbn/cases-plugin/common';
|
||||
import expect from '@kbn/expect';
|
||||
|
||||
import { FtrProviderContext } from '../../../../common/ftr_provider_context';
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue