fix payment method null pointer

This commit is contained in:
Hannes Huber 2020-05-27 14:56:15 +02:00
parent db1d3d31b2
commit e5b28250c2
5 changed files with 9 additions and 4 deletions

View File

@ -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 {

View File

@ -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";

View File

@ -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())

View File

@ -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;

View File

@ -97,7 +97,7 @@
</div>
<div>
<div class="input-icon">
<input class="full-width" type="text" name="creditCardNumber" th:value="${user.defaultPayment.creditCardNumber}" required/>
<input class="full-width" type="text" name="creditCardNumber" th:value="${user.defaultPayment.creditCardNumber}"/>
<button> Kreditkartennummer ändern</button>
</div>
</div>