Untitled
unknown
plain_text
a month ago
5.5 kB
5
Indexable
Never
controller.java package com.example.warehouse.controller; import com.example.warehouse.model.Product; import com.example.warehouse.service.ProductService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @RestController public class ProductController { /* This controller would be responsible for the ProductController endpoints Add the required annotations and create the endpoints */ @Autowired private ProductService productService; //to add the Product details using Product object @PostMapping("/product/add") private Object postProduct(@RequestBody Product product){ //return null; return productService.postProduct(product); } //to get all the Product details @GetMapping("/product/get") private Object getProduct(){ return productService.getProduct(); } //to update the product with id as pathVariable and product as object in RequestBody @PutMapping("/product/{id}") public ResponseEntity<Object> updateProduct(@PathVariable int id,@RequestBody Product product){ return productService.updateProduct(id, product); } // to delete the product by using id as PathVariable @DeleteMapping("/product/{id}") public ResponseEntity<Object> deleteProductById(@PathVariable int id){ return productService.deleteProductById(id); } //to get the product items by vendor @GetMapping("/product/vendor") public ResponseEntity<Object> getSimilarVendor(@RequestParam String value){ return productService.getSimilarVendor(value); } } ------------------- service.java package com.example.warehouse.service; import com.example.warehouse.model.Product; import com.example.warehouse.repository.ProductRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.Optional; @Service public class ProductService { /* Implement the business logic for the ProductService operations in this class Make sure to add required annotations */ @Autowired private ProductRepository productRepository; //to post all the Product details //created->201 //badRequest->400 public Object postProduct(Product product) { if(product.getName().isEmpty()||product.getDescription().isEmpty()||product.getVendor().isEmpty()||product.getCurrency().isEmpty()||product.getImage_url().isEmpty()||product.getSku().isEmpty()||product.getPrice()<0||product.getStock()<0) { return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } if(productRepository.existsBySku(product.getSku())||productRepository.existsById(product.getId())) { return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } Product p=productRepository.save(product); return new ResponseEntity<>(p,HttpStatus.CREATED); } //to get all the Product details //ok->200 //badRequest->400 public Object getProduct() { //return null; List<Product> a=productRepository.findAll(); if(!a.isEmpty()) { return new ResponseEntity<>(a,HttpStatus.OK); } else { return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } } //to get the product with the value(pathVariable) //ok()->200 //badRequest()->400 public ResponseEntity<Object> getSimilarVendor(String value) { List<Product> a=productRepository.findByVendor(value); if(!a.isEmpty()) { return new ResponseEntity<>(a,HttpStatus.OK); } else { return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } } //to update the Product with id as pathVariable and Product as object in RequestBody //ok->200 //badRequest->400 public ResponseEntity<Object> updateProduct(int id, Product product) { // return null; Product p=productRepository.findById(id).orElse(null); if(p!=null) { p.setPrice(product.getPrice()); p.setStock(product.getStock()); return new ResponseEntity<>(productRepository.save(p),HttpStatus.OK); } else { return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } } // to delete the product by using id as PathVariable //ok->200 //badRequest->400 public ResponseEntity<Object> deleteProductById(int id) { //return null; Product p=productRepository.findById(id).orElse(null); if(p!=null) { productRepository.deleteById(id); return new ResponseEntity<>(HttpStatus.OK); } else { return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } } } ------------------------------------- repo.java package com.example.warehouse.repository; import com.example.warehouse.model.Product; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository public interface ProductRepository extends JpaRepository<Product,Integer> { List<Product> findByVendor(String value); boolean existsBySku(String sku); } ------------------------------------------------
Leave a Comment