Skip to content

Commit

Permalink
More saved search by value cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
davismcphee committed Jul 14, 2023
1 parent 8b68ccd commit df18b17
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 35 deletions.
11 changes: 2 additions & 9 deletions src/plugins/saved_search/common/service/get_saved_searches.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ const getSavedSearchUrlConflictMessage = async (json: string) =>
values: { json },
});

export const getSavedSearchSavedObject = async (
export const getSearchSavedObject = async (
savedSearchId: string,
{ searchSourceCreate, spaces, savedObjectsTagging, getSavedSrch }: GetSavedSearchDependencies
) => {
Expand Down Expand Up @@ -101,14 +101,7 @@ export const convertToSavedSearch = async (
};

export const getSavedSearch = async (savedSearchId: string, deps: GetSavedSearchDependencies) => {
const { search, spaces, savedObjectsTagging, contentManagement } = deps;
const so = await getSavedSearchSavedObject(savedSearchId, {
search,
spaces,
savedObjectsTagging,
contentManagement,
});

const so = await getSearchSavedObject(savedSearchId, deps);
const savedSearch = await convertToSavedSearch(
{
savedSearchId,
Expand Down
7 changes: 4 additions & 3 deletions src/plugins/saved_search/public/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,20 @@
* Side Public License, v 1.
*/

import { SavedSearchPublicPlugin } from './plugin';

export type { SortOrder } from '../common/types';
export type {
SavedSearch,
SaveSavedSearchOptions,
SearchByReferenceInput,
SearchByValueInput,
SavedSearchByValueAttributes,
SavedSearchAttributeService,
SavedSearchUnwrapResult,
} from './services/saved_searches';

export { getSavedSearchFullPathUrl, getSavedSearchUrl } from './services/saved_searches';

export { VIEW_MODE } from '../common';
import { SavedSearchPublicPlugin } from './plugin';
export type { SavedSearchPublicPluginStart } from './plugin';

export function plugin() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ export const checkForDuplicateTitle = async ({
(await hasDuplicatedTitle(title, contentManagement))
) {
onTitleDuplicate();
return Promise.reject(new Error('Title is duplicated'));
return Promise.reject(new Error(`Saved search title already exists: ${title}`));
}

return true;
Expand Down
10 changes: 7 additions & 3 deletions src/plugins/saved_search/public/services/saved_searches/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,20 @@
* Side Public License, v 1.
*/

export { getSavedSearch, getNewSavedSearch, convertToSavedSearch } from '../../../common/service/get_saved_searches';
export { getSavedSearch, getNewSavedSearch } from '../../../common/service/get_saved_searches';
export {
getSavedSearchUrl,
getSavedSearchFullPathUrl,
} from '../../../common/service/saved_searches_utils';
export type { SaveSavedSearchOptions } from './save_saved_searches';
export { saveSavedSearch } from './save_saved_searches';
export { checkForDuplicateTitle } from './check_for_duplicate_title';
export { SAVED_SEARCH_TYPE } from './constants';
export type { SavedSearch, SearchByReferenceInput, SearchByValueInput } from './types';
export type {
SavedSearch,
SearchByReferenceInput,
SearchByValueInput,
SavedSearchByValueAttributes,
} from './types';
export {
getSavedSearchAttributeService,
toSavedSearch,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export interface SaveSavedSearchOptions {
copyOnSave?: boolean;
}

export const saveSavedSearchSavedObject = async (
export const saveSearchSavedObject = async (
id: string | undefined,
attributes: SavedSearchAttributes,
references: Reference[] | undefined,
Expand Down Expand Up @@ -72,7 +72,6 @@ export const saveSavedSearch = async (
contentManagement,
});
} catch {
// ignore duplicate title failure, user notified in save modal
return;
}
}
Expand All @@ -82,7 +81,7 @@ export const saveSavedSearch = async (
? savedObjectsTagging.ui.updateTagsReferences(originalReferences, savedSearch.tags ?? [])
: originalReferences;

return saveSavedSearchSavedObject(
return saveSearchSavedObject(
isNew ? undefined : savedSearch.id,
toSavedSearchAttributes(savedSearch, searchSourceJSON),
references,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ import type {
} from './types';
import { SEARCH_EMBEDDABLE_TYPE } from '../../../common';
import type { SavedSearchesServiceDeps } from './saved_searches_service';
import { getSavedSearchSavedObject, convertToSavedSearch } from './get_saved_searches';
import { checkForDuplicateTitle } from '.';
import { saveSavedSearchSavedObject } from './save_saved_searches';
import { getSearchSavedObject, convertToSavedSearch } from './get_saved_searches';
import { checkForDuplicateTitle } from './check_for_duplicate_title';
import { saveSearchSavedObject } from './save_saved_searches';

export interface SavedSearchUnwrapMetaInfo {
sharingSavedObjectProps: SavedSearch['sharingSavedObjectProps'];
Expand Down Expand Up @@ -48,21 +48,18 @@ export function getSavedSearchAttributeService(
SavedSearchUnwrapMetaInfo
>(SEARCH_EMBEDDABLE_TYPE, {
saveMethod: async (attributes: SavedSearchByValueAttributes, savedObjectId?: string) => {
const { references, ...so } = attributes;
const id = await saveSavedSearchSavedObject(
const { references, attributes: attrs } = splitReferences(attributes);
const id = await saveSearchSavedObject(
savedObjectId,
{
...so,
description: so.description ?? '',
},
attrs,
references,
services.contentManagement
);

return { id };
},
unwrapMethod: async (savedObjectId: string): Promise<SavedSearchUnwrapResult> => {
const so = await getSavedSearchSavedObject(savedObjectId, services);
const so = await getSearchSavedObject(savedObjectId, services);

return {
attributes: {
Expand Down Expand Up @@ -90,19 +87,26 @@ export const toSavedSearch = async (
result: SavedSearchUnwrapResult,
services: SavedSearchesServiceDeps
) => {
const { references, ...attributes } = result.attributes;
const { sharingSavedObjectProps } = result.metaInfo ?? {};

return await convertToSavedSearch(
{
...splitReferences(result.attributes),
savedSearchId: id,
attributes: {
...attributes,
description: attributes.description ?? '',
},
references,
sharingSavedObjectProps,
},
services
);
};

const splitReferences = (attributes: SavedSearchByValueAttributes) => {
const { references, ...attrs } = attributes;

return {
references,
attributes: {
...attrs,
description: attrs.description ?? '',
},
};
};

0 comments on commit df18b17

Please sign in to comment.