From 5efb455d42f4b9065d605298a07b2ea879d8c53b Mon Sep 17 00:00:00 2001 From: us2xince Date: Fri, 3 Oct 2025 16:10:33 +0900 Subject: [PATCH 1/5] Render admin page --- build.gradle | 4 +++- src/main/java/roomescape/MissionController.java | 13 +++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 src/main/java/roomescape/MissionController.java diff --git a/build.gradle b/build.gradle index 57267157c..0f53997ae 100644 --- a/build.gradle +++ b/build.gradle @@ -13,7 +13,9 @@ repositories { } dependencies { - implementation 'org.springframework.boot:spring-boot-starter' + implementation 'org.springframework.boot:spring-boot-starter-web' + //템플릿 엔진을 활용한 페이지 응답(동적 페이지) + implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'io.rest-assured:rest-assured:5.3.1' } diff --git a/src/main/java/roomescape/MissionController.java b/src/main/java/roomescape/MissionController.java new file mode 100644 index 000000000..2b19e2b5e --- /dev/null +++ b/src/main/java/roomescape/MissionController.java @@ -0,0 +1,13 @@ +package roomescape; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; + +@Controller +public class MissionController { + + @GetMapping("/") + public String index(){ + return "home"; + } +} From 21a785b934b1a7beb28abab57a39ac7d06f26944 Mon Sep 17 00:00:00 2001 From: us2xince Date: Fri, 3 Oct 2025 17:31:52 +0900 Subject: [PATCH 2/5] Reservation response --- build.gradle | 3 +- .../roomescape/ReservationController.java | 23 +++++++++++++ src/main/java/roomescape/Reservations.java | 34 +++++++++++++++++++ src/main/resources/templates/reservation.html | 6 ++++ src/test/java/roomescape/MissionStepTest.java | 15 ++++++++ 5 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 src/main/java/roomescape/ReservationController.java create mode 100644 src/main/java/roomescape/Reservations.java diff --git a/build.gradle b/build.gradle index 57267157c..fb197fc19 100644 --- a/build.gradle +++ b/build.gradle @@ -13,7 +13,8 @@ repositories { } dependencies { - implementation 'org.springframework.boot:spring-boot-starter' + implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'io.rest-assured:rest-assured:5.3.1' } diff --git a/src/main/java/roomescape/ReservationController.java b/src/main/java/roomescape/ReservationController.java new file mode 100644 index 000000000..03a7da5d4 --- /dev/null +++ b/src/main/java/roomescape/ReservationController.java @@ -0,0 +1,23 @@ +package roomescape; + +import java.util.ArrayList; +import java.util.List; + +import org.springframework.ui.Model; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; + +@Controller +public class ReservationController { + @GetMapping("/reservation") + public String getReservations(Model model) { + List reservations = new ArrayList<>(); + reservations.add (new Reservations(1L,"브라운","2023-01-01","10:00")); + reservations.add (new Reservations(2L,"브라운","2023-01-02","10:00")); + reservations.add (new Reservations(3L,"브라운","2023-01-03","10:00")); + + model.addAttribute("reservations", reservations); + return "reservation"; + } + +} diff --git a/src/main/java/roomescape/Reservations.java b/src/main/java/roomescape/Reservations.java new file mode 100644 index 000000000..0d0544f23 --- /dev/null +++ b/src/main/java/roomescape/Reservations.java @@ -0,0 +1,34 @@ +package roomescape; + +public class Reservations { + private Long id; + private String name; + private String date; + private String time; + + + public Reservations(String id, String name, String date, String time) { + this.id = Long.parseLong(id); + this.name = name; + this.date = date; + this.time = time; + } + + public Reservations(Long id, String name, String date, String time) { + this.id = id; + this.name = name; + this.date = date; + this.time = time; + } + + public Long getId() { return id; } + public String getName() { return name; } + public String getDate() { return date; } + public String getTime() { return time; } + + public void setId(Long id) { this.id = id; } + public void setName(String name) { this.name = name; } + public void setDate(String date) { this.date = date; } + public void setTime(String time) { this.time = time; } + +} diff --git a/src/main/resources/templates/reservation.html b/src/main/resources/templates/reservation.html index 7c0eb9fc4..800278684 100644 --- a/src/main/resources/templates/reservation.html +++ b/src/main/resources/templates/reservation.html @@ -56,6 +56,12 @@

예약 관리

+ + + + + + diff --git a/src/test/java/roomescape/MissionStepTest.java b/src/test/java/roomescape/MissionStepTest.java index cf4efbe91..354334d23 100644 --- a/src/test/java/roomescape/MissionStepTest.java +++ b/src/test/java/roomescape/MissionStepTest.java @@ -16,4 +16,19 @@ public class MissionStepTest { .then().log().all() .statusCode(200); } + + @Test + void 이단계() { + RestAssured.given().log().all() + .when().get("/reservation") + .then().log().all() + .statusCode(200); + + RestAssured.given().log().all() + .when().get("/reservation") + .then().log().all() + .statusCode(200) + .body("size()"),is(3); + + } } From 56deea1e8e1cc235cbe6554e6e7c0279b8e9c680 Mon Sep 17 00:00:00 2001 From: us2xince Date: Fri, 3 Oct 2025 18:09:01 +0900 Subject: [PATCH 3/5] revised --- src/test/java/roomescape/MissionStepTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/test/java/roomescape/MissionStepTest.java b/src/test/java/roomescape/MissionStepTest.java index 354334d23..f651783fa 100644 --- a/src/test/java/roomescape/MissionStepTest.java +++ b/src/test/java/roomescape/MissionStepTest.java @@ -27,8 +27,7 @@ public class MissionStepTest { RestAssured.given().log().all() .when().get("/reservation") .then().log().all() - .statusCode(200) - .body("size()"),is(3); + .statusCode(200); } } From 56380cfa26c527c34f522585b10433e210f1578b Mon Sep 17 00:00:00 2001 From: us2xince Date: Sun, 12 Oct 2025 13:45:52 +0900 Subject: [PATCH 4/5] "Step1 & Step2 Revised" --- src/main/java/roomescape/Reservations.java | 3 +-- src/test/java/roomescape/MissionStepTest.java | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/roomescape/Reservations.java b/src/main/java/roomescape/Reservations.java index 0d0544f23..9452282a3 100644 --- a/src/main/java/roomescape/Reservations.java +++ b/src/main/java/roomescape/Reservations.java @@ -7,8 +7,7 @@ public class Reservations { private String time; - public Reservations(String id, String name, String date, String time) { - this.id = Long.parseLong(id); + public Reservations(String name, String date, String time) { this.name = name; this.date = date; this.time = time; diff --git a/src/test/java/roomescape/MissionStepTest.java b/src/test/java/roomescape/MissionStepTest.java index f651783fa..485321356 100644 --- a/src/test/java/roomescape/MissionStepTest.java +++ b/src/test/java/roomescape/MissionStepTest.java @@ -28,6 +28,5 @@ public class MissionStepTest { .when().get("/reservation") .then().log().all() .statusCode(200); - } } From 3ba4f580abe2d4235a530e954d75bf9481e5a36f Mon Sep 17 00:00:00 2001 From: us2xince Date: Sun, 12 Oct 2025 13:55:52 +0900 Subject: [PATCH 5/5] add JSON controller --- .../roomescape/ReservationApiController.java | 20 +++++++++++++++++++ src/test/java/roomescape/MissionStepTest.java | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 src/main/java/roomescape/ReservationApiController.java diff --git a/src/main/java/roomescape/ReservationApiController.java b/src/main/java/roomescape/ReservationApiController.java new file mode 100644 index 000000000..eabf91a11 --- /dev/null +++ b/src/main/java/roomescape/ReservationApiController.java @@ -0,0 +1,20 @@ +package roomescape; + +import java.util.ArrayList; +import java.util.List; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class ReservationApiController { + + @GetMapping("/reservations") + public List getReservations() { + List reservations = new ArrayList<>(); + reservations.add (new Reservations(1L,"브라운","2023-01-01","10:00")); + reservations.add (new Reservations(2L,"브라운","2023-01-02","10:00")); + reservations.add (new Reservations(3L,"브라운","2023-01-03","10:00")); + + return reservations; + }; +} diff --git a/src/test/java/roomescape/MissionStepTest.java b/src/test/java/roomescape/MissionStepTest.java index 485321356..9a778a231 100644 --- a/src/test/java/roomescape/MissionStepTest.java +++ b/src/test/java/roomescape/MissionStepTest.java @@ -20,7 +20,7 @@ public class MissionStepTest { @Test void 이단계() { RestAssured.given().log().all() - .when().get("/reservation") + .when().get("/reservations") .then().log().all() .statusCode(200);