diff --git a/src/app/core/registry/registry.service.spec.ts b/src/app/core/registry/registry.service.spec.ts index 6f6deb3e3f..8e4e191e0f 100644 --- a/src/app/core/registry/registry.service.spec.ts +++ b/src/app/core/registry/registry.service.spec.ts @@ -190,21 +190,6 @@ describe('RegistryService', () => { }); }); - describe('when requesting metadatafields', () => { - let result; - - beforeEach(() => { - result = registryService.getAllMetadataFields(); - }); - - it('should call metadataFieldService.findAll', (done) => { - result.subscribe(() => { - expect(metadataFieldService.findAll).toHaveBeenCalled(); - done(); - }); - }); - }); - describe('when dispatching to the store', () => { beforeEach(() => { spyOn(mockStore, 'dispatch'); diff --git a/src/app/core/registry/registry.service.ts b/src/app/core/registry/registry.service.ts index 75d1d5cc74..4c54e80249 100644 --- a/src/app/core/registry/registry.service.ts +++ b/src/app/core/registry/registry.service.ts @@ -38,6 +38,7 @@ import { MetadataSchemaDataService } from '../data/metadata-schema-data.service' import { MetadataFieldDataService } from '../data/metadata-field-data.service'; import { FollowLinkConfig, followLink } from '../../shared/utils/follow-link-config.model'; import { RequestParam } from '../cache/models/request-param.model'; +import { createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils'; const metadataRegistryStateSelector = (state: AppState) => state.metadataRegistry; const editMetadataSchemaSelector = createSelector(metadataRegistryStateSelector, (metadataState: MetadataRegistryState) => metadataState.editSchema); @@ -104,11 +105,11 @@ export class RegistryService { * @param linksToFollow List of {@link FollowLinkConfig} that indicate which {@link HALLink}s should be automatically resolved * @returns an observable that emits a remote data object with a page of metadata fields */ + // TODO this is temporarily disabled. The performance is too bad. + // It is used down the line for validation. That validation will have to be rewritten against a new rest endpoint. + // Not by downloading the list of all fields. public getAllMetadataFields(options?: FindListOptions, ...linksToFollow: Array>): Observable>> { - if (hasNoValue(options)) { - options = {currentPage: 1, elementsPerPage: 10000} as any; - } - return this.metadataFieldService.findAll(options, ...linksToFollow); + return createSuccessfulRemoteDataObject$(new PaginatedList(null, [])); } public editMetadataSchema(schema: MetadataSchema) { @@ -308,15 +309,10 @@ export class RegistryService { * @param query {string} The query to filter the field names by * @returns an observable that emits a remote data object with a page of metadata fields that match the query */ + // TODO this is temporarily disabled. The performance is too bad. + // Querying metadatafields will need to be implemented as a search endpoint on the rest api, + // not by downloading everything and preforming the query client side. queryMetadataFields(query: string): Observable>> { - return this.getAllMetadataFields(undefined, followLink('schema')).pipe( - map((rd: RemoteData>) => { - const filteredFields: MetadataField[] = rd.payload.page.filter( - (field: MetadataField) => field.toString().indexOf(query) >= 0 - ); - const page: PaginatedList = new PaginatedList(new PageInfo(), filteredFields); - return Object.assign({}, rd, { payload: page }); - }) - ); + return createSuccessfulRemoteDataObject$(new PaginatedList(null, [])); } }