diff --git a/src/main/java/com/shervinee/shop/products/InMemoryProductsService.java b/src/main/java/com/shervinee/shop/products/InMemoryProductsService.java new file mode 100644 index 0000000..3502dc6 --- /dev/null +++ b/src/main/java/com/shervinee/shop/products/InMemoryProductsService.java @@ -0,0 +1,20 @@ +package com.shervinee.shop.products; + +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.List; + +@Service @Profile("dev") +public class InMemoryProductsService implements ProductsService { + + @Override + public List getAllProducts() { + return List.of( + new ProductDto(1L, "desk", new BigDecimal("122.67"), true ), + new ProductDto(1L, "monitor", new BigDecimal("252.31"), true ), + new ProductDto(1L, "chair", new BigDecimal("50.31"), false ) + ); + } +} diff --git a/src/main/java/com/shervinee/shop/products/ProductDto.java b/src/main/java/com/shervinee/shop/products/ProductDto.java new file mode 100644 index 0000000..f1be560 --- /dev/null +++ b/src/main/java/com/shervinee/shop/products/ProductDto.java @@ -0,0 +1,5 @@ +package com.shervinee.shop.products; + +import java.math.BigDecimal; + +public record ProductDto(Long id, String name, BigDecimal price, boolean inStock) {} diff --git a/src/main/java/com/shervinee/shop/products/ProductsController.java b/src/main/java/com/shervinee/shop/products/ProductsController.java new file mode 100644 index 0000000..4154e07 --- /dev/null +++ b/src/main/java/com/shervinee/shop/products/ProductsController.java @@ -0,0 +1,21 @@ +package com.shervinee.shop.products; + +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequiredArgsConstructor +@RequestMapping("api/products") +public class ProductsController { + + private final ProductsService productsService; + + @GetMapping + public List list() { + return productsService.getAllProducts(); + } +} diff --git a/src/main/java/com/shervinee/shop/products/ProductsService.java b/src/main/java/com/shervinee/shop/products/ProductsService.java new file mode 100644 index 0000000..a9c1319 --- /dev/null +++ b/src/main/java/com/shervinee/shop/products/ProductsService.java @@ -0,0 +1,8 @@ +package com.shervinee.shop.products; + +import java.util.List; + + +public interface ProductsService { + List getAllProducts(); +}