Przeglądaj źródła

Add account UUID into archived payment object

tags/v0.10.5
Kristijan Mitrovic 4 lat temu
rodzic
commit
ef1147e557
2 zmienionych plików z 19 dodań i 5 usunięć
  1. +8
    -5
      bubble-server/src/main/java/bubble/dao/bill/AccountPaymentArchivedDAO.java
  2. +11
    -0
      bubble-server/src/main/java/bubble/model/bill/AccountPaymentArchived.java

+ 8
- 5
bubble-server/src/main/java/bubble/dao/bill/AccountPaymentArchivedDAO.java Wyświetl plik

@@ -21,17 +21,20 @@ public class AccountPaymentArchivedDAO
// newest first
@Override public Order getDefaultSortOrder() { return ORDER_CTIME_DESC; }

@NonNull public List<AccountPaymentArchived> findByAccountName(@NonNull final String accountName) {
return findByField("accountName", accountName);
@NonNull public List<AccountPaymentArchived> findByAccountNameAndUuid(@NonNull final String accountName,
@NonNull final String accountUuid) {
return findByFields("accountUuid", accountUuid, "accountName", accountName);
}

/**
* Anonymize this object. This is needed when client requires and signs/waives his/her right to sue in the future.
*/
public void anonymizeForAccountName(@NonNull final String accountName) {
public void anonymizeForAccountNameAndUuid(@NonNull final String accountName, @NonNull final String accountUuid) {
// TODO: what about paymentMethodMaskedInfo, bubblePlanName and billPeriodStart. Do those fields contain any
// user info and names set up by the user?
bulkUpdate(new String[] { "accountName", "accountPlanName" }, new String[] { "anonymous", "anonymized" },
new String[] { "accountName" }, new String[] { accountName });
bulkUpdate(new String[] { "accountUuid", "accountName", "accountPlanName" },
new String[] { "anonymized", "anonymous", "anonymized" },
new String[] { "accountUuid", "accountName" },
new String[] { accountUuid, accountName });
}
}

+ 11
- 0
bubble-server/src/main/java/bubble/model/bill/AccountPaymentArchived.java Wyświetl plik

@@ -41,6 +41,7 @@ public class AccountPaymentArchived extends IdentifiableBase {
public AccountPaymentArchived(@NonNull final AccountPayment original, @NonNull final String accountName,
@NonNull final String paymentMethodMaskedInfo, @NonNull final String bubblePlanName,
@NonNull final String accountPlanName, @NonNull final String billPeriodStart) {
this.accountUuid = original.getAccount();
this.accountName = accountName;
this.paymentMethodMaskedInfo = paymentMethodMaskedInfo;
this.bubblePlanName = bubblePlanName;
@@ -54,6 +55,16 @@ public class AccountPaymentArchived extends IdentifiableBase {
@Id @Column(unique=true, updatable=false, nullable=false, length=UUID_MAXLEN)
@Getter @Setter private volatile String uuid;

/**
* Storing deleted account UUID here is required as user may select full deletion of his/her account while not
* waiving his/her rights to sue. So then these records must stay related to exactly that user which might not be
* unique by its name in the future.
*/
@ECSearchable @ECField(index=5)
@Type(type=ENCRYPTED_STRING)
@Column(updatable=false, columnDefinition="varchar(" + (UUID_MAXLEN + ENC_PAD) + ") NOT NULL")
@Getter @Setter private String accountUuid;

@ECSearchable @ECField(index=10)
@Type(type=ENCRYPTED_STRING)
@Column(updatable=false, columnDefinition="varchar(" + (Account.NAME_MAX_LENGTH + ENC_PAD) + ") NOT NULL")


Ładowanie…
Anuluj
Zapisz