Skip to content
This repository has been archived by the owner on May 31, 2024. It is now read-only.

Commit

Permalink
Merge pull request #130 from hardingadonis/dev
Browse files Browse the repository at this point in the history
dev: release version 0.6.0
  • Loading branch information
hardingadonis committed Feb 27, 2024
2 parents 5fbfbd8 + e87439b commit 806fa7f
Show file tree
Hide file tree
Showing 22 changed files with 700 additions and 164 deletions.
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,9 @@ server/*.war
## Eclipse
.settings/
.classpath
.project
.project

# IntelliJ IDEA
.idea/

.history/
2 changes: 1 addition & 1 deletion get_version.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash

major_version=0
minor_version=5
minor_version=6
path_version=0

echo "$major_version.$minor_version.$path_version"
7 changes: 6 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

<groupId>io.hardingadonis</groupId>
<artifactId>saledock</artifactId>
<version>0.5.0</version>
<version>0.6.0</version>
<packaging>war</packaging>

<name>Sale Dock - v${project.version}</name>
Expand Down Expand Up @@ -80,6 +80,11 @@
<artifactId>jakarta.mail</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.5</version>
</dependency>
</dependencies>
<build>
<plugins>
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
package io.hardingadonis.saledock.controller.management.category;
package io.hardingadonis.saledock.controller.management.customer;

import java.io.*;
import jakarta.servlet.*;
import jakarta.servlet.annotation.*;
import jakarta.servlet.http.*;

@WebServlet(name = "AddCategoryServlet", urlPatterns = {"/add-category"})
public class AddCategoryServlet extends HttpServlet {
import java.io.*;

@WebServlet(name = "UpdateCustomerServlet", urlPatterns = {"/update-customer"})
public class UpdateCustomerServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");

request.setAttribute("page", "customer");
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
package io.hardingadonis.saledock.controller.management.order;

import io.hardingadonis.saledock.model.*;
import io.hardingadonis.saledock.utils.*;
import jakarta.servlet.*;
import jakarta.servlet.annotation.*;
import jakarta.servlet.http.*;
import java.io.*;
import java.util.Optional;

@WebServlet(name = "UpdateOrderServlet", urlPatterns = {"/update-order"})
public class UpdateOrderServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");

request.setAttribute("page", "order");

String id = request.getParameter("id");
if (id == null) {
response.sendError(404);
return;
}

Integer id_order = Integer.parseInt(id);
Optional<Order> order = Singleton.orderDAO.getByID(id_order);

if (order.isPresent()) {
var ord = order.get();
request.setAttribute("ord", ord);

request.getRequestDispatcher("/view/jsp/management/order/update-order.jsp").forward(request, response);
} else {
response.sendRedirect(request.getContextPath() + "/order");
}
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String ID = request.getParameter("id");
Order order = Singleton.orderDAO.getByID(Integer.valueOf(ID)).orElse(null);


String status = request.getParameter("status");


if (status != null && !status.equals(order.getStatus()) ) {

order.setStatus(Order.Status.valueOf(status));
Singleton.orderDAO.save(order);

response.sendRedirect("./order");
return;
}
else {
response.sendRedirect("./order");
return;
}

}




}
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,19 @@
import jakarta.servlet.*;
import jakarta.servlet.annotation.*;
import jakarta.servlet.http.*;
import java.nio.file.*;
import java.util.*;

import io.hardingadonis.saledock.model.Category;
import io.hardingadonis.saledock.model.Product;
import io.hardingadonis.saledock.utils.Singleton;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

@WebServlet(name = "AddProductServlet", urlPatterns = {"/add-product"})
@MultipartConfig
public class AddProductServlet extends HttpServlet {

public static final String UPLOAD_PRODUCT_IMG_DIRECTORY = "product_img";

public static final int MEMORY_THRESHOLD = 1024 * 1024 * 3;
public static final int MAX_FILE_SIZE = 1024 * 1024 * 3;
public static final int MAX_REQUEST_SIZE = 1024 * 1024 * 5;

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Expand All @@ -41,38 +39,35 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response)
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String codePro = request.getParameter("codeP");
String namePro = request.getParameter("nameP");
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");

String namePro = request.getParameter("nameP");
int catPro = Integer.parseInt(request.getParameter("categoryP"));
Optional<Category> cat = Singleton.categoryDAO.getByID(catPro);

double pricePro = Double.parseDouble(request.getParameter("priceP"));
String desPro = request.getParameter("descriptionP");

// try {
// List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
// for (FileItem item : items) {
// if (!item.isFormField() && item.getFieldName().equals("imageUpload")) {
// // item is the file (and not a field)
// InputStream fileContent = item.getInputStream();
// // assuming you have a connection (conn) to your database
// PreparedStatement stmt = conn.prepareStatement("INSERT INTO images (content) VALUES (?)");
// stmt.setBlob(1, fileContent);
// stmt.executeUpdate();
// break; // we only process one image, so break the loop after the first file
// }
// }
// } catch (Exception e) {
// throw new ServletException("Cannot parse multipart request.", e);
// }
Product p = new Product();
p.setCode(codePro.toUpperCase());
p.setName(namePro);
p.setCategory(cat.get());
p.setPrice(pricePro);
p.setDescription(desPro);
Singleton.productDAO.save(p);
Part part = request.getPart("imageUpload");
String imgURL = null;
if (part.getSize() > 0) {
String realPath = request.getServletContext().getRealPath("/product_img");
String fileName = Paths.get(part.getSubmittedFileName()).getFileName().toString();
imgURL = "product_img/" + fileName;
if (!Files.exists(Paths.get(realPath))) {
Files.createDirectories(Paths.get(realPath));
}

part.write(realPath + "/" + fileName);
}

Product pro = new Product();
pro.setName(namePro);
pro.setCategory(cat.get());
pro.setPrice(pricePro);
pro.setImageURL(imgURL);
pro.setDescription(desPro);
Singleton.productDAO.save(pro);

response.sendRedirect("product");
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
package io.hardingadonis.saledock.controller.management.product;

import io.hardingadonis.saledock.model.*;

import io.hardingadonis.saledock.utils.Singleton;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.MultipartConfig;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.Part;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Optional;

@MultipartConfig()
@WebServlet(name = "UpdateProductServlet", urlPatterns = {"/update-product"})
public class UpdateProductServlet extends HttpServlet {

public static final String UPLOAD_PRODUCT_IMG_DIRECTORY = "product_img";

public static final int MEMORY_THRESHOLD = 1024 * 1024 * 3;
public static final int MAX_FILE_SIZE = 1024 * 1024 * 3;
public static final int MAX_REQUEST_SIZE = 1024 * 1024 * 5;

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
request.setAttribute("page", "product");

String pId = request.getParameter("id");

if (pId == null) {
response.sendError(404);

return;
}

Integer idP = Integer.valueOf(pId);
Optional<Product> product = Singleton.productDAO.getByID(idP);

request.setAttribute("page", "product");

if (product.isPresent()) {
var p = product.get();
Category cat = p.getCategory();

request.setAttribute("pro", p);
request.setAttribute("cat", cat);

request.getRequestDispatcher("/view/jsp/management/product/update-product.jsp").forward(request, response);
} else {
response.sendRedirect(request.getContextPath() + "/product");
}

}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String pId = request.getParameter("id");

if (pId == null) {
response.sendError(404);

return;
}
Integer idP = Integer.valueOf(pId);
String productName = request.getParameter("productName");
String productDescription = request.getParameter("productDescription");
double price = Double.parseDouble(request.getParameter("price"));

Part part = request.getPart("imageUpload");
String imgURL = null;
if (part.getSize() > 0) {
String realPath = request.getServletContext().getRealPath("/product_img");
String fileName = Paths.get(part.getSubmittedFileName()).getFileName().toString();
imgURL = "product_img/" + fileName;
if (!Files.exists(Paths.get(realPath))) {
Files.createDirectories(Paths.get(realPath));
}

part.write(realPath + "/" + fileName);
}


Product product = Singleton.productDAO.getByID(idP).get();
product.setPrice(price);
product.setName(productName);
product.setImageURL(imgURL);
product.setDescription(productDescription);

Singleton.productDAO.save(product);

response.sendRedirect("./product");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ private void checkEmail(HttpServletRequest request, HttpServletResponse response

if (employee.isPresent()) {
request.setAttribute("message", "success");
String newOtp = OtpUltil.generateRandomOTP();
String newOtp = OtpUtil.generateRandomOTP();
SendEmailUtil.sendGetOTPMessage(email, "New OTP", newOtp);
SessionUtil.getInstance().putValue(request, "otp", newOtp);
SessionUtil.getInstance().putValue(request, "email", email);
Expand Down
5 changes: 4 additions & 1 deletion src/main/java/io/hardingadonis/saledock/dao/IProductDAO.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
package io.hardingadonis.saledock.dao;

import io.hardingadonis.saledock.model.*;
import java.util.Optional;

public interface IProductDAO extends IDAO<Product>, IPagination<Product> {

public String getTop10(Integer duration);
public String getTop10(Integer duration);

public Optional<Product> getByCode(String code);
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,14 @@ public Optional<Product> getByID(Integer ID) {
}
}

@Override
public Optional<Product> getByCode(String code) {
try (Session session = sessionFactory.openSession()) {
String hql = "FROM Product WHERE code = :code";
return Optional.ofNullable(session.createQuery(hql, Product.class).setParameter("code", code).uniqueResult());
}
}

@Override
public List<Product> getAll() {
try (Session session = sessionFactory.openSession()) {
Expand Down Expand Up @@ -114,4 +122,5 @@ public List<Product> pagination(Integer offset, Integer limit) {
public Integer totalPages(Integer limit) {
return (int) Math.ceil((double) this.count() / limit);
}

}
Loading

0 comments on commit 806fa7f

Please sign in to comment.