diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/config/CorsConfig.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/config/CorsConfig.java index 1046085e6a6dab222d2e1bab0efd0539a280dcee..9bbd9880d42e6e7f39e339cd09e46aef50b3762f 100644 --- a/src/main/java/ntnu/idatt2016/v233/SmartMat/config/CorsConfig.java +++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/config/CorsConfig.java @@ -38,7 +38,6 @@ public class CorsConfig { public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins(domainProperty.domain()) - .allowedOrigins("https://smartmat.app") .allowedMethods(Arrays.asList( HttpMethod.GET.name(), HttpMethod.POST.name(), diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/product/Category.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/product/Category.java index 8ff16efae370b829efec1be7b17eb4559148cb1c..87bd42e05cd80a8b11c24cdc74bdac38de7f3f74 100644 --- a/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/product/Category.java +++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/product/Category.java @@ -1,13 +1,13 @@ package ntnu.idatt2016.v233.SmartMat.entity.product; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.Id; +import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.List; + @NoArgsConstructor @AllArgsConstructor @Builder @@ -19,4 +19,7 @@ public class Category { String categoryName; @Column(name = "category_description") String description; + + @OneToMany(mappedBy = "category") + private List<Product> products; } \ No newline at end of file diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/product/Product.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/product/Product.java index 2a2d9d8b69f48cc6f0ae24f2a9592cc5ce2e79dd..b43ff40d842dcfded5545e059eaa9df3410ee9d5 100644 --- a/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/product/Product.java +++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/product/Product.java @@ -1,8 +1,7 @@ package ntnu.idatt2016.v233.SmartMat.entity.product; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.Id; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -30,8 +29,10 @@ public class Product{ @Column(name = "description") String description; - @Column(name ="category_name") - String categoryName; + @ManyToOne + @JoinColumn(name = "category_name") + @JsonIgnoreProperties({"products"}) + Category category; @Column(name = "image_url") String url; diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/service/ProductService.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/service/product/ProductService.java similarity index 100% rename from src/main/java/ntnu/idatt2016/v233/SmartMat/service/ProductService.java rename to src/main/java/ntnu/idatt2016/v233/SmartMat/service/product/ProductService.java diff --git a/src/test/java/ntnu/idatt2016/v233/SmartMat/repository/ProductRepositoryTest.java b/src/test/java/ntnu/idatt2016/v233/SmartMat/repository/ProductRepositoryTest.java index f5073198a073a7e2d0b5b18c67a82cd67c996502..09635f6c63db9bd8eea12f946e63f50ac3347997 100644 --- a/src/test/java/ntnu/idatt2016/v233/SmartMat/repository/ProductRepositoryTest.java +++ b/src/test/java/ntnu/idatt2016/v233/SmartMat/repository/ProductRepositoryTest.java @@ -1,13 +1,9 @@ package ntnu.idatt2016.v233.SmartMat.repository; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertTrue; - import java.util.List; import java.util.Optional; +import ntnu.idatt2016.v233.SmartMat.entity.product.Category; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -17,6 +13,8 @@ import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager; import ntnu.idatt2016.v233.SmartMat.entity.product.Product; +import static org.junit.jupiter.api.Assertions.*; + @DataJpaTest public class ProductRepositoryTest { @@ -34,7 +32,6 @@ public class ProductRepositoryTest { .ean(1234567890123L) .name("Test Product") .description("This is a test product") - .categoryName("TestCategory") .build(); entityManager.persist(product); } @@ -69,7 +66,6 @@ public class ProductRepositoryTest { .ean(1234567890124L) .name("New Product") .description("This is a new product") - .categoryName("TestCategory") .build(); productRepository.save(newProduct); List<Product> products = productRepository.findAll(); @@ -86,4 +82,25 @@ public class ProductRepositoryTest { assertEquals(0, products.size()); } + @Test + void CategoryShouldBeSetCorrecltly() { + Product product = new Product(); + Category category = Category.builder() + .categoryName("Test5") + .description("Test Description") + .build(); + product.setCategory(category); + productRepository.save(product); + + assertNotNull(product.getCategory()); + + Optional<Product> tempProduct = productRepository.findById(product.getEan()); + assertTrue(tempProduct.isPresent()); + + assertNotNull(tempProduct.get().getCategory()); + + assertNull(tempProduct.get().getCategory().getProducts()); + } + + }