fix payment method null pointer
This commit is contained in:
		@ -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 {
 | 
			
		||||
 | 
			
		||||
@ -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";
 | 
			
		||||
 | 
			
		||||
@ -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())
 | 
			
		||||
 | 
			
		||||
@ -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;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -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>
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user