mirror of
https://github.com/google/nomulus.git
synced 2025-05-14 00:17:20 +02:00
Record domain transaction for DomainRestoreFlow
This is the first of many cls adding explicit logging in all our domain mutation flows to facilitate transaction reporting. Restores are relatively simple- it happens immediately, so the reporting time is just the time of the HistoryEntry, and we add a single "RESTORED_DOMAINS" count of 1. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=165639084
This commit is contained in:
parent
bf383081ce
commit
2fe82921a7
3 changed files with 35 additions and 0 deletions
|
@ -26,6 +26,7 @@ import static google.registry.flows.domain.DomainFlowUtils.validateFeeChallenge;
|
||||||
import static google.registry.flows.domain.DomainFlowUtils.verifyNotReserved;
|
import static google.registry.flows.domain.DomainFlowUtils.verifyNotReserved;
|
||||||
import static google.registry.flows.domain.DomainFlowUtils.verifyPremiumNameIsNotBlocked;
|
import static google.registry.flows.domain.DomainFlowUtils.verifyPremiumNameIsNotBlocked;
|
||||||
import static google.registry.model.ofy.ObjectifyService.ofy;
|
import static google.registry.model.ofy.ObjectifyService.ofy;
|
||||||
|
import static google.registry.model.reporting.DomainTransactionRecord.TransactionFieldAmount.TransactionReportField.RESTORED_DOMAINS;
|
||||||
import static google.registry.util.DateTimeUtils.END_OF_TIME;
|
import static google.registry.util.DateTimeUtils.END_OF_TIME;
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
import com.google.common.base.Optional;
|
||||||
|
@ -63,6 +64,8 @@ import google.registry.model.eppinput.ResourceCommand;
|
||||||
import google.registry.model.eppoutput.EppResponse;
|
import google.registry.model.eppoutput.EppResponse;
|
||||||
import google.registry.model.poll.PollMessage;
|
import google.registry.model.poll.PollMessage;
|
||||||
import google.registry.model.registry.Registry;
|
import google.registry.model.registry.Registry;
|
||||||
|
import google.registry.model.reporting.DomainTransactionRecord;
|
||||||
|
import google.registry.model.reporting.DomainTransactionRecord.TransactionFieldAmount;
|
||||||
import google.registry.model.reporting.HistoryEntry;
|
import google.registry.model.reporting.HistoryEntry;
|
||||||
import google.registry.model.reporting.IcannReportingTypes.ActivityReportField;
|
import google.registry.model.reporting.IcannReportingTypes.ActivityReportField;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
@ -170,10 +173,18 @@ public final class DomainRestoreRequestFlow implements TransactionalFlow {
|
||||||
}
|
}
|
||||||
|
|
||||||
private HistoryEntry buildHistory(DomainResource existingDomain, DateTime now) {
|
private HistoryEntry buildHistory(DomainResource existingDomain, DateTime now) {
|
||||||
|
DomainTransactionRecord transactionRecord =
|
||||||
|
new DomainTransactionRecord.Builder()
|
||||||
|
.setTld(existingDomain.getTld())
|
||||||
|
.setReportingTime(now)
|
||||||
|
.setTransactionFieldAmounts(
|
||||||
|
ImmutableSet.of(TransactionFieldAmount.create(RESTORED_DOMAINS, 1)))
|
||||||
|
.build();
|
||||||
return historyBuilder
|
return historyBuilder
|
||||||
.setType(HistoryEntry.Type.DOMAIN_RESTORE)
|
.setType(HistoryEntry.Type.DOMAIN_RESTORE)
|
||||||
.setModificationTime(now)
|
.setModificationTime(now)
|
||||||
.setParent(Key.create(existingDomain))
|
.setParent(Key.create(existingDomain))
|
||||||
|
.setDomainTransactionRecord(transactionRecord)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -130,6 +130,10 @@ public class DomainTransactionRecord extends ImmutableObject implements Buildabl
|
||||||
return tld;
|
return tld;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Set<TransactionFieldAmount> getTransactionFieldAmounts() {
|
||||||
|
return transactionFieldAmounts;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Builder asBuilder() {
|
public Builder asBuilder() {
|
||||||
return new Builder(clone(this));
|
return new Builder(clone(this));
|
||||||
|
|
|
@ -16,6 +16,7 @@ package google.registry.flows.domain;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
import static google.registry.model.ofy.ObjectifyService.ofy;
|
import static google.registry.model.ofy.ObjectifyService.ofy;
|
||||||
|
import static google.registry.model.reporting.DomainTransactionRecord.TransactionFieldAmount.TransactionReportField.RESTORED_DOMAINS;
|
||||||
import static google.registry.testing.DatastoreHelper.assertBillingEvents;
|
import static google.registry.testing.DatastoreHelper.assertBillingEvents;
|
||||||
import static google.registry.testing.DatastoreHelper.createTld;
|
import static google.registry.testing.DatastoreHelper.createTld;
|
||||||
import static google.registry.testing.DatastoreHelper.getOnlyHistoryEntryOfType;
|
import static google.registry.testing.DatastoreHelper.getOnlyHistoryEntryOfType;
|
||||||
|
@ -60,6 +61,8 @@ import google.registry.model.domain.rgp.GracePeriodStatus;
|
||||||
import google.registry.model.eppcommon.StatusValue;
|
import google.registry.model.eppcommon.StatusValue;
|
||||||
import google.registry.model.poll.PollMessage;
|
import google.registry.model.poll.PollMessage;
|
||||||
import google.registry.model.registry.Registry;
|
import google.registry.model.registry.Registry;
|
||||||
|
import google.registry.model.reporting.DomainTransactionRecord;
|
||||||
|
import google.registry.model.reporting.DomainTransactionRecord.TransactionFieldAmount;
|
||||||
import google.registry.model.reporting.HistoryEntry;
|
import google.registry.model.reporting.HistoryEntry;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import org.joda.money.Money;
|
import org.joda.money.Money;
|
||||||
|
@ -568,4 +571,21 @@ public class DomainRestoreRequestFlowTest extends
|
||||||
assertIcannReportingActivityFieldLogged("srs-dom-rgp-restore-request");
|
assertIcannReportingActivityFieldLogged("srs-dom-rgp-restore-request");
|
||||||
assertTldsFieldLogged("tld");
|
assertTldsFieldLogged("tld");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testIcannTransactionReportField_getsStored() throws Exception {
|
||||||
|
persistPendingDeleteDomain();
|
||||||
|
runFlow();
|
||||||
|
DomainResource domain = reloadResourceByForeignKey();
|
||||||
|
HistoryEntry historyEntryDomainRestore =
|
||||||
|
getOnlyHistoryEntryOfType(domain, HistoryEntry.Type.DOMAIN_RESTORE);
|
||||||
|
DomainTransactionRecord transactionRecord =
|
||||||
|
historyEntryDomainRestore.getDomainTransactionRecord();
|
||||||
|
|
||||||
|
assertThat(transactionRecord.getTld()).isEqualTo("tld");
|
||||||
|
assertThat(transactionRecord.getReportingTime())
|
||||||
|
.isEqualTo(historyEntryDomainRestore.getModificationTime());
|
||||||
|
assertThat(transactionRecord.getTransactionFieldAmounts())
|
||||||
|
.containsExactly(TransactionFieldAmount.create(RESTORED_DOMAINS, 1));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue