Skip to content

Commit ae35536

Browse files
committed
add endpoint_filter=false query param for WMS getCaps request to keep same behaviour of sh.js
1 parent b142cee commit ae35536

2 files changed

Lines changed: 38 additions & 14 deletions

File tree

src/layer/__tests__/LayersFactory.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ describe('Test endpoints for getting layers parameters', () => {
118118
},
119119
[{ code: 200, data: { layers: [] } }],
120120
function expectedEndpoint(instanceId: string): string {
121-
return `https://services.sentinel-hub.com/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson`;
121+
return `https://services.sentinel-hub.com/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson&endpoint_filter=false`;
122122
},
123123
],
124124
[
@@ -130,7 +130,7 @@ describe('Test endpoints for getting layers parameters', () => {
130130
},
131131
[{ code: 200, data: { layers: [] } }],
132132
function expectedEndpoint(instanceId: string): string {
133-
return `https://services.sentinel-hub.com/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson`;
133+
return `https://services.sentinel-hub.com/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson&endpoint_filter=false`;
134134
},
135135
],
136136
[
@@ -143,7 +143,7 @@ describe('Test endpoints for getting layers parameters', () => {
143143
[{ code: 200, data: { layers: [] } }],
144144
function expectedEndpoint(instanceId: string): string {
145145
//not authenticated
146-
return `https://services.sentinel-hub.com/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson`;
146+
return `https://services.sentinel-hub.com/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson&endpoint_filter=false`;
147147
},
148148
],
149149
[
@@ -167,7 +167,7 @@ describe('Test endpoints for getting layers parameters', () => {
167167
},
168168
[{ code: 401 }, { code: 200, data: { layers: [] } }],
169169
function expectedEndpoint(instanceId: string): string {
170-
return `https://services.sentinel-hub.com/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson`;
170+
return `https://services.sentinel-hub.com/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson&endpoint_filter=false`;
171171
},
172172
],
173173

@@ -180,7 +180,7 @@ describe('Test endpoints for getting layers parameters', () => {
180180
},
181181
[{ code: 200, data: { layers: [] } }],
182182
function expectedEndpoint(instanceId: string): string {
183-
return `https://sh.dataspace.copernicus.eu/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson`;
183+
return `https://sh.dataspace.copernicus.eu/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson&endpoint_filter=false`;
184184
},
185185
],
186186
[
@@ -192,7 +192,7 @@ describe('Test endpoints for getting layers parameters', () => {
192192
},
193193
[{ code: 200, data: { layers: [] } }],
194194
function expectedEndpoint(instanceId: string): string {
195-
return `https://sh.dataspace.copernicus.eu/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson`;
195+
return `https://sh.dataspace.copernicus.eu/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson&endpoint_filter=false`;
196196
},
197197
],
198198
[
@@ -205,7 +205,7 @@ describe('Test endpoints for getting layers parameters', () => {
205205
[{ code: 200, data: { layers: [] } }],
206206
function expectedEndpoint(instanceId: string): string {
207207
//not authenticated
208-
return `https://sh.dataspace.copernicus.eu/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson`;
208+
return `https://sh.dataspace.copernicus.eu/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson&endpoint_filter=false`;
209209
},
210210
],
211211
[
@@ -229,7 +229,7 @@ describe('Test endpoints for getting layers parameters', () => {
229229
},
230230
[{ code: 401 }, { code: 200, data: { layers: [] } }],
231231
function expectedEndpoint(instanceId: string): string {
232-
return `https://sh.dataspace.copernicus.eu/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson`;
232+
return `https://sh.dataspace.copernicus.eu/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson&endpoint_filter=false`;
233233
},
234234
],
235235

@@ -242,7 +242,7 @@ describe('Test endpoints for getting layers parameters', () => {
242242
},
243243
[{ code: 200, data: { layers: [] } }],
244244
function expectedEndpoint(instanceId: string): string {
245-
return `https://creodias.sentinel-hub.com/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson`;
245+
return `https://creodias.sentinel-hub.com/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson&endpoint_filter=false`;
246246
},
247247
],
248248

@@ -268,7 +268,7 @@ describe('Test endpoints for getting layers parameters', () => {
268268
},
269269
[{ code: 200, data: { layers: [] } }],
270270
function expectedEndpoint(instanceId: string): string {
271-
return `https://sh.dataspace.copernicus.eu/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson`;
271+
return `https://sh.dataspace.copernicus.eu/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson&endpoint_filter=false`;
272272
},
273273
],
274274

@@ -294,7 +294,7 @@ describe('Test endpoints for getting layers parameters', () => {
294294
},
295295
[{ code: 200, data: { layers: [] } }],
296296
function expectedEndpoint(instanceId: string): string {
297-
return `https://services-uswest2.sentinel-hub.com/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson`;
297+
return `https://services-uswest2.sentinel-hub.com/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson&endpoint_filter=false`;
298298
},
299299
],
300300
[
@@ -306,7 +306,7 @@ describe('Test endpoints for getting layers parameters', () => {
306306
},
307307
[{ code: 200, data: { layers: [] } }],
308308
function expectedEndpoint(instanceId: string): string {
309-
return `https://creodias.sentinel-hub.com/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson`;
309+
return `https://creodias.sentinel-hub.com/ogc/wms/${instanceId}?request=GetCapabilities&format=application%2Fjson&endpoint_filter=false`;
310310
},
311311
],
312312
[

src/layer/utils.ts

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,24 @@ export type GetCapabilitiesXmlLayer = {
5555
};
5656

5757
export function createGetCapabilitiesXmlUrl(baseUrl: string, ogcServiceType: OgcServiceTypes): string {
58-
const defaultQueryParams = {
58+
type DefaultQueryParams = {
59+
service: OgcServiceTypes;
60+
request: string;
61+
format: string;
62+
endpoint_filter?: string;
63+
};
64+
65+
const defaultQueryParams: DefaultQueryParams = {
5966
service: ogcServiceType,
6067
request: 'GetCapabilities',
6168
format: 'text/xml',
6269
};
6370

71+
const urlObj = new URL(baseUrl);
72+
if (SH_SERVICE_HOSTNAMES_V3.includes(`${urlObj.origin}/`)) {
73+
defaultQueryParams.endpoint_filter = 'false';
74+
}
75+
6476
const { url, query } = parseUrl(baseUrl);
6577
return stringifyUrl({ url: url, query: { ...defaultQueryParams, ...query } }, { sort: false });
6678
}
@@ -117,10 +129,22 @@ export async function fetchGetCapabilitiesJson(
117129
baseUrl: string,
118130
reqConfig: RequestConfiguration,
119131
): Promise<any[]> {
120-
const query = {
132+
type QueryParams = {
133+
request: string;
134+
format: string;
135+
endpoint_filter?: string;
136+
};
137+
138+
const query: QueryParams = {
121139
request: 'GetCapabilities',
122140
format: 'application/json',
123141
};
142+
143+
const urlObj = new URL(baseUrl);
144+
if (SH_SERVICE_HOSTNAMES_V3.includes(`${urlObj.origin}/`)) {
145+
query.endpoint_filter = 'false';
146+
}
147+
124148
const queryString = stringify(query, { sort: false });
125149
const url = `${baseUrl}?${queryString}`;
126150
const axiosReqConfig: AxiosRequestConfig = {

0 commit comments

Comments
 (0)