package org.beesden.shop.view;
import javax.servlet.http.HttpServletRequest;
import org.beesden.shop.model.Address;
import org.beesden.shop.model.Customer;
import org.beesden.shop.model.Tender;
import org.beesden.utils.Utils;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
public class ViewUpdate extends View {
public Address createAddress(HttpServletRequest request, Address address, boolean includeCustomer) {
logger.info((address.getId() == null ? "Create a new" : "Edit an existing") + " customer address");
if (Utils.isNumeric(request.getParameter("editAddressId"))) {
address.setId(Integer.parseInt(request.getParameter("editAddressId")));
}
address.setStatus(1);
if (includeCustomer) {
// Customer information
address.setTitle(request.getParameter("title"));
address.setFirstname(request.getParameter("firstname"));
address.setSurname(request.getParameter("surname"));
address.setTelephone(request.getParameter("telephone"));
address.setEmail(request.getParameter("email"));
}
// Address information;
address.setAddress1(request.getParameter("address1"));
address.setAddress2(request.getParameter("address2"));
address.setAddress3(request.getParameter("address3"));
address.setCity(request.getParameter("city"));
address.setRegion(request.getParameter("region"));
address.setPostalCode(request.getParameter("postalCode"));
String countryId = request.getParameter("country");
if (countryId != null) {
address.setCountry(countryService.getCountry(countryId));
}
return address;
}
public boolean registerCustomer(HttpServletRequest request) {
// Get form submission values
String email = request.getParameter("email");
String password = request.getParameter("password");
String passwordConfirm = request.getParameter("password_confirm");
// Check password and confirm password match
if (password != null && !password.equals(passwordConfirm)) {
return false;
}
// Check if the user already exists
String dbQuery = customerService.getQuery(null, email, null, null);
if (customerService.count(dbQuery) > 0) {
return false;
}
;
// Create the new customer
Customer customer = new Customer();
// Generate secure password
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
String hashedPassword = passwordEncoder.encode(password);
customer.setPassword(hashedPassword);
// Create customer and log them in
customer.setName(email);
customer.setEmail(email);
customer.setStatus(1);
customer.setTitle(request.getParameter("title"));
customer.setFirstname(request.getParameter("firstname"));
customer.setSurname(request.getParameter("surname"));
customer.setTelephone(request.getParameter("telephone"));
customerService.objectCreate(customer);
customerAuth(customer);
return true;
}
public Tender setPaymentDetails(HttpServletRequest request, Tender paymentDetails) {
paymentDetails.setStatus(1);
// Payment information;
paymentDetails.setCardType(request.getParameter("cardType"));
paymentDetails.setCardNumber(request.getParameter("cardNumber"));
paymentDetails.setSecuriryCode(request.getParameter("securityCode"));
paymentDetails.setStartDate(Utils.isDate(request.getParameter("startDate"), "yyyy-MM"));
paymentDetails.setExpiryDate(Utils.isDate(request.getParameter("expiryDate"), "yyyy-MM"));
if (paymentDetails.getCardNumber() != null) {
paymentDetails.setName(paymentDetails.getCardNumber().replaceAll("\\s+", "").replaceAll("^.*(.{4})$", "**** **** **** $1"));
}
return paymentDetails;
}
}