diff --git a/libs/ui/elements/src/lib/record-api-form/record-api-form.component.spec.ts b/libs/ui/elements/src/lib/record-api-form/record-api-form.component.spec.ts index 32b83da28a..918df0cc5c 100644 --- a/libs/ui/elements/src/lib/record-api-form/record-api-form.component.spec.ts +++ b/libs/ui/elements/src/lib/record-api-form/record-api-form.component.spec.ts @@ -93,7 +93,7 @@ describe('RecordApFormComponent', () => { expect(component.format$.getValue()).toBe('json') const url = await firstValueFrom(component.apiQueryUrl$) expect(url).toBe( - 'https://api.example.com/data/collections/mockFeatureType/items?f=json' + 'https://api.example.com/data/collections/feature1/items?limit=-1&f=json' ) }) }) @@ -107,7 +107,7 @@ describe('RecordApFormComponent', () => { component.setFormat(mockFormat) const url = await firstValueFrom(component.apiQueryUrl$) expect(url).toBe( - `https://api.example.com/data/collections/mockFeatureType/items?limit=${mockLimit}&offset=${mockOffset}&f=${mockFormat}` + `https://api.example.com/data/collections/feature1/items?limit=${mockLimit}&offset=${mockOffset}&f=${mockFormat}` ) }) it('should remove the param in url if value is null', async () => { @@ -119,7 +119,7 @@ describe('RecordApFormComponent', () => { component.setFormat(mockFormat) const url = await firstValueFrom(component.apiQueryUrl$) expect(url).toBe( - `https://api.example.com/data/collections/mockFeatureType/items?limit=${mockLimit}&offset=${mockOffset}&f=${mockFormat}` + `https://api.example.com/data/collections/feature1/items?limit=${mockLimit}&offset=${mockOffset}&f=${mockFormat}` ) }) it('should remove the param in url if value is zero', async () => { @@ -131,7 +131,7 @@ describe('RecordApFormComponent', () => { component.setFormat(mockFormat) const url = await firstValueFrom(component.apiQueryUrl$) expect(url).toBe( - `https://api.example.com/data/collections/mockFeatureType/items?limit=${mockLimit}&offset=${mockOffset}&f=${mockFormat}` + `https://api.example.com/data/collections/feature1/items?limit=${mockLimit}&offset=${mockOffset}&f=${mockFormat}` ) }) }) @@ -177,7 +177,7 @@ describe('RecordApFormComponent', () => { expect(component.format$.getValue()).toBe('json') const url = await firstValueFrom(component.apiQueryUrl$) expect(url).toBe( - `https://api.example.com/data?type=mockFeatureType&options={"outputFormat":"json"}` + `https://api.example.com/data?type=mockFeatureType&options={"outputFormat":"json","limit":-1}` ) }) }) diff --git a/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts b/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts index 51e4d346cd..a19a920520 100644 --- a/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +++ b/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts @@ -48,6 +48,7 @@ export class RecordApiFormComponent { accessServiceProtocol: ServiceProtocol | undefined outputFormats = [{ value: 'json', label: 'JSON' }] endpoint: WfsEndpoint | OgcApiEndpoint | undefined + firstCollection: string | undefined apiQueryUrl$ = combineLatest([ this.offset$, @@ -121,9 +122,8 @@ export class RecordApiFormComponent { return this.endpoint.getServiceInfo() as OutputFormats } else { { - const firstCollection = (await this.endpoint.featureCollections)[0] return (await this.endpoint.getCollectionInfo( - firstCollection + this.firstCollection )) as OutputFormats } } @@ -136,6 +136,7 @@ export class RecordApiFormComponent { await (this.endpoint as WfsEndpoint).isReady() } else { this.endpoint = new OgcApiEndpoint(this.apiBaseUrl) + this.firstCollection = (await this.endpoint.featureCollections)[0] } this.endpoint$.next(this.endpoint) } @@ -151,15 +152,18 @@ export class RecordApiFormComponent { outputFormat: format, startIndex: offset ? Number(offset) : undefined, maxFeatures: limit !== '-1' ? Number(limit) : undefined, - limit: limit !== '-1' ? Number(limit) : undefined, + limit: limit !== '-1' ? Number(limit) : limit === '-1' ? -1 : undefined, offset: offset !== '' ? Number(offset) : undefined, } if (this.endpoint instanceof WfsEndpoint) { + options.maxFeatures = limit !== '-1' ? Number(limit) : undefined return this.endpoint.getFeatureUrl(this.apiFeatureType, options) } else { - const firstCollection = (await this.endpoint.featureCollections)[0] - return await this.endpoint.getCollectionItemsUrl(firstCollection, options) + return await this.endpoint.getCollectionItemsUrl( + this.firstCollection, + options + ) } } } diff --git a/support-services/docker-entrypoint-initdb.d/dump b/support-services/docker-entrypoint-initdb.d/dump index 6843f2b4b3..8a452dc4fc 100644 Binary files a/support-services/docker-entrypoint-initdb.d/dump and b/support-services/docker-entrypoint-initdb.d/dump differ