package io.cattle.platform.api.html;
import io.cattle.platform.api.utils.ApiUtils;
import io.cattle.platform.archaius.util.ArchaiusUtil;
import io.github.ibuildthecloud.gdapi.context.ApiContext;
import io.github.ibuildthecloud.gdapi.doc.TypeDocumentation;
import io.github.ibuildthecloud.gdapi.request.ApiRequest;
import io.github.ibuildthecloud.gdapi.response.impl.DefaultHtmlTemplate;
import io.github.ibuildthecloud.gdapi.url.UrlBuilder;
import java.net.URL;
import com.netflix.config.DynamicStringProperty;
public class ConfigBasedHtmlTemplate extends DefaultHtmlTemplate {
private static final DynamicStringProperty JS_URL = ArchaiusUtil.getString("api.ui.js.url");
private static final DynamicStringProperty CSS_URL = ArchaiusUtil.getString("api.ui.css.url");
@Override
public String getJsUrl() {
return JS_URL.get();
}
@Override
public String getCssUrl() {
return CSS_URL.get();
}
@Override
protected String getUser(ApiRequest request, Object response) {
return ApiUtils.getPolicy().getUserName();
}
@Override
protected String getStringHeader(ApiRequest request, Object response) {
String result = super.getStringHeader(request, response);
UrlBuilder builder = ApiContext.getUrlBuilder();
URL link = builder.resourceCollection(TypeDocumentation.class);
if (link != null) {
result = result.replace("//BEFORE DATA", String.format("var docJson = '%s';", link.toExternalForm()));
}
return result;
}
}