87 lines
3.1 KiB
Java
87 lines
3.1 KiB
Java
package org.hso.ecommerce.action.user;
|
|
|
|
import com.sun.xml.bind.v2.TODO;
|
|
import org.hibernate.sql.Update;
|
|
import org.hso.ecommerce.entities.user.User;
|
|
import org.hso.ecommerce.repos.user.UserRepository;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
public class UpdateUserSettingsAction {
|
|
|
|
private User user;
|
|
private UserRepository repository;
|
|
|
|
public UpdateUserSettingsAction(User user, UserRepository repository){
|
|
this.user = user;
|
|
this.repository = repository;
|
|
}
|
|
|
|
public UpdateResult updateEmail(String newMail){
|
|
UpdateResult result = new UpdateResult(false);
|
|
if(!newMail.contains("@")){
|
|
result.errorString = "Ändern der Email-Addresse nicht möglich. Bitte versuchen Sie es erneut.";
|
|
}else{
|
|
this.user.email = newMail;
|
|
this.repository.save(this.user);
|
|
result.updated = true;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public UpdateResult updatePassword(String oldPassword, String password1, String password2){
|
|
UpdateResult result = new UpdateResult(false);
|
|
if(this.user.validatePassword(oldPassword))
|
|
{
|
|
if(password1.equals(password2)){
|
|
if(!password1.equals(oldPassword)){
|
|
this.user.setPassword(password1);
|
|
this.repository.save(this.user);
|
|
result.updated = true;
|
|
}else {
|
|
result.errorString = "Die neuen Passwörter entsprechen dem alten Passwort.";
|
|
}
|
|
}else{
|
|
result.errorString = "Die beiden neuen Passwörter stimmen nicht überein. Bitte versuchen Sie es erneut.";
|
|
}
|
|
}else{
|
|
result.errorString = "Das eingegebene alte Passwort stimmt nicht mit dem momentan gespeicherten Passwort überein. Bitte versuchen Sie es erneut.";
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public UpdateResult updateShippingInfo(String salutation, String name, String address){
|
|
this.user.salutation = salutation;
|
|
this.user.name = name;
|
|
this.user.defaultDeliveryAddress.addressString = address;
|
|
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);
|
|
result.updated = true;
|
|
}else{
|
|
result.errorString = "Kreditkartennummer darf nur Zahlen enthalten. Bitte versuchen Sie es erneut.";
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public class UpdateResult{
|
|
public boolean updated; //if true worked, if false not worked
|
|
public String errorString;
|
|
|
|
public UpdateResult(boolean updated, String errorString){
|
|
this.updated = updated;
|
|
this.errorString = errorString;
|
|
}
|
|
|
|
public UpdateResult(boolean updated){
|
|
this.updated = updated;
|
|
this.errorString = "";
|
|
}
|
|
}
|
|
}
|