From 0b7b4077fa9b4f1471f38d42da2b745c8df26aa3 Mon Sep 17 00:00:00 2001 From: Jonathan Cobb Date: Mon, 3 Aug 2020 22:03:40 -0400 Subject: [PATCH] fix setting preferred plan when adding payment method --- .../src/main/java/bubble/model/account/Account.java | 6 ++++-- .../main/java/bubble/model/bill/AccountPaymentMethod.java | 8 ++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/bubble-server/src/main/java/bubble/model/account/Account.java b/bubble-server/src/main/java/bubble/model/account/Account.java index 7ed0d589..de7b8b02 100644 --- a/bubble-server/src/main/java/bubble/model/account/Account.java +++ b/bubble-server/src/main/java/bubble/model/account/Account.java @@ -79,10 +79,12 @@ import static org.cobbzilla.wizard.resources.ResourceUtil.invalidEx; @Entity @NoArgsConstructor @Accessors(chain=true) @Slf4j public class Account extends IdentifiableBaseParentEntity implements TokenPrincipal, SqlViewSearchResult { - public static final String[] UPDATE_FIELDS = {"url", "description", "autoUpdatePolicy", "syncPassword"}; + public static final String[] UPDATE_FIELDS = { + "url", "description", "autoUpdatePolicy", "syncPassword", "preferredPlan" + }; public static final String[] ADMIN_UPDATE_FIELDS = ArrayUtil.append(UPDATE_FIELDS, "suspended", "admin"); public static final String[] CREATE_FIELDS = ArrayUtil.append(ADMIN_UPDATE_FIELDS, - "name", "termsAgreed", "preferredPlan"); + "name", "termsAgreed"); public static final String ROOT_USERNAME = "root"; public static final String ROOT_EMAIL = "root@local.local"; diff --git a/bubble-server/src/main/java/bubble/model/bill/AccountPaymentMethod.java b/bubble-server/src/main/java/bubble/model/bill/AccountPaymentMethod.java index 68c77edd..f693f092 100644 --- a/bubble-server/src/main/java/bubble/model/bill/AccountPaymentMethod.java +++ b/bubble-server/src/main/java/bubble/model/bill/AccountPaymentMethod.java @@ -49,7 +49,7 @@ public class AccountPaymentMethod extends IdentifiableBase implements HasAccount @Override public ScrubbableField[] fieldsToScrub() { return SCRUB_FIELDS; } - public static final String[] CREATE_FIELDS = {"paymentMethodType", "paymentInfo", "maskedPaymentInfo", "cloud"}; + public static final String[] CREATE_FIELDS = {"paymentMethodType", "paymentInfo", "maskedPaymentInfo", "cloud", "preferredPlan"}; public static final String[] VALIDATION_SET_FIELDS = {"paymentInfo", "maskedPaymentInfo"}; public AccountPaymentMethod(AccountPaymentMethod other) { copy(this, other, CREATE_FIELDS); } @@ -160,7 +160,11 @@ public class AccountPaymentMethod extends IdentifiableBase implements HasAccount if (hasPreferredPlan()) { final BubblePlanDAO planDAO = configuration.getBean(BubblePlanDAO.class); final BubblePlan plan = planDAO.findById(preferredPlan); - if (plan == null) result.addViolation("err.plan.notFound"); + if (plan == null) { + result.addViolation("err.plan.notFound"); + } else { + setPreferredPlan(plan.getUuid()); + } } return result; }