Skip to content
Snippets Groups Projects
Commit 7e278532 authored by Pedro Pablo Cardona Arroyave's avatar Pedro Pablo Cardona Arroyave
Browse files

Fixed first bug other bug now

parent 08955d90
No related branches found
No related tags found
No related merge requests found
......@@ -68,7 +68,7 @@ public class FridgeController {
}
try {
if (fridgeService.addProductToFridge(groupId, productId, request.amount(), request.days()).isPresent()) {
if (fridgeService.addProductToFridge(groupId,productId, request.amount(), request.days()).isPresent()) {
return ResponseEntity.ok("Success");
}
return ResponseEntity.badRequest().body("Product already exists in the fridge");
......
......@@ -13,26 +13,23 @@ import java.sql.Date;
@Getter @Setter
@Entity(name = "fridge_product")
@Builder
@IdClass(FridgeProductId.class)
public class FridgeProductAsso {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "fridge_product_id")
private long id;
@ManyToOne
@MapsId("fridge_id")
@JoinColumn(name = "fridge_id")
@JsonIgnoreProperties({"products"})
private Fridge fridgeId;
@ManyToOne
@MapsId("ean")
@JoinColumn(name = "ean")
@JsonIgnoreProperties({"fridges"})
private Product ean;
@MapsId("purchase_date")
@Column(name = "purchase_date")
private Date purchaseDate;
......
package ntnu.idatt2016.v233.SmartMat.entity.fridgeProduct;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.sql.Date;
/**
* This class represents a fridge product association id
* @author Birk
* @version 1.0
* @since 25.04.2023
*/
@EqualsAndHashCode
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class FridgeProductId implements Serializable {
private long fridgeId;
private long ean;
private Date purchaseDate;
}
package ntnu.idatt2016.v233.SmartMat.repository.group;
import ntnu.idatt2016.v233.SmartMat.entity.fridgeProduct.FridgeProductAsso;
import ntnu.idatt2016.v233.SmartMat.entity.fridgeProduct.FridgeProductId;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional;
/**
......@@ -13,6 +11,6 @@ import java.util.Optional;
* @version 1.0
* @since 25.04.2023
*/
public interface FridgeProductAssoRepository extends JpaRepository<FridgeProductAsso, FridgeProductId> {
public interface FridgeProductAssoRepository extends JpaRepository<FridgeProductAsso, Long> {
Optional<FridgeProductAsso> findById(long id);
}
......@@ -47,7 +47,6 @@ public class FridgeProductAssoService {
fridgeProductAsso.getFridgeId().getProducts().remove(fridgeProductAsso);
fridgeProductAsso.getEan().getFridges().remove(fridgeProductAsso);
fridgeProductAssoRepository.delete(fridgeProductAsso);
fridgeRepository.save(fridgeProductAsso.getFridgeId());
productRepository.save(fridgeProductAsso.getEan());
......
......@@ -69,12 +69,7 @@ public class FridgeService {
Fridge fridge = fridgeRepository.findByGroupGroupId(groupId).orElseThrow(() -> new IllegalArgumentException("Fridge does not exist"));
if (product.isPresent()) {
Product productToAdd = product.get();
FridgeProductAsso temp = FridgeProductAsso.builder().fridgeId(fridge).ean(productToAdd).amount(amount).daysToExpiration(days).build();
if (fridge.getProducts().contains(temp)) {
return Optional.empty();
}
return Optional.of(fridgeProductAssoService.createFridgeProductAsso(fridge, productToAdd,amount,days));
return Optional.of(fridgeProductAssoService.createFridgeProductAsso(fridge, product.get(),amount,days));
} else {
return Optional.empty();
}
......
package ntnu.idatt2016.v233.SmartMat.service.group;
import ntnu.idatt2016.v233.SmartMat.entity.fridgeProduct.FridgeProductAsso;
import ntnu.idatt2016.v233.SmartMat.entity.fridgeProduct.FridgeProductId;
import ntnu.idatt2016.v233.SmartMat.entity.group.Fridge;
import ntnu.idatt2016.v233.SmartMat.entity.product.Product;
import ntnu.idatt2016.v233.SmartMat.repository.group.FridgeProductAssoRepository;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -13,9 +11,6 @@ import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager;
import java.sql.Date;
import java.time.Instant;
import java.time.LocalDate;
import java.util.List;
import java.util.Optional;
import static org.junit.jupiter.api.Assertions.*;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment