mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 09:19:04 -04:00
[data views] Allow noop on REST API update (#141875)
* allow data view update noop
This commit is contained in:
parent
ccbac37155
commit
659ba3b69e
2 changed files with 20 additions and 22 deletions
|
@ -9,7 +9,7 @@
|
|||
import { schema } from '@kbn/config-schema';
|
||||
import { UsageCounter } from '@kbn/usage-collection-plugin/server';
|
||||
import { IRouter, StartServicesAccessor } from '@kbn/core/server';
|
||||
import { DataViewsService } from '../../common/data_views';
|
||||
import { DataViewsService, DataView } from '../../common/data_views';
|
||||
import { DataViewSpec } from '../../common/types';
|
||||
import { handleErrors } from './util/handle_errors';
|
||||
import { fieldSpecSchema, runtimeFieldSchema, serializedFieldFormatSchema } from './util/schemas';
|
||||
|
@ -71,46 +71,46 @@ export const updateDataView = async ({
|
|||
name,
|
||||
} = spec;
|
||||
|
||||
let changeCount = 0;
|
||||
let isChanged = false;
|
||||
let doRefreshFields = false;
|
||||
|
||||
if (title !== undefined && title !== dataView.title) {
|
||||
changeCount++;
|
||||
isChanged = true;
|
||||
dataView.title = title;
|
||||
}
|
||||
|
||||
if (timeFieldName !== undefined && timeFieldName !== dataView.timeFieldName) {
|
||||
changeCount++;
|
||||
isChanged = true;
|
||||
dataView.timeFieldName = timeFieldName;
|
||||
}
|
||||
|
||||
if (sourceFilters !== undefined) {
|
||||
changeCount++;
|
||||
isChanged = true;
|
||||
dataView.sourceFilters = sourceFilters;
|
||||
}
|
||||
|
||||
if (fieldFormats !== undefined) {
|
||||
changeCount++;
|
||||
isChanged = true;
|
||||
dataView.fieldFormatMap = fieldFormats;
|
||||
}
|
||||
|
||||
if (type !== undefined) {
|
||||
changeCount++;
|
||||
isChanged = true;
|
||||
dataView.type = type;
|
||||
}
|
||||
|
||||
if (typeMeta !== undefined) {
|
||||
changeCount++;
|
||||
isChanged = true;
|
||||
dataView.typeMeta = typeMeta;
|
||||
}
|
||||
|
||||
if (name !== undefined) {
|
||||
changeCount++;
|
||||
isChanged = true;
|
||||
dataView.name = name;
|
||||
}
|
||||
|
||||
if (fields !== undefined) {
|
||||
changeCount++;
|
||||
isChanged = true;
|
||||
doRefreshFields = true;
|
||||
dataView.fields.replaceAll(
|
||||
Object.values(fields || {}).map((field) => ({
|
||||
|
@ -122,19 +122,19 @@ export const updateDataView = async ({
|
|||
}
|
||||
|
||||
if (runtimeFieldMap !== undefined) {
|
||||
changeCount++;
|
||||
isChanged = true;
|
||||
dataView.replaceAllRuntimeFields(runtimeFieldMap);
|
||||
}
|
||||
|
||||
if (changeCount < 1) {
|
||||
throw new Error('Index pattern change set is empty.');
|
||||
if (isChanged) {
|
||||
const result = (await dataViewsService.updateSavedObject(dataView)) as DataView;
|
||||
|
||||
if (doRefreshFields && refreshFields) {
|
||||
await dataViewsService.refreshFields(dataView);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
await dataViewsService.updateSavedObject(dataView);
|
||||
|
||||
if (doRefreshFields && refreshFields) {
|
||||
await dataViewsService.refreshFields(dataView);
|
||||
}
|
||||
return dataView;
|
||||
};
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ export default function ({ getService }: FtrProviderContext) {
|
|||
);
|
||||
});
|
||||
|
||||
it('returns error when update patch is empty', async () => {
|
||||
it('returns success when update patch is empty', async () => {
|
||||
const title1 = `foo-${Date.now()}-${Math.random()}*`;
|
||||
const response = await supertest.post(config.path).send({
|
||||
[config.serviceKey]: {
|
||||
|
@ -65,9 +65,7 @@ export default function ({ getService }: FtrProviderContext) {
|
|||
[config.serviceKey]: {},
|
||||
});
|
||||
|
||||
expect(response2.status).to.be(400);
|
||||
expect(response2.body.statusCode).to.be(400);
|
||||
expect(response2.body.message).to.be('Index pattern change set is empty.');
|
||||
expect(response2.status).to.be(200);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue