Skip to content

Commit 6d9acfd

Browse files
committed
refactor: new-reservation.js 코드 수정
1 parent fb70989 commit 6d9acfd

File tree

8 files changed

+29
-31
lines changed

8 files changed

+29
-31
lines changed

src/main/java/roomescape/dao/ReservationDao.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,13 @@ public List<Reservation> findAll() {
3636

3737

3838
public Reservation insert(Reservation reservation) {
39-
String sql = "INSERT INTO reservation(name, date, time_id) VALUES (?, ?, ?)";
4039

40+
String sql = "INSERT INTO reservation(name, date, time_id) VALUES (?, ?, ?)";
4141
jdbcTemplate.update(sql, reservation.getName(), reservation.getDate(), reservation.getTime().getId());
4242

4343
String query = "SELECT id FROM reservation ORDER BY id DESC LIMIT 1";
4444
Long id = jdbcTemplate.queryForObject(query, Long.class);
45-
//
45+
4646
return new Reservation(id, reservation.getName(), reservation.getDate(), reservation.getTime().getTime());
4747
}
4848

src/main/java/roomescape/dao/TimeDao.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
package roomescape.dao;
22

33
import org.springframework.jdbc.core.JdbcTemplate;
4+
import org.springframework.jdbc.support.GeneratedKeyHolder;
5+
import org.springframework.jdbc.support.KeyHolder;
46
import org.springframework.stereotype.Repository;
57
import roomescape.entity.Time;
68

9+
import java.sql.PreparedStatement;
10+
import java.sql.Statement;
711
import java.util.List;
812

913
@Repository
@@ -24,10 +28,15 @@ public List<Time> findAll() {
2428

2529
public Time insert(Time time) {
2630
String sql = "INSERT INTO time(time) VALUES (?)";
27-
jdbcTemplate.update(sql, time.getTime());
31+
KeyHolder keyHolder = new GeneratedKeyHolder();
2832

29-
String query = "SELECT id FROM time ORDER BY id DESC LIMIT 1";
30-
Long id = jdbcTemplate.queryForObject(query, Long.class);
33+
jdbcTemplate.update(connection -> {
34+
PreparedStatement ps = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
35+
ps.setString(1, time.getTime());
36+
return ps;
37+
}, keyHolder);
38+
39+
Long id = keyHolder.getKey().longValue();
3140

3241
return new Time(id, time.getTime());
3342
}

src/main/java/roomescape/dto/TimeRequestDto.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
package roomescape.dto;
22

3-
import java.time.LocalTime;
4-
import java.time.format.DateTimeFormatter;
5-
63
public class TimeRequestDto {
74
private String time;
85

src/main/java/roomescape/entity/Reservation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public Time getTime() {
4242
}
4343

4444
public LocalTime getTimeAsLocalTime() {
45-
return time.getTimeASLocalTime();
45+
return time.getTimeAsLocalTime();
4646
}
4747

4848
}

src/main/java/roomescape/entity/Time.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package roomescape.entity;
22

3+
import java.time.DateTimeException;
34
import java.time.LocalTime;
45

56
public class Time {
@@ -23,8 +24,11 @@ public String getTime() {
2324
return time;
2425
}
2526

26-
public LocalTime getTimeASLocalTime(){ //string -> localtime
27-
return LocalTime.parse(time);
27+
public LocalTime getTimeAsLocalTime(){ //string -> localtime
28+
try {
29+
return LocalTime.parse(time);
30+
} catch (DateTimeException e) {
31+
return LocalTime.parse(time + ":00"); // 초
32+
}
2833
}
29-
3034
}

src/main/java/roomescape/service/ReservationService.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
import roomescape.repository.TimeRepository;
1010

1111
import java.time.DateTimeException;
12-
import java.time.LocalTime;
13-
import java.time.format.DateTimeFormatter;
1412
import java.util.List;
1513
import java.util.Optional;
1614
import java.util.stream.Collectors;
@@ -45,7 +43,6 @@ public ReservationResponseDto createReservation(ReservationRequestDto requestDto
4543
time
4644
);
4745
Reservation newReservation = reservationRepository.save(reservation);
48-
System.out.println("new Reservation" + newReservation.toString());
4946

5047
return toResponseDto(newReservation);
5148
}
@@ -63,18 +60,10 @@ private ReservationResponseDto toResponseDto(Reservation reservation) {
6360
);
6461
}
6562

66-
// private void validateTimeFormat (String time) {
67-
// try {
68-
// LocalTime.parse(time);
69-
// } catch (DateTimeException e){
70-
// throw new IllegalArgumentException("Invalid time format.");
71-
// }
72-
// }
73-
7463
private Long parseTimeId(String time) { // String -> long
7564
try {
7665
return Long.parseLong(time);
77-
} catch (NumberFormatException e) {
66+
} catch (DateTimeException e) {
7867
throw new IllegalArgumentException("Invalid time id format: " + time);
7968
}
8069
}

src/main/java/roomescape/service/TimeService.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
import java.time.LocalTime;
1010
import java.util.List;
11-
import java.util.stream.Collectors;
1211

1312
@Service
1413
public class TimeService {
@@ -24,15 +23,15 @@ public List<TimeResponseDto> findAllTimes() {
2423
.stream()
2524
.map(time -> new TimeResponseDto(
2625
time.getId(),
27-
time.getTimeASLocalTime()))
28-
.collect(Collectors.toList());
26+
time.getTimeAsLocalTime()))
27+
.toList();
2928
}
3029

3130
public TimeResponseDto createTime(TimeRequestDto requestDto) {
3231
Time time = new Time(requestDto.getTime());
3332
Time newTime = timeRespository.save(time);
3433

35-
return toResponseDTO(newTime.getId(), newTime.getTimeASLocalTime());
34+
return toResponseDTO(newTime.getId(), newTime.getTimeAsLocalTime());
3635
}
3736

3837
private TimeResponseDto toResponseDTO(Long id, LocalTime time) {

src/main/resources/static/js/new-reservation.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,13 @@ function renderReservations(data) {
5757
}
5858

5959
function insertReservationRow(row, reservation) {
60-
['id', 'name', 'date'].forEach((field, index) => {
60+
['id', 'name', 'date', 'time'].forEach((field, index) => {
6161
row.insertCell(index).textContent = reservation[field];
6262
});
6363

64-
row.insertCell(3).textContent = reservation.time.time;
64+
row.insertCell(4).textContent = reservation.time.time;
6565

66-
const actionCell = row.insertCell(4);
66+
const actionCell = row.insertCell(5);
6767
actionCell.appendChild(createActionButton('삭제', 'btn-danger', deleteRow));
6868
}
6969

0 commit comments

Comments
 (0)