From 2e22164902156db302209e1a1bda4376b2d45210 Mon Sep 17 00:00:00 2001 From: yusuf handal Date: Sun, 13 Nov 2022 23:17:26 -0500 Subject: [PATCH 1/8] Homework 1 --- .../msscbrewery/services/CustomerService.java | 15 ++++++++++ .../services/CustomerServiceImpl.java | 20 +++++++++++++ .../web/controller/CustomerController.java | 30 +++++++++++++++++++ .../msscbrewery/web/model/CustomerDto.java | 20 +++++++++++++ 4 files changed, 85 insertions(+) create mode 100644 src/main/java/guru/springframework/msscbrewery/services/CustomerService.java create mode 100644 src/main/java/guru/springframework/msscbrewery/services/CustomerServiceImpl.java create mode 100644 src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java create mode 100644 src/main/java/guru/springframework/msscbrewery/web/model/CustomerDto.java diff --git a/src/main/java/guru/springframework/msscbrewery/services/CustomerService.java b/src/main/java/guru/springframework/msscbrewery/services/CustomerService.java new file mode 100644 index 00000000..0da71c0a --- /dev/null +++ b/src/main/java/guru/springframework/msscbrewery/services/CustomerService.java @@ -0,0 +1,15 @@ +package guru.springframework.msscbrewery.services; + + +import guru.springframework.msscbrewery.web.model.CustomerDto; + +import java.util.UUID; + +public interface CustomerService { + + + + CustomerDto getCustomerById(UUID customerId); + + +} diff --git a/src/main/java/guru/springframework/msscbrewery/services/CustomerServiceImpl.java b/src/main/java/guru/springframework/msscbrewery/services/CustomerServiceImpl.java new file mode 100644 index 00000000..17e953d9 --- /dev/null +++ b/src/main/java/guru/springframework/msscbrewery/services/CustomerServiceImpl.java @@ -0,0 +1,20 @@ +package guru.springframework.msscbrewery.services; + + +import guru.springframework.msscbrewery.web.model.CustomerDto; +import org.springframework.stereotype.Service; + +import java.util.UUID; +@Service +public class CustomerServiceImpl implements CustomerService{ + + + @Override + public CustomerDto getCustomerById(UUID customerId) { + return CustomerDto.builder().id(UUID.randomUUID()) + .name("Radi") + .build(); + } + + +} diff --git a/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java b/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java new file mode 100644 index 00000000..5388178d --- /dev/null +++ b/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java @@ -0,0 +1,30 @@ +package guru.springframework.msscbrewery.web.controller; + + +import guru.springframework.msscbrewery.services.CustomerService; +import guru.springframework.msscbrewery.web.model.CustomerDto; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.UUID; + +@RequestMapping("/api/v1/customer") +@RestController +public class CustomerController { + + private final CustomerService customerService; + + public CustomerController(CustomerService customerService) { + this.customerService = customerService; + } + + @GetMapping({"/{customerId}"}) + public ResponseEntity getBeer(@PathVariable("customerId") UUID customerId){ + + return new ResponseEntity<>(customerService.getCustomerById(customerId), HttpStatus.OK); + } +} diff --git a/src/main/java/guru/springframework/msscbrewery/web/model/CustomerDto.java b/src/main/java/guru/springframework/msscbrewery/web/model/CustomerDto.java new file mode 100644 index 00000000..ef8f2971 --- /dev/null +++ b/src/main/java/guru/springframework/msscbrewery/web/model/CustomerDto.java @@ -0,0 +1,20 @@ +package guru.springframework.msscbrewery.web.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.UUID; +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class CustomerDto { + + private UUID id; + private String name; + + + +} From 351bc89455d17ffe4055c3e5a14684a250f6b572 Mon Sep 17 00:00:00 2001 From: yusuf handal Date: Sun, 13 Nov 2022 23:21:49 -0500 Subject: [PATCH 2/8] Homework 1 --- target/classes/application.properties | 1 + 1 file changed, 1 insertion(+) create mode 100644 target/classes/application.properties diff --git a/target/classes/application.properties b/target/classes/application.properties new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/target/classes/application.properties @@ -0,0 +1 @@ + From 404107828894a880210fa8d22280c101f4050914 Mon Sep 17 00:00:00 2001 From: yusuf handal Date: Sun, 13 Nov 2022 23:31:59 -0500 Subject: [PATCH 3/8] Final Homework 1 --- .../msscbrewery/web/controller/CustomerController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java b/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java index 5388178d..6f4e44b0 100644 --- a/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java +++ b/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java @@ -28,3 +28,4 @@ public ResponseEntity getBeer(@PathVariable("customerId") UUID cust return new ResponseEntity<>(customerService.getCustomerById(customerId), HttpStatus.OK); } } +//Final Homework 1 From 1b13a839f1e1c6d83744a6180b327ecc99dbe48e Mon Sep 17 00:00:00 2001 From: yusuf handal Date: Sun, 13 Nov 2022 23:41:03 -0500 Subject: [PATCH 4/8] Final Homework 1 --- .../msscbrewery/web/controller/CustomerController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java b/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java index 6f4e44b0..c62dcdc2 100644 --- a/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java +++ b/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java @@ -28,4 +28,4 @@ public ResponseEntity getBeer(@PathVariable("customerId") UUID cust return new ResponseEntity<>(customerService.getCustomerById(customerId), HttpStatus.OK); } } -//Final Homework 1 +//Final Homework1 fork From 1d5526d6fbb45ec710a92f527a19d1f6bd6ea256 Mon Sep 17 00:00:00 2001 From: yusuf handal Date: Sun, 13 Nov 2022 23:43:41 -0500 Subject: [PATCH 5/8] Final Homework 1 fork --- .../msscbrewery/web/controller/CustomerController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java b/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java index c62dcdc2..81109531 100644 --- a/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java +++ b/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java @@ -28,4 +28,5 @@ public ResponseEntity getBeer(@PathVariable("customerId") UUID cust return new ResponseEntity<>(customerService.getCustomerById(customerId), HttpStatus.OK); } } -//Final Homework1 fork +//Final Homework1 fork test + From 317f49ea800499b7dd62c031e61149273fe7bc4d Mon Sep 17 00:00:00 2001 From: yusuf handal Date: Sun, 13 Nov 2022 23:48:19 -0500 Subject: [PATCH 6/8] 11 --- .../msscbrewery/web/controller/CustomerController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java b/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java index 81109531..e3f37d9a 100644 --- a/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java +++ b/src/main/java/guru/springframework/msscbrewery/web/controller/CustomerController.java @@ -28,5 +28,5 @@ public ResponseEntity getBeer(@PathVariable("customerId") UUID cust return new ResponseEntity<>(customerService.getCustomerById(customerId), HttpStatus.OK); } } -//Final Homework1 fork test +//Final Homework1 fork test brunch From aab65b47fc1027c3797990442735d61901312f3d Mon Sep 17 00:00:00 2001 From: yusuf handal Date: Thu, 17 Nov 2022 19:35:07 -0500 Subject: [PATCH 7/8] fork many times --- .../web/controller/BeerController.java | 31 ++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/src/main/java/guru/springframework/msscbrewery/web/controller/BeerController.java b/src/main/java/guru/springframework/msscbrewery/web/controller/BeerController.java index 49670652..8005091c 100644 --- a/src/main/java/guru/springframework/msscbrewery/web/controller/BeerController.java +++ b/src/main/java/guru/springframework/msscbrewery/web/controller/BeerController.java @@ -2,12 +2,10 @@ import guru.springframework.msscbrewery.services.BeerService; import guru.springframework.msscbrewery.web.model.BeerDto; +import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.UUID; @@ -29,5 +27,30 @@ public ResponseEntity getBeer(@PathVariable("beerId") UUID beerId){ return new ResponseEntity<>(beerService.getBeerById(beerId), HttpStatus.OK); } + @PostMapping // POST - create new beer + public ResponseEntity handlePost(@RequestBody BeerDto beerDto){ + // BeerDto savedDto = BeerService.saveNewBeer(beerDto); + BeerDto savedDto = beerService.saveNewBeer(beerDto); + + HttpHeaders headers = new HttpHeaders(); + //todo add hostname to url + headers.add("Location", "/api/v1/beer/" + savedDto.getId().toString()); + + return new ResponseEntity(headers, HttpStatus.CREATED); + } + @PutMapping({"/{beerId}"}) + public ResponseEntity hundleUpdate(@PathVariable("beerId")UUID beerId ,BeerDto beerDto){ + beerService.updateBeer(beerId,beerDto); + beerService.updateBeer(beerId, beerDto); + return new ResponseEntity(HttpStatus.NO_CONTENT); + + + } } +//commit fork over fork plus fork + + + +// please fork + From 7796a0010b2b0884690d36a6984130e2e3709db9 Mon Sep 17 00:00:00 2001 From: yusuf handal Date: Fri, 18 Nov 2022 23:49:27 -0500 Subject: [PATCH 8/8] builder basics --- .../msscbrewery/services/Class.java | 31 ++++++++++++++++++ .../msscbrewery/services/Foo.java | 16 ++++++++++ .../msscbrewery/services/FooBuilder.java | 32 +++++++++++++++++++ .../web/controller/BeerController.java | 11 +++++-- 4 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 src/main/java/guru/springframework/msscbrewery/services/Class.java create mode 100644 src/main/java/guru/springframework/msscbrewery/services/Foo.java create mode 100644 src/main/java/guru/springframework/msscbrewery/services/FooBuilder.java diff --git a/src/main/java/guru/springframework/msscbrewery/services/Class.java b/src/main/java/guru/springframework/msscbrewery/services/Class.java new file mode 100644 index 00000000..9f411556 --- /dev/null +++ b/src/main/java/guru/springframework/msscbrewery/services/Class.java @@ -0,0 +1,31 @@ +package guru.springframework.msscbrewery.services; +// File Class.java +public class Class { + private Class(String s) { + + } + + public static Class createClass(String s) { + return new Class(s); + } +} + +// File AnotherClass.java +class AnotherClass { + public void method() { + Class aClass = Class.createClass("string"); + } +} +//// File Class.java +//public class Class { +// public Class(String s) { +// ... +// } +//} +// +//// File AnotherClass.java +//public class AnotherClass { +// public void method() { +// Class aClass = new Class("string"); +// } +//} \ No newline at end of file diff --git a/src/main/java/guru/springframework/msscbrewery/services/Foo.java b/src/main/java/guru/springframework/msscbrewery/services/Foo.java new file mode 100644 index 00000000..2540ab8b --- /dev/null +++ b/src/main/java/guru/springframework/msscbrewery/services/Foo.java @@ -0,0 +1,16 @@ +package guru.springframework.msscbrewery.services; + +public class Foo { + public Foo(String firstName, String lastName, int age, boolean married) {} + public static void main(String[] args) { + Foo joe = new FooBuilder().setFirstName("Joe").setLastName("Smith").setAge(42).setMarried(false).createFoo(); + } +} +//The Replace Constructor with Builder refactoring helps hide a constructor, +// replacing its usages with the references to a newly generated builder class, +// or to an existing builder class. + +// public Foo createFoo() { +// return new Foo(firstName, lastName, age, married); +// } + diff --git a/src/main/java/guru/springframework/msscbrewery/services/FooBuilder.java b/src/main/java/guru/springframework/msscbrewery/services/FooBuilder.java new file mode 100644 index 00000000..6d41c688 --- /dev/null +++ b/src/main/java/guru/springframework/msscbrewery/services/FooBuilder.java @@ -0,0 +1,32 @@ +package guru.springframework.msscbrewery.services; + +public class FooBuilder { + private String firstName; + private String lastName; + private int age; + private boolean married; + + public FooBuilder setFirstName(String firstName) { + this.firstName = firstName; + return this; + } + + public FooBuilder setLastName(String lastName) { + this.lastName = lastName; + return this; + } + + public FooBuilder setAge(int age) { + this.age = age; + return this; + } + + public FooBuilder setMarried(boolean married) { + this.married = married; + return this; + } + + public Foo createFoo() { + return new Foo(firstName, lastName, age, married); + } +} \ No newline at end of file diff --git a/src/main/java/guru/springframework/msscbrewery/web/controller/BeerController.java b/src/main/java/guru/springframework/msscbrewery/web/controller/BeerController.java index 8005091c..281fdb1e 100644 --- a/src/main/java/guru/springframework/msscbrewery/web/controller/BeerController.java +++ b/src/main/java/guru/springframework/msscbrewery/web/controller/BeerController.java @@ -1,5 +1,5 @@ package guru.springframework.msscbrewery.web.controller; - +import org.slf4j.Logger; import guru.springframework.msscbrewery.services.BeerService; import guru.springframework.msscbrewery.web.model.BeerDto; import org.springframework.http.HttpHeaders; @@ -40,13 +40,20 @@ public ResponseEntity handlePost(@RequestBody BeerDto beerDto){ return new ResponseEntity(headers, HttpStatus.CREATED); } @PutMapping({"/{beerId}"}) - public ResponseEntity hundleUpdate(@PathVariable("beerId")UUID beerId ,BeerDto beerDto){ + public ResponseEntity UpdateBeer(@PathVariable("beerId")UUID beerId ,BeerDto beerDto){ beerService.updateBeer(beerId,beerDto); beerService.updateBeer(beerId, beerDto); return new ResponseEntity(HttpStatus.NO_CONTENT); } + + @DeleteMapping({"/{beerId}"}) + @ResponseStatus(HttpStatus.NO_CONTENT) + public void deleteBeer(@PathVariable("beerId") UUID beerId){ + beerService.deleteById(beerId); + + } } //commit fork over fork plus fork