Skip to content
Snippets Groups Projects
Commit b314f300 authored by Clayton, Brandon Scott's avatar Clayton, Brandon Scott
Browse files

update context path for swagger

parent 7841b717
No related branches found
No related tags found
2 merge requests!66Production Release | nshmp-netcdf | Swagger,!65Swagger
package gov.usgs.earthquake.nshmp.netcdf.www;
import java.time.Duration;
import org.reactivestreams.Publisher;
import io.micronaut.context.annotation.Requires;
import io.micronaut.context.annotation.Value;
import io.micronaut.core.async.publisher.Publishers;
import io.micronaut.http.HttpMethod;
import io.micronaut.http.HttpRequest;
import io.micronaut.http.MutableHttpResponse;
import io.micronaut.http.annotation.Filter;
import io.micronaut.http.cookie.Cookie;
import io.micronaut.http.filter.HttpServerFilter;
import io.micronaut.http.filter.ServerFilterChain;
/**
* Add context path as a cookie for Swagger to use.
*
* @author U.S. Geological Survey
*/
@Requires(property = "micronaut.server.context-path")
@Filter(methods = { HttpMethod.GET, HttpMethod.HEAD },
patterns = { "/**" })
public class ContextPathCookie implements HttpServerFilter {
private final Cookie contextPathCookie;
ContextPathCookie(@Value("${micronaut.server.context-path}") String contextPath) {
this.contextPathCookie = Cookie.of("contextPath", contextPath).maxAge(Duration.ofMinutes(2L));
}
@Override
public Publisher<MutableHttpResponse<?>> doFilter(HttpRequest<?> request,
ServerFilterChain chain) {
return Publishers.map(chain.proceed(request), response -> response.cookie(contextPathCookie));
}
}
window.onload = function() {
const extract = function(v) {
return decodeURIComponent(
v.replace(
/(?:(?:^|.*;\s*)contextPath\s*\=\s*([^;]*).*$)|^.*$/,
'$1'
)
);
};
const contextPath = extract(document.cookie);
const ui = SwaggerUIBundle({
url: `${contextPath}/swagger`,
url: `./swagger`,
dom_id: '#swagger-ui',
tagsSorter: 'alpha',
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment