package io.cattle.platform.iaas.api.host; import io.cattle.platform.core.constants.HostTemplateConstants; import io.cattle.platform.core.model.HostTemplate; import io.cattle.platform.object.util.DataAccessor; import io.github.ibuildthecloud.gdapi.context.ApiContext; import io.github.ibuildthecloud.gdapi.model.Resource; import io.github.ibuildthecloud.gdapi.request.ApiRequest; import io.github.ibuildthecloud.gdapi.response.ResourceOutputFilter; public class HostTemplateOutputFilter implements ResourceOutputFilter { @Override public Resource filter(ApiRequest request, Object original, Resource converted) { if (original instanceof HostTemplate) { HostTemplate ht = (HostTemplate) original; Object secretValues = converted.getFields().get(HostTemplateConstants.FIELD_SECRET_VALUES); if (secretValues == null || secretValues instanceof String) { converted.getFields().put(HostTemplateConstants.FIELD_SECRET_VALUES, DataAccessor.fieldMap(ht, HostTemplateConstants.FIELD_SECRET_VALUES_EMPTY)); } if (!request.getSchemaFactory().getSchema(HostTemplate.class) .getResourceFields().get(HostTemplateConstants.FIELD_SECRET_VALUES).isReadOnCreateOnly()) { converted.getLinks().put("secretValues", ApiContext.getUrlBuilder().resourceLink(converted, "secretvalues")); } } return converted; } @Override public String[] getTypes() { return new String[] { HostTemplateConstants.KIND }; } @Override public Class<?>[] getTypeClasses() { return new Class<?>[]{HostTemplate.class}; } }