From e5b28250c260e07fc08c3e7ef7f1625e3c3a4b98 Mon Sep 17 00:00:00 2001 From: Hannes Date: Wed, 27 May 2020 14:56:15 +0200 Subject: [PATCH] fix payment method null pointer --- .../hso/ecommerce/action/user/UpdateUserSettingsAction.java | 3 ++- .../java/org/hso/ecommerce/controller/UserController.java | 4 ++++ .../hso/ecommerce/controller/shop/ShopCheckoutController.java | 2 +- .../org/hso/ecommerce/entities/booking/PaymentMethod.java | 2 +- prototype/src/main/resources/templates/user/settings.html | 2 +- 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/prototype/src/main/java/org/hso/ecommerce/action/user/UpdateUserSettingsAction.java b/prototype/src/main/java/org/hso/ecommerce/action/user/UpdateUserSettingsAction.java index 4796dbe..91b3796 100644 --- a/prototype/src/main/java/org/hso/ecommerce/action/user/UpdateUserSettingsAction.java +++ b/prototype/src/main/java/org/hso/ecommerce/action/user/UpdateUserSettingsAction.java @@ -1,5 +1,6 @@ package org.hso.ecommerce.action.user; +import org.hso.ecommerce.entities.booking.PaymentMethod; import org.hso.ecommerce.entities.user.User; import org.hso.ecommerce.repos.user.UserRepository; @@ -56,7 +57,7 @@ public class UpdateUserSettingsAction { public UpdateResult updatePaymentInfo(String creditCardNumber) { UpdateResult result = new UpdateResult(false); if (creditCardNumber.matches("[0-9]+")) { - this.user.defaultPayment.creditCardNumber = creditCardNumber; + this.user.defaultPayment = PaymentMethod.fromCreditCardNumber(creditCardNumber); this.repository.save(this.user); result.updated = true; } else { diff --git a/prototype/src/main/java/org/hso/ecommerce/controller/UserController.java b/prototype/src/main/java/org/hso/ecommerce/controller/UserController.java index 8a90d43..ff901ba 100644 --- a/prototype/src/main/java/org/hso/ecommerce/controller/UserController.java +++ b/prototype/src/main/java/org/hso/ecommerce/controller/UserController.java @@ -1,6 +1,7 @@ package org.hso.ecommerce.controller; import org.hso.ecommerce.action.user.UpdateUserSettingsAction; +import org.hso.ecommerce.entities.booking.PaymentMethod; import org.hso.ecommerce.entities.shop.CustomerOrder; import org.hso.ecommerce.entities.user.User; import org.hso.ecommerce.repos.shop.CustomerOrderRepository; @@ -38,6 +39,9 @@ public class UserController { ) { long userId = (long) session.getAttribute("userId"); User user = userRepository.findById(userId).get(); + if(user.defaultPayment == null){ + user.defaultPayment = PaymentMethod.fromCreditCardNumber(""); + } model.addAttribute("user", user); return "user/settings"; diff --git a/prototype/src/main/java/org/hso/ecommerce/controller/shop/ShopCheckoutController.java b/prototype/src/main/java/org/hso/ecommerce/controller/shop/ShopCheckoutController.java index e9d9e68..d56da9c 100644 --- a/prototype/src/main/java/org/hso/ecommerce/controller/shop/ShopCheckoutController.java +++ b/prototype/src/main/java/org/hso/ecommerce/controller/shop/ShopCheckoutController.java @@ -122,7 +122,7 @@ public class ShopCheckoutController { user, expectedPrice, Address.fromString(address), - PaymentMethod.fromCreditCarNumber(cardnumber), + PaymentMethod.fromCreditCardNumber(cardnumber), bookingEntryRepository.getByUser(user.id).orElse(BookingAccountEntry.newUser(user)), bookingEntryRepository.getByVat().orElse(BookingAccountEntry.newVat()), bookingEntryRepository.getByMain().orElse(BookingAccountEntry.newMain()) diff --git a/prototype/src/main/java/org/hso/ecommerce/entities/booking/PaymentMethod.java b/prototype/src/main/java/org/hso/ecommerce/entities/booking/PaymentMethod.java index af0a9c0..fa9fe62 100644 --- a/prototype/src/main/java/org/hso/ecommerce/entities/booking/PaymentMethod.java +++ b/prototype/src/main/java/org/hso/ecommerce/entities/booking/PaymentMethod.java @@ -7,7 +7,7 @@ public class PaymentMethod { public String creditCardNumber; - public static PaymentMethod fromCreditCarNumber(String cardnumber) { + public static PaymentMethod fromCreditCardNumber(String cardnumber) { PaymentMethod m = new PaymentMethod(); m.creditCardNumber = cardnumber; diff --git a/prototype/src/main/resources/templates/user/settings.html b/prototype/src/main/resources/templates/user/settings.html index 86f25e3..13e336f 100644 --- a/prototype/src/main/resources/templates/user/settings.html +++ b/prototype/src/main/resources/templates/user/settings.html @@ -97,7 +97,7 @@
- +