Skip to content

Commit

Permalink
Merge pull request #5 from opcruz/dev
Browse files Browse the repository at this point in the history
add test
  • Loading branch information
opcruz committed Apr 14, 2024
2 parents fc078ab + 8f3752c commit f065652
Show file tree
Hide file tree
Showing 26 changed files with 530 additions and 110 deletions.
2 changes: 1 addition & 1 deletion src/main/java/com/demo/sqlite/dtos/ProductOrderDTO.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public ProductOrderDTO(Integer quantity,
Stock.builder()
.code(code)
.description(description)
.category_id(category)
.categoryId(category)
.status(status)
.build();
}
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/demo/sqlite/dtos/ShoppingCartJoined.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public ShoppingCartJoined(int id, int quantityCart,
.code(code)
.description(description)
.quantity(quantityStock)
.category_id(category)
.categoryId(category)
.price(price)
.status(status)
.build();
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/demo/sqlite/dtos/StockResponseDTO.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ public static StockResponseDTO from(Stock stock, Category category) {
stock.getQuantity(),
stock.getPrice(),
stock.getStatus(),
stock.getCreated_by(),
stock.getUpdated_by()
stock.getCreatedBy(),
stock.getUpdatedBy()
);
}

Expand Down
15 changes: 7 additions & 8 deletions src/main/java/com/demo/sqlite/models/Client.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
package com.demo.sqlite.models;

import com.demo.sqlite.dtos.ClientSignupRequestDTO;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
Expand All @@ -23,21 +20,23 @@ public class Client {
private String surnames;
private String direction;
private String state;
private String postal_code;
@Column(name = "postal_code")
private String postalCode;
private String phone;
private String email;
private String password_hash;
@Column(name = "password_hash")
private String passwordHash;

public static Client fromSignupDTO(ClientSignupRequestDTO clientSignupDTO, String passwordHash) {
return Client.builder()
.name(clientSignupDTO.getName())
.surnames(clientSignupDTO.getSurnames())
.direction(clientSignupDTO.getDirection())
.state(clientSignupDTO.getState())
.postal_code(clientSignupDTO.getPostal_code())
.postalCode(clientSignupDTO.getPostal_code())
.phone(clientSignupDTO.getPhone())
.email(clientSignupDTO.getEmail())
.password_hash(passwordHash)
.passwordHash(passwordHash)
.build();
}

Expand Down
10 changes: 4 additions & 6 deletions src/main/java/com/demo/sqlite/models/Employee.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
package com.demo.sqlite.models;

import com.demo.sqlite.dtos.EmployeeSignupRequestDTO;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
Expand All @@ -22,14 +19,15 @@ public class Employee {
private String name;
private String surnames;
private String email;
private String password_hash;
@Column(name = "password_hash")
private String passwordHash;

public static Employee fromSignupDTO(EmployeeSignupRequestDTO signupDTO, String passwordHash) {
return Employee.builder()
.name(signupDTO.getName())
.surnames(signupDTO.getSurnames())
.email(signupDTO.getEmail())
.password_hash(passwordHash)
.passwordHash(passwordHash)
.build();
}

Expand Down
14 changes: 7 additions & 7 deletions src/main/java/com/demo/sqlite/models/Order.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
package com.demo.sqlite.models;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
Expand All @@ -20,8 +17,11 @@ public class Order {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private int client_id;
private String payment_method;
private Timestamp created_at;
@Column(name = "client_id")
private int clientId;
@Column(name = "payment_method")
private String paymentMethod;
@Column(name = "created_at")
private Timestamp createdAt;

}
11 changes: 5 additions & 6 deletions src/main/java/com/demo/sqlite/models/OrderDetails.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
package com.demo.sqlite.models;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
Expand All @@ -18,8 +15,10 @@ public class OrderDetails {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private int order_id;
private int product_code;
@Column(name = "order_id")
private int orderId;
@Column(name = "product_code")
private int productCode;
private int quantity;
private double price;
}
11 changes: 5 additions & 6 deletions src/main/java/com/demo/sqlite/models/ShoppingCart.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
package com.demo.sqlite.models;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
Expand All @@ -18,7 +15,9 @@ public class ShoppingCart {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private int product_code;
@Column(name = "product_code")
private int productCode;
private int quantity;
private int client_id;
@Column(name = "client_id")
private int clientId;
}
27 changes: 14 additions & 13 deletions src/main/java/com/demo/sqlite/models/Stock.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
Expand All @@ -24,28 +21,32 @@ public class Stock {
private String description;
@JsonIgnore
private byte[] image;
private int category_id;
@Column(name = "category_id")
private int categoryId;
private int quantity;
private double price;
private String status;
private int created_by;
private int updated_by;
@Column(name = "created_by")
private int createdBy;
@Column(name = "updated_by")
private int updatedBy;

public Stock(Integer code,
String description,
int category_id,
int categoryId,
Integer quantity,
Double price,
String status,
Integer created_by,
Integer updated_by) {
int createdBy,
int updatedBy) {
this.code = code;
this.description = description;
this.category_id = category_id;
this.categoryId = categoryId;
this.quantity = quantity;
this.price = price;
this.status = status;
this.created_by = created_by;
this.updated_by = updated_by;
this.createdBy = createdBy;
this.updatedBy = updatedBy;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

@Repository
public interface ClientRepository extends CrudRepository<Client, Integer> {
@Query(value = "SELECT u FROM clients u WHERE u.email = :email AND u.password_hash = :password_hash")
@Query(value = "SELECT u FROM clients u WHERE u.email = :email AND u.passwordHash = :password_hash")
Optional<Client> findClientByEmailAndPassword(@Param("email") String email, @Param("password_hash") String passwordHash);

@Query(value = "SELECT u.id FROM clients u WHERE u.email = :email")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

@Repository
public interface EmployeeRepository extends CrudRepository<Employee, Integer> {
@Query(value = "SELECT u FROM employees u WHERE u.email = :email AND u.password_hash = :password_hash")
@Query(value = "SELECT u FROM employees u WHERE u.email = :email AND u.passwordHash = :password_hash")
Optional<Employee> findEmployeeByEmailAndPassword(@Param("email") String email, @Param("password_hash") String passwordHash);
@Query(value = "SELECT u.id FROM employees u WHERE u.email = :email")
Optional<Integer> existEmail(@Param("email") String email);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
@Repository
public interface OrderDetailsRepository extends CrudRepository<OrderDetails, Integer> {

@Query(value = "SELECT new com.demo.sqlite.dtos.ProductOrderDTO(u.quantity, u.price, s.code, s.description, s.category_id, s.status)" +
" FROM order_details u JOIN stock s ON u.product_code = s.code WHERE u.order_id = :order_id")
@Query(value = "SELECT new com.demo.sqlite.dtos.ProductOrderDTO(u.quantity, u.price, s.code, s.description, s.categoryId, s.status)" +
" FROM order_details u JOIN stock s ON u.productCode = s.code WHERE u.orderId = :order_id")
List<ProductOrderDTO> findByOrderId(@Param("order_id") Integer order_id);

}
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
@Repository
public interface OrdersRepository extends CrudRepository<Order, Integer> {

@Query(value = "SELECT u FROM orders u WHERE u.client_id = :client_id")
@Query(value = "SELECT u FROM orders u WHERE u.clientId = :client_id")
List<Order> findByClientId(@Param("client_id") Integer clientId);

@Query(value = "SELECT u FROM orders u WHERE u.id = :id AND u.client_id = :client_id ")
@Query(value = "SELECT u FROM orders u WHERE u.id = :id AND u.clientId = :client_id ")
Optional<Order> findByIdAndClientId(@Param("client_id") Integer clientId, @Param("id") Integer id);

}
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@
public interface ShoppingCartRepository extends CrudRepository<ShoppingCart, Integer> {

@Query(value = "SELECT new com.demo.sqlite.dtos.ShoppingCartJoined(u.id, u.quantity," +
" s.code, s.description, s.quantity, s.category_id, s.price, s.status)" +
" FROM shopping_cart u JOIN stock s ON u.product_code = s.code WHERE u.client_id = :client_id")
" s.code, s.description, s.quantity, s.categoryId, s.price, s.status)" +
" FROM shopping_cart u JOIN stock s ON u.productCode = s.code WHERE u.clientId = :client_id")
List<ShoppingCartJoined> filterByClientId(@Param("client_id") Integer clientId);

@Modifying
@Query(value = "DELETE FROM shopping_cart u WHERE u.id = :cart_id AND u.client_id = :client_id")
@Query(value = "DELETE FROM shopping_cart u WHERE u.id = :cart_id AND u.clientId = :client_id")
Integer deleteByIdAndClientId(@Param("cart_id") Integer cartId, @Param("client_id") Integer clientId);

}
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@
public interface StockRepository extends CrudRepository<Stock, Integer> {

@Query(value = "SELECT new com.demo.sqlite.dtos.StockResponseDTO(u.code, u.description, s.id,s.category, s.description," +
" u.quantity, u.price, u.status, u.created_by, u.updated_by) FROM stock u JOIN categories s ON u.category_id = s.id" +
" u.quantity, u.price, u.status, u.createdBy, u.updatedBy) FROM stock u JOIN categories s ON u.categoryId = s.id" +
" WHERE (:phrase IS NULL OR u.description LIKE %:phrase%)")
Page<StockResponseDTO> filterByPhraseAndPagination(@Param("phrase") String phrase, Pageable pageable);

@Query(value = "SELECT new com.demo.sqlite.dtos.StockResponseDTO(u.code, u.description, s.id,s.category, s.description," +
" u.quantity, u.price, u.status, u.created_by, u.updated_by) FROM stock u JOIN categories s ON u.category_id = s.id" +
" u.quantity, u.price, u.status, u.createdBy, u.updatedBy) FROM stock u JOIN categories s ON u.categoryId = s.id" +
" WHERE u.code = :code")
Optional<StockResponseDTO> findStockResponseDTOById(@Param("code") Integer code);

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/demo/sqlite/services/OrdersService.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ public Optional<OrderResultResponseDTO> orderDetails(int clientId, int orderId)
.sum();
return OrderResultResponseDTO.builder()
.id(value.getId())
.paymentMethod(value.getPayment_method())
.paymentMethod(value.getPaymentMethod())
.total(total)
.createdAt(value.getCreated_at())
.createdAt(value.getCreatedAt())
.products(products)
.build();
});
Expand Down
14 changes: 7 additions & 7 deletions src/main/java/com/demo/sqlite/services/ShoppingCartService.java
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,9 @@ public Optional<ShoppingCart> addCartProduct(int clientId, int productCode, int
if (product.getQuantity() >= quantity) {
ShoppingCart saved = shoppingCartRepository.save(
ShoppingCart.builder()
.product_code(productCode)
.productCode(productCode)
.quantity(quantity)
.client_id(clientId)
.clientId(clientId)
.build()
);
return Optional.of(saved);
Expand Down Expand Up @@ -99,15 +99,15 @@ public Order buyCart(int clientId, String paymentMethod) throws ValidationError
shoppingCartJList.stream().map(ShoppingCartJoined::getId).toList();

Order newOrder = Order.builder()
.payment_method(paymentMethod)
.client_id(clientId)
.created_at(new Timestamp(System.currentTimeMillis()))
.paymentMethod(paymentMethod)
.clientId(clientId)
.createdAt(new Timestamp(System.currentTimeMillis()))
.build();
Order orderSaved = orderRepository.save(newOrder);
List<OrderDetails> orderDetailsList = shoppingCartJList.stream().map(cart ->
OrderDetails.builder()
.order_id(orderSaved.getId())
.product_code(cart.getStock().getCode())
.orderId(orderSaved.getId())
.productCode(cart.getStock().getCode())
.quantity(cart.getQuantity())
.price(cart.getStock().getPrice())
.build()
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/com/demo/sqlite/services/StockService.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,12 @@ public Stock addProduct(String description, int categoryId, String status,
Stock newStock =
Stock.builder()
.description(description)
.category_id(categoryId)
.categoryId(categoryId)
.status(status)
.price(price)
.quantity(quantity)
.updated_by(clientId)
.created_by(clientId)
.createdBy(clientId)
.updatedBy(clientId)
.build();
imageOpt.ifPresent(newStock::setImage);
return stockRepository.save(newStock);
Expand All @@ -67,11 +67,11 @@ public Optional<StockResponseDTO> updateProduct(int code, String description, in
return
stockOptional.map(stock -> {
stock.setDescription(description);
stock.setCategory_id(categoryId);
stock.setCategoryId(categoryId);
stock.setStatus(status);
stock.setPrice(price);
stock.setQuantity(quantity);
stock.setUpdated_by(clientId);
stock.setUpdatedBy(clientId);
imageOpt.ifPresent(stock::setImage);
stockRepository.save(stock);
return StockResponseDTO.from(stock, optionalCategory.get());
Expand Down

This file was deleted.

Loading

0 comments on commit f065652

Please sign in to comment.