From e85c1f7d552135c7a53833a9a633a6e473b30bc5 Mon Sep 17 00:00:00 2001 From: sinji Date: Mon, 25 Nov 2024 20:55:05 +0900 Subject: [PATCH 01/34] =?UTF-8?q?refactor(MissionStepTest):=20[8=EB=8B=A8?= =?UTF-8?q?=EA=B3=84]=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/roomescape/MissionStepTest.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/test/java/roomescape/MissionStepTest.java b/src/test/java/roomescape/MissionStepTest.java index 2e07a41ec..e3ac7a35b 100644 --- a/src/test/java/roomescape/MissionStepTest.java +++ b/src/test/java/roomescape/MissionStepTest.java @@ -157,4 +157,29 @@ public class MissionStepTest { assertThat(countAfterDelete).isEqualTo(0); } + @Test + void 팔단계() { + Map params = new HashMap<>(); + params.put("time", "10:00"); + + RestAssured.given().log().all() + .contentType(ContentType.JSON) + .body(params) + .when().post("/times") + .then().log().all() + .statusCode(201) + .header("Location", "/times/1"); + + RestAssured.given().log().all() + .when().get("/times") + .then().log().all() + .statusCode(200) + .body("size()", is(1)); + + RestAssured.given().log().all() + .when().delete("/times/1") + .then().log().all() + .statusCode(204); + } + } From d9debfd66439d884f7547f16d9e29211445d5bd2 Mon Sep 17 00:00:00 2001 From: sinji Date: Mon, 25 Nov 2024 20:55:52 +0900 Subject: [PATCH 02/34] =?UTF-8?q?feat(schema.sql):=20[8=EB=8B=A8=EA=B3=84]?= =?UTF-8?q?=20time=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EB=B2=A0=EC=9D=B4?= =?UTF-8?q?=EC=8A=A4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/schema.sql | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/resources/schema.sql b/src/main/resources/schema.sql index f78ddcf8c..029290021 100644 --- a/src/main/resources/schema.sql +++ b/src/main/resources/schema.sql @@ -3,5 +3,12 @@ CREATE TABLE RESERVATION id BIGINT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, date VARCHAR(10) NOT NULL, -- yyyy-mm-dd -> 10 글자 - time VARCHAR(5) NOT NULL -- hh-mm -> 5 글자 + time VARCHAR(5) NOT NULL -- hh-mm -> 5 글자 ); + +CREATE TABLE time +( + id BIGINT NOT NULL AUTO_INCREMENT, + time VARCHAR(255) NOT NULL, + PRIMARY KEY (id) +); \ No newline at end of file From 9a1ea5be6a5f9e1a9290fff4ee0418a5b7ebd7bb Mon Sep 17 00:00:00 2001 From: sinji Date: Mon, 25 Nov 2024 22:00:27 +0900 Subject: [PATCH 03/34] =?UTF-8?q?feat(Time):=20[8=EB=8B=A8=EA=B3=84]=20tim?= =?UTF-8?q?e=20=EA=B0=9D=EC=B2=B4=20=ED=81=B4=EB=9E=98=EC=8A=A4=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/roomescape/model/Time.java | 27 ++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/main/java/roomescape/model/Time.java diff --git a/src/main/java/roomescape/model/Time.java b/src/main/java/roomescape/model/Time.java new file mode 100644 index 000000000..ed0aafce9 --- /dev/null +++ b/src/main/java/roomescape/model/Time.java @@ -0,0 +1,27 @@ +package roomescape.model; + +public class Time { + + private Long id; + private String time; + + public Time(String time) { + this.time = time; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getTime() { + return time; + } + + public void setTime(String time) { + this.time = time; + } +} From 8f20448f0a4b9ca3a766e76d2f0c4c7229ecff6a Mon Sep 17 00:00:00 2001 From: sinji Date: Tue, 26 Nov 2024 02:02:53 +0900 Subject: [PATCH 04/34] =?UTF-8?q?refactor(Reservation=20package):=20[8?= =?UTF-8?q?=EB=8B=A8=EA=B3=84]=20=EC=98=88=EC=95=BD=20=EA=B4=80=EB=A0=A8?= =?UTF-8?q?=20=EB=8F=84=EB=A9=94=EC=9D=B8=EB=93=A4=EC=9D=84=20=EC=98=88?= =?UTF-8?q?=EC=95=BD=20=ED=8C=A8=ED=82=A4=EC=A7=80=EB=A1=9C=20=EC=9D=B4?= =?UTF-8?q?=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/roomescape/controller/ReservationController.java | 6 +++--- .../roomescape/model/{ => reservation}/Reservation.java | 2 +- .../model/{ => reservation}/ReservationRepository.java | 2 +- .../model/{ => reservation}/ReservationRequest.java | 2 +- .../model/{ => reservation}/ReservationService.java | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) rename src/main/java/roomescape/model/{ => reservation}/Reservation.java (93%) rename src/main/java/roomescape/model/{ => reservation}/ReservationRepository.java (96%) rename src/main/java/roomescape/model/{ => reservation}/ReservationRequest.java (92%) rename src/main/java/roomescape/model/{ => reservation}/ReservationService.java (98%) diff --git a/src/main/java/roomescape/controller/ReservationController.java b/src/main/java/roomescape/controller/ReservationController.java index 355e5facb..5e3b8faa5 100644 --- a/src/main/java/roomescape/controller/ReservationController.java +++ b/src/main/java/roomescape/controller/ReservationController.java @@ -4,9 +4,9 @@ import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; -import roomescape.model.Reservation; -import roomescape.model.ReservationRequest; -import roomescape.model.ReservationService; +import roomescape.model.reservation.Reservation; +import roomescape.model.reservation.ReservationRequest; +import roomescape.model.reservation.ReservationService; import java.util.List; diff --git a/src/main/java/roomescape/model/Reservation.java b/src/main/java/roomescape/model/reservation/Reservation.java similarity index 93% rename from src/main/java/roomescape/model/Reservation.java rename to src/main/java/roomescape/model/reservation/Reservation.java index 3f4630d99..5f1b4de77 100644 --- a/src/main/java/roomescape/model/Reservation.java +++ b/src/main/java/roomescape/model/reservation/Reservation.java @@ -1,4 +1,4 @@ -package roomescape.model; +package roomescape.model.reservation; public class Reservation { diff --git a/src/main/java/roomescape/model/ReservationRepository.java b/src/main/java/roomescape/model/reservation/ReservationRepository.java similarity index 96% rename from src/main/java/roomescape/model/ReservationRepository.java rename to src/main/java/roomescape/model/reservation/ReservationRepository.java index c41da2937..2368fd22a 100644 --- a/src/main/java/roomescape/model/ReservationRepository.java +++ b/src/main/java/roomescape/model/reservation/ReservationRepository.java @@ -1,4 +1,4 @@ -package roomescape.model; +package roomescape.model.reservation; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; diff --git a/src/main/java/roomescape/model/ReservationRequest.java b/src/main/java/roomescape/model/reservation/ReservationRequest.java similarity index 92% rename from src/main/java/roomescape/model/ReservationRequest.java rename to src/main/java/roomescape/model/reservation/ReservationRequest.java index baeab676e..62c8c7318 100644 --- a/src/main/java/roomescape/model/ReservationRequest.java +++ b/src/main/java/roomescape/model/reservation/ReservationRequest.java @@ -1,4 +1,4 @@ -package roomescape.model; +package roomescape.model.reservation; public class ReservationRequest { private String name; diff --git a/src/main/java/roomescape/model/ReservationService.java b/src/main/java/roomescape/model/reservation/ReservationService.java similarity index 98% rename from src/main/java/roomescape/model/ReservationService.java rename to src/main/java/roomescape/model/reservation/ReservationService.java index 6de9013c3..9a56add95 100644 --- a/src/main/java/roomescape/model/ReservationService.java +++ b/src/main/java/roomescape/model/reservation/ReservationService.java @@ -1,4 +1,4 @@ -package roomescape.model; +package roomescape.model.reservation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; From 2eb8035549e66c627834b95afb321641da0b521c Mon Sep 17 00:00:00 2001 From: sinji Date: Tue, 26 Nov 2024 02:03:32 +0900 Subject: [PATCH 05/34] =?UTF-8?q?feat(TimeRequest):=20[8=EB=8B=A8=EA=B3=84?= =?UTF-8?q?]=20=EC=98=88=EC=95=BD=20=EC=8B=9C=EA=B0=84=20=EC=9A=94?= =?UTF-8?q?=EC=B2=AD=EC=97=90=20=EC=82=AC=EC=9A=A9=ED=95=A0=20DTO=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roomescape/model/time/TimeRequest.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/main/java/roomescape/model/time/TimeRequest.java diff --git a/src/main/java/roomescape/model/time/TimeRequest.java b/src/main/java/roomescape/model/time/TimeRequest.java new file mode 100644 index 000000000..e3692f32e --- /dev/null +++ b/src/main/java/roomescape/model/time/TimeRequest.java @@ -0,0 +1,19 @@ +package roomescape.model.time; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class TimeRequest { + @JsonProperty("time") + private String time; + + public TimeRequest() { + } + + public String getTime() { + return time; + } + + public void setTime(String time) { + this.time = time; + } +} From ab272cdd740e2930b490c2d26eedaf5f39f674ef Mon Sep 17 00:00:00 2001 From: sinji Date: Tue, 26 Nov 2024 02:03:54 +0900 Subject: [PATCH 06/34] =?UTF-8?q?refactor(Time):=20[8=EB=8B=A8=EA=B3=84]?= =?UTF-8?q?=20=ED=8C=A8=ED=82=A4=EC=A7=80=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/roomescape/model/{ => time}/Time.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/main/java/roomescape/model/{ => time}/Time.java (92%) diff --git a/src/main/java/roomescape/model/Time.java b/src/main/java/roomescape/model/time/Time.java similarity index 92% rename from src/main/java/roomescape/model/Time.java rename to src/main/java/roomescape/model/time/Time.java index ed0aafce9..f931e94d2 100644 --- a/src/main/java/roomescape/model/Time.java +++ b/src/main/java/roomescape/model/time/Time.java @@ -1,4 +1,4 @@ -package roomescape.model; +package roomescape.model.time; public class Time { From 2d600abd16d430eb2caed8e7c66795c44b44228e Mon Sep 17 00:00:00 2001 From: sinji Date: Tue, 26 Nov 2024 02:04:31 +0900 Subject: [PATCH 07/34] =?UTF-8?q?feat(TimeController):=20[8=EB=8B=A8?= =?UTF-8?q?=EA=B3=84]=20=EC=8B=9C=EA=B0=84=20=EC=B6=94=EA=B0=80=20API=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roomescape/controller/TimeController.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/main/java/roomescape/controller/TimeController.java diff --git a/src/main/java/roomescape/controller/TimeController.java b/src/main/java/roomescape/controller/TimeController.java new file mode 100644 index 000000000..79a299297 --- /dev/null +++ b/src/main/java/roomescape/controller/TimeController.java @@ -0,0 +1,45 @@ +package roomescape.controller; + +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.support.GeneratedKeyHolder; +import org.springframework.jdbc.support.KeyHolder; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import roomescape.model.time.Time; +import roomescape.model.time.TimeRequest; + +import java.sql.PreparedStatement; + +@Controller +public class TimeController { + private final JdbcTemplate jdbcTemplate; + + public TimeController(JdbcTemplate jdbcTemplate) { + this.jdbcTemplate = jdbcTemplate; + } + + @PostMapping("/times") + public ResponseEntity