From b1728c5fe20e334d5777503a167a7825593978e9 Mon Sep 17 00:00:00 2001 From: Mateusz Kwasniewski Date: Tue, 14 Feb 2023 15:35:10 +0100 Subject: [PATCH] feat: Export segments limited info (#3109) --- .../Project/Import/validate/ValidationStage.tsx | 6 ++---- src/lib/openapi/spec/export-result-schema.ts | 14 +++++++++++--- src/lib/services/export-import-service.ts | 4 ++-- .../openapi/__snapshots__/openapi.e2e.test.ts.snap | 14 +++++++++++++- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/frontend/src/component/project/Project/Import/validate/ValidationStage.tsx b/frontend/src/component/project/Project/Import/validate/ValidationStage.tsx index c63d87653f..687808983a 100644 --- a/frontend/src/component/project/Project/Import/validate/ValidationStage.tsx +++ b/frontend/src/component/project/Project/Import/validate/ValidationStage.tsx @@ -156,10 +156,8 @@ export const ValidationStage: FC<{ show={ - Conflict! There are some - configurations that don't exist in the current - instance and need to be created before importing - this configuration + Conflict! There are some errors + that need to be fixed before the import. {validationResult.errors.map(error => ( diff --git a/src/lib/openapi/spec/export-result-schema.ts b/src/lib/openapi/spec/export-result-schema.ts index 6cdd5b503a..02944841c7 100644 --- a/src/lib/openapi/spec/export-result-schema.ts +++ b/src/lib/openapi/spec/export-result-schema.ts @@ -4,7 +4,6 @@ import { featureStrategySchema } from './feature-strategy-schema'; import { featureEnvironmentSchema } from './feature-environment-schema'; import { contextFieldSchema } from './context-field-schema'; import { featureTagSchema } from './feature-tag-schema'; -import { segmentSchema } from './segment-schema'; import { parametersSchema } from './parameters-schema'; import { legalValueSchema } from './legal-value-schema'; import { variantSchema } from './variant-schema'; @@ -52,7 +51,17 @@ export const exportResultSchema = { segments: { type: 'array', items: { - $ref: '#/components/schemas/segmentSchema', + type: 'object', + additionalProperties: false, + required: ['id'], + properties: { + id: { + type: 'number', + }, + name: { + type: 'string', + }, + }, }, }, tagTypes: { @@ -69,7 +78,6 @@ export const exportResultSchema = { featureEnvironmentSchema, contextFieldSchema, featureTagSchema, - segmentSchema, variantsSchema, variantSchema, overrideSchema, diff --git a/src/lib/services/export-import-service.ts b/src/lib/services/export-import-service.ts index 04628e31f2..2c87702a10 100644 --- a/src/lib/services/export-import-service.ts +++ b/src/lib/services/export-import-service.ts @@ -150,8 +150,8 @@ export default class ExportImportService { }), featureTags, segments: filteredSegments.map((item) => { - const { createdAt, createdBy, ...rest } = item; - return rest; + const { id, name } = item; + return { id, name }; }), tagTypes: filteredTagTypes, }; diff --git a/src/test/e2e/api/openapi/__snapshots__/openapi.e2e.test.ts.snap b/src/test/e2e/api/openapi/__snapshots__/openapi.e2e.test.ts.snap index e4f50411ad..2e69d7fa02 100644 --- a/src/test/e2e/api/openapi/__snapshots__/openapi.e2e.test.ts.snap +++ b/src/test/e2e/api/openapi/__snapshots__/openapi.e2e.test.ts.snap @@ -1107,7 +1107,19 @@ exports[`should serve the OpenAPI spec 1`] = ` }, "segments": { "items": { - "$ref": "#/components/schemas/segmentSchema", + "additionalProperties": false, + "properties": { + "id": { + "type": "number", + }, + "name": { + "type": "string", + }, + }, + "required": [ + "id", + ], + "type": "object", }, "type": "array", },