add Errorhandling to UpdateSettingsAction

This commit is contained in:
Hannes Huber 2020-05-20 12:08:57 +02:00
parent 0256c19e8f
commit 5b4c0be1c8
2 changed files with 74 additions and 42 deletions

View File

@ -1,6 +1,7 @@
package org.hso.ecommerce.action.user; package org.hso.ecommerce.action.user;
import com.sun.xml.bind.v2.TODO; import com.sun.xml.bind.v2.TODO;
import org.hibernate.sql.Update;
import org.hso.ecommerce.entities.user.User; import org.hso.ecommerce.entities.user.User;
import org.hso.ecommerce.repos.user.UserRepository; import org.hso.ecommerce.repos.user.UserRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -15,49 +16,59 @@ public class UpdateUserSettingsAction {
this.repository = repository; this.repository = repository;
} }
public void updateEmail(String newMail){ public UpdateResult updateEmail(String newMail){
if(newMail.equals("")){ UpdateResult result = new UpdateResult(false);
//TODO: Errorhandling if(!newMail.contains("@")){
result.errorString = "Ändern der Email-Addresse nicht möglich. Bitte versuchen Sie es erneut.";
}else{ }else{
this.user.email = newMail; this.user.email = newMail;
this.repository.save(this.user); //TODO: Errorhandling this.repository.save(this.user);
result.updated = true;
} }
return result;
} }
public void updatePassword(String oldPassword, String password1, String password2){ public UpdateResult updatePassword(String oldPassword, String password1, String password2){
UpdateResult result = new UpdateResult(false);
if(this.user.validatePassword(oldPassword)) if(this.user.validatePassword(oldPassword))
{ {
if(password1.equals(password2)){ if(password1.equals(password2)){
this.user.setPassword(password1); this.user.setPassword(password1);
this.repository.save(this.user); this.repository.save(this.user);
result.updated = true;
}else{ }else{
//TODO Errorhandling result.errorString = "Die beiden neuen Passwörter stimmen nicht überein. Bitte versuchen Sie es erneut.";
} }
}else{ }else{
//TODO: Errorhandling result.errorString = "Das eingegebene alte Passwort stimmt nicht mit dem momentan gespeicherten Passwort überein. Bitte versuchen Sie es erneut.";
} }
return result;
} }
public void updateShippingInfo(String salutation, String name, String address){ public UpdateResult updateShippingInfo(String salutation, String name, String address){
if(salutation.equals("") || name.equals("") || address.equals("")){ this.user.salutation = salutation;
//TODO: Errorhandling this.user.name = name;
}else{ this.user.defaultDeliveryAddress.addressString = address;
this.user.salutation = salutation; this.repository.save(this.user);
this.user.name = name; return new UpdateResult(true);
this.user.defaultDeliveryAddress.addressString = address; }
public UpdateResult updateAdvertisementFlag(boolean advertisementFlag){
this.user.isAdvertisementActivated = advertisementFlag;
this.repository.save(this.user);
return new UpdateResult(true);
}
public UpdateResult updatePaymentInfo(String creditCardNumber){
UpdateResult result = new UpdateResult(false);
if(creditCardNumber.matches("[0-9]+")){
this.user.defaultPayment.creditCardNumber = creditCardNumber;
this.repository.save(this.user); this.repository.save(this.user);
result.updated = true;
}else{
result.errorString = "Kreditkartennummer enthält Buchstaben. Bitte versuchen Sie es erneut.";
} }
} return result;
public void updateAdvertisementFlag(boolean advertisementFlag){
this.user.isAdvertisementActivated = advertisementFlag; //TODO: Errodhandling
this.repository.save(this.user);
}
public void updatePaymentInfo(String creditCardNumber){
//TODO: Errorhandling
this.user.defaultPayment.creditCardNumber = creditCardNumber;
this.repository.save(this.user);
} }
public class UpdateResult{ public class UpdateResult{

View File

@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import java.util.List; import java.util.List;
@ -46,9 +47,9 @@ public class UserController {
@GetMapping("/orders/") @GetMapping("/orders/")
public String userOrdeers(HttpSession session, public String userOrdeers(HttpSession session,
Model model) { Model model
) {
List<CustomerOrder> orders = customerOrderRepository.getOrdersByUserId((long) session.getAttribute("userId")); List<CustomerOrder> orders = customerOrderRepository.getOrdersByUserId((long) session.getAttribute("userId"));
model.addAttribute("orders", orders); model.addAttribute("orders", orders);
return "user/orders/index"; return "user/orders/index";
@ -56,12 +57,16 @@ public class UserController {
@PostMapping("/settings/changeMail") @PostMapping("/settings/changeMail")
public String changeMail(HttpSession session, public String changeMail(HttpSession session,
@RequestParam("email") String email @RequestParam("email") String email,
){ HttpServletRequest request
) {
User user = userRepository.findById((long) session.getAttribute("userId")).get(); User user = userRepository.findById((long) session.getAttribute("userId")).get();
UpdateUserSettingsAction cusa = new UpdateUserSettingsAction(user, userRepository); UpdateUserSettingsAction cusa = new UpdateUserSettingsAction(user, userRepository);
cusa.updateEmail(email); UpdateUserSettingsAction.UpdateResult result = cusa.updateEmail(email);
if (result.updated == false) {
request.setAttribute("error", result.errorString);
}
return "user/settings"; return "user/settings";
} }
@ -70,12 +75,16 @@ public class UserController {
public String changePwd(HttpSession session, public String changePwd(HttpSession session,
@RequestParam("old-password") String oldPassword, @RequestParam("old-password") String oldPassword,
@RequestParam("password1") String password1, @RequestParam("password1") String password1,
@RequestParam("password2") String password2 @RequestParam("password2") String password2,
){ HttpServletRequest request
) {
User user = userRepository.findById((long) session.getAttribute("userId")).get(); User user = userRepository.findById((long) session.getAttribute("userId")).get();
UpdateUserSettingsAction cusa = new UpdateUserSettingsAction(user, userRepository); UpdateUserSettingsAction cusa = new UpdateUserSettingsAction(user, userRepository);
cusa.updatePassword(oldPassword, password1, password2); UpdateUserSettingsAction.UpdateResult result = cusa.updatePassword(oldPassword, password1, password2);
if (result.updated == false) {
request.setAttribute("error", result.errorString);
}
return "user/settings"; return "user/settings";
} }
@ -84,36 +93,48 @@ public class UserController {
public String changeAddress(HttpSession session, public String changeAddress(HttpSession session,
@RequestParam("salutation") String salutation, @RequestParam("salutation") String salutation,
@RequestParam("name") String name, @RequestParam("name") String name,
@RequestParam("address") String address @RequestParam("address") String address,
){ HttpServletRequest request
) {
User user = userRepository.findById((long) session.getAttribute("userId")).get(); User user = userRepository.findById((long) session.getAttribute("userId")).get();
UpdateUserSettingsAction cusa = new UpdateUserSettingsAction(user, userRepository); UpdateUserSettingsAction cusa = new UpdateUserSettingsAction(user, userRepository);
cusa.updateShippingInfo(salutation, name, address); UpdateUserSettingsAction.UpdateResult result = cusa.updateShippingInfo(salutation, name, address);
if (result.updated == false) {
request.setAttribute("error", result.errorString);
}
return "user/settings"; return "user/settings";
} }
@PostMapping("/settings/changeAdSettings") @PostMapping("/settings/changeAdSettings")
public String changeAdSettings(HttpSession session, public String changeAdSettings(HttpSession session,
@RequestParam("ad") String ad @RequestParam("ad") String ad,
){ HttpServletRequest request
) {
User user = userRepository.findById((long) session.getAttribute("userId")).get(); User user = userRepository.findById((long) session.getAttribute("userId")).get();
UpdateUserSettingsAction cusa = new UpdateUserSettingsAction(user, userRepository); UpdateUserSettingsAction cusa = new UpdateUserSettingsAction(user, userRepository);
cusa.updateAdvertisementFlag(ad.equals("y")); UpdateUserSettingsAction.UpdateResult result = cusa.updateAdvertisementFlag(ad.equals("y"));
if (result.updated == false) {
request.setAttribute("error", result.errorString);
}
return "user/settings"; return "user/settings";
} }
@PostMapping("/settings/changePaymentInfo") @PostMapping("/settings/changePaymentInfo")
public String changePaymentInfo(HttpSession session, public String changePaymentInfo(HttpSession session,
@RequestParam("creditCardNumber") String creditCardNumber @RequestParam("creditCardNumber") String creditCardNumber,
){ HttpServletRequest request
) {
User user = userRepository.findById((long) session.getAttribute("userId")).get(); User user = userRepository.findById((long) session.getAttribute("userId")).get();
UpdateUserSettingsAction cusa = new UpdateUserSettingsAction(user, userRepository); UpdateUserSettingsAction cusa = new UpdateUserSettingsAction(user, userRepository);
cusa.updatePaymentInfo(creditCardNumber); UpdateUserSettingsAction.UpdateResult result = cusa.updatePaymentInfo(creditCardNumber);
if (result.updated == false) {
request.setAttribute("error", result.errorString);
}
return "user/settings"; return "user/settings";
} }