diff --git a/java/google/registry/flows/custom/DomainInfoFlowCustomLogic.java b/java/google/registry/flows/custom/DomainInfoFlowCustomLogic.java index ce368bfea..bdb98b4a8 100644 --- a/java/google/registry/flows/custom/DomainInfoFlowCustomLogic.java +++ b/java/google/registry/flows/custom/DomainInfoFlowCustomLogic.java @@ -21,6 +21,7 @@ import google.registry.flows.FlowMetadata; import google.registry.flows.SessionMetadata; import google.registry.flows.domain.DomainInfoFlow; import google.registry.model.ImmutableObject; +import google.registry.model.domain.DomainInfoData; import google.registry.model.domain.DomainResource; import google.registry.model.eppinput.EppInput; import google.registry.model.eppoutput.EppResponse.ResponseExtension; @@ -90,7 +91,7 @@ public class DomainInfoFlowCustomLogic extends BaseFlowCustomLogic { public abstract DomainResource domain(); - public abstract DomainResource resData(); + public abstract DomainInfoData resData(); public abstract ImmutableList responseExtensions(); @@ -104,7 +105,7 @@ public class DomainInfoFlowCustomLogic extends BaseFlowCustomLogic { public abstract Builder setDomain(DomainResource domain); - public abstract Builder setResData(DomainResource resData); + public abstract Builder setResData(DomainInfoData resData); public abstract Builder setResponseExtensions( ImmutableList responseExtensions); @@ -119,7 +120,7 @@ public class DomainInfoFlowCustomLogic extends BaseFlowCustomLogic { @AutoValue public abstract static class BeforeResponseReturnData extends ImmutableObject { - public abstract DomainResource resData(); + public abstract DomainInfoData resData(); public abstract ImmutableList responseExtensions(); @@ -131,7 +132,7 @@ public class DomainInfoFlowCustomLogic extends BaseFlowCustomLogic { @AutoValue.Builder public abstract static class Builder { - public abstract Builder setResData(DomainResource resData); + public abstract Builder setResData(DomainInfoData resData); public abstract Builder setResponseExtensions( ImmutableList responseExtensions); diff --git a/java/google/registry/flows/domain/DomainInfoFlow.java b/java/google/registry/flows/domain/DomainInfoFlow.java index 08d70ecb2..4d9d17138 100644 --- a/java/google/registry/flows/domain/DomainInfoFlow.java +++ b/java/google/registry/flows/domain/DomainInfoFlow.java @@ -93,14 +93,6 @@ public final class DomainInfoFlow implements Flow { DomainResource domain = loadAndVerifyExistence(DomainResource.class, targetId, now); verifyOptionalAuthInfo(authInfo, domain); customLogic.afterValidation(AfterValidationParameters.newBuilder().setDomain(domain).build()); - BeforeResponseReturnData responseData = - customLogic.beforeResponse( - BeforeResponseParameters.newBuilder() - .setDomain(domain) - .setResData(domain) - .setResponseExtensions(getDomainResponseExtensions(domain, now)) - .build()); - domain = responseData.resData(); prefetchReferencedResources(domain); // Registrars can only see a few fields on unauthorized domains. // This is a policy decision that is left up to us by the rfcs. @@ -130,8 +122,15 @@ public final class DomainInfoFlow implements Flow { .setLastTransferTime(domain.getLastTransferTime()) .setAuthInfo(domain.getAuthInfo()); } + BeforeResponseReturnData responseData = + customLogic.beforeResponse( + BeforeResponseParameters.newBuilder() + .setDomain(domain) + .setResData(infoBuilder.build()) + .setResponseExtensions(getDomainResponseExtensions(domain, now)) + .build()); return responseBuilder - .setResData(infoBuilder.build()) + .setResData(responseData.resData()) .setExtensions(responseData.responseExtensions()) .build(); }