diff --git a/src/main/java/com/booleanuk/api/bagels/Main.java b/src/main/java/com/booleanuk/api/bagels/Main.java new file mode 100644 index 0000000..1658d87 --- /dev/null +++ b/src/main/java/com/booleanuk/api/bagels/Main.java @@ -0,0 +1,11 @@ +package com.booleanuk.api.bagels; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Main { + public static void main(String[] args) { + SpringApplication.run(Main.class, args); + } +} diff --git a/src/main/java/com/booleanuk/api/bagels/BagelController.java b/src/main/java/com/booleanuk/api/bagels/controllers/BagelController.java similarity index 63% rename from src/main/java/com/booleanuk/api/bagels/BagelController.java rename to src/main/java/com/booleanuk/api/bagels/controllers/BagelController.java index cce2764..1cf739b 100644 --- a/src/main/java/com/booleanuk/api/bagels/BagelController.java +++ b/src/main/java/com/booleanuk/api/bagels/controllers/BagelController.java @@ -1,4 +1,7 @@ -package com.booleanuk.api.bagels; +package com.booleanuk.api.bagels.controllers; + +import com.booleanuk.api.bagels.models.Bagel; +import com.booleanuk.api.bagels.repositories.BagelRepository; import java.util.List; diff --git a/src/main/java/com/booleanuk/api/bagels/controllers/ProductController.java b/src/main/java/com/booleanuk/api/bagels/controllers/ProductController.java new file mode 100644 index 0000000..9af6c81 --- /dev/null +++ b/src/main/java/com/booleanuk/api/bagels/controllers/ProductController.java @@ -0,0 +1,48 @@ +package com.booleanuk.api.bagels.controllers; + +import com.booleanuk.api.bagels.models.Product; +import com.booleanuk.api.bagels.repositories.ProductRepository; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; + +@RestController +@RequestMapping("products") +public class ProductController { + ProductRepository repository; + + public ProductController(){ + repository = new ProductRepository(); + } + + @GetMapping + public ArrayList getAll(){ + return this.repository.findAll(); + } + + @GetMapping("/{id}") + public Product getOne(@PathVariable int id) { + return repository.findByID(id); + } + + @PostMapping + @ResponseStatus(HttpStatus.CREATED) + public Product create(@RequestBody Product product){ + repository.addProduct(product); + return product; + } + + @PutMapping("/{id}") + @ResponseStatus(HttpStatus.CREATED) + public Product update(@PathVariable int id, @RequestBody Product product){ + if(repository.updateProduct(id, product)) + return product; + return null; + } + + @DeleteMapping("/{id}") + public Product delete(@PathVariable int id){ + return repository.delete(id); + } +} diff --git a/src/main/java/com/booleanuk/api/bagels/Bagel.java b/src/main/java/com/booleanuk/api/bagels/models/Bagel.java similarity index 90% rename from src/main/java/com/booleanuk/api/bagels/Bagel.java rename to src/main/java/com/booleanuk/api/bagels/models/Bagel.java index 77a24a6..9df1763 100644 --- a/src/main/java/com/booleanuk/api/bagels/Bagel.java +++ b/src/main/java/com/booleanuk/api/bagels/models/Bagel.java @@ -1,4 +1,4 @@ -package com.booleanuk.api.bagels; +package com.booleanuk.api.bagels.models; public class Bagel { private int id; diff --git a/src/main/java/com/booleanuk/api/bagels/models/Product.java b/src/main/java/com/booleanuk/api/bagels/models/Product.java new file mode 100644 index 0000000..dc338d8 --- /dev/null +++ b/src/main/java/com/booleanuk/api/bagels/models/Product.java @@ -0,0 +1,46 @@ +package com.booleanuk.api.bagels.models; + +public class Product { + private int id; + private String name; + private String category; + private int price; + + + public Product(String name, String category, int price) { + this.name = name; + this.category = category; + this.price = price; + } + public int getId() { + return id; + } + + public void setId(int id){ + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public int getPrice() { + return price; + } + + public void setPrice(int price) { + this.price = price; + } +} diff --git a/src/main/java/com/booleanuk/api/bagels/BagelRepository.java b/src/main/java/com/booleanuk/api/bagels/repositories/BagelRepository.java similarity index 85% rename from src/main/java/com/booleanuk/api/bagels/BagelRepository.java rename to src/main/java/com/booleanuk/api/bagels/repositories/BagelRepository.java index 320ddba..1dda66d 100644 --- a/src/main/java/com/booleanuk/api/bagels/BagelRepository.java +++ b/src/main/java/com/booleanuk/api/bagels/repositories/BagelRepository.java @@ -1,4 +1,6 @@ -package com.booleanuk.api.bagels; +package com.booleanuk.api.bagels.repositories; + +import com.booleanuk.api.bagels.models.Bagel; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/com/booleanuk/api/bagels/repositories/ProductRepository.java b/src/main/java/com/booleanuk/api/bagels/repositories/ProductRepository.java new file mode 100644 index 0000000..149a5bc --- /dev/null +++ b/src/main/java/com/booleanuk/api/bagels/repositories/ProductRepository.java @@ -0,0 +1,52 @@ +package com.booleanuk.api.bagels.repositories; + +import com.booleanuk.api.bagels.models.Product; + +import java.util.ArrayList; + +public class ProductRepository { + private ArrayList products; + + public ProductRepository(){ + this.products = new ArrayList(); + + this.products.add(new Product("Asus", "Laptop", 1200)); + this.products.add(new Product("LG", "TV", 600)); + } + + public ArrayList findAll(){ + for (int i = 0; i < products.size(); i++) { + products.get(i).setId(i); + } + return this.products; + } + + public Product findByID(int id) { + if(id >= 0 && id= 0 && id= 0 && id