Skip to content

Commit d6605a0

Browse files
Fixed Map<Long, UrlCheck> type to display checks
1 parent 2b79ac1 commit d6605a0

File tree

5 files changed

+20
-8
lines changed

5 files changed

+20
-8
lines changed

app/src/main/java/hexlet/code/controller/UrlChecksController.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public static void check(Context ctx) throws SQLException {
4242
var urlCheck = new UrlCheck(statusCode, h1, title, description, createdAt);
4343
urlCheck.setUrlId(urlId);
4444
UrlCheckRepository.save(urlCheck);
45+
System.out.println("[DEBUG] Сохранили новую проверку для urlId=" + urlId);
4546
}
4647
ctx.redirect(NamedRoutes.urlPath(urlId));
4748
} catch (Exception e) {

app/src/main/java/hexlet/code/controller/UrlsController.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,7 @@ public static void index(Context ctx) throws SQLException {
7171
.map(Url::getId)
7272
.collect(Collectors.toList());
7373
Map<Long, UrlCheck> latestChecks = UrlCheckRepository.findLatestChecksByUrlIds(urlIds);
74-
Map<Url, UrlCheck> urlsWithLatestChecks = new HashMap<>();
75-
for (Url item : urls) {
76-
urlsWithLatestChecks.put(item, latestChecks.get(item.getId()));
77-
}
78-
page.setChecks(urlsWithLatestChecks);
74+
page.setChecks(latestChecks);
7975
page.setPageNumber(pageNumber);
8076
}
8177
page.setUrls(urls);
@@ -97,6 +93,7 @@ public static void show(Context ctx) throws SQLException {
9793
var url = UrlRepository.findById(id)
9894
.orElseThrow(() -> new NotFoundResponse("URL not found"));
9995
var checks = UrlCheckRepository.find(id);
96+
System.out.println("[DEBUG] checks.size() = " + checks.size());
10097

10198
var page = new UrlPage(url, checks);
10299
String message = ctx.consumeSessionAttribute("message");

app/src/main/java/hexlet/code/dto/urls/UrlsPage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
@Setter
1616
public class UrlsPage extends BasePage {
1717
private List<Url> urls;
18-
private Map<Url, UrlCheck> checks;
18+
private Map<Long, UrlCheck> checks;
1919
private int pageNumber;
2020
private List<Integer> pages;
2121
}

app/src/main/java/hexlet/code/repository/UrlCheckRepository.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@
1818
public class UrlCheckRepository extends BaseRepository {
1919

2020
public static void save(UrlCheck urlCheck) throws SQLException {
21+
System.out.println("[DEBUG] Сохраняем UrlCheck: urlId=" + urlCheck.getUrlId()
22+
+ ", status=" + urlCheck.getStatusCode()
23+
+ ", title=" + urlCheck.getTitle()
24+
+ ", h1=" + urlCheck.getH1());
25+
2126
var sql = "INSERT INTO url_checks (url_id, status_code, h1, title, description, created_at) "
2227
+ "VALUES (?, ?, ?, ?, ?, ?)";
2328
try (var conn = dataSource.getConnection();
@@ -30,19 +35,27 @@ public static void save(UrlCheck urlCheck) throws SQLException {
3035
preparedStatement.setString(3, urlCheck.getH1());
3136
preparedStatement.setString(4, urlCheck.getTitle());
3237
preparedStatement.setString(5, urlCheck.getDescription());
33-
preparedStatement.setTimestamp(6, Timestamp.valueOf(LocalDateTime.now()));
38+
preparedStatement.setTimestamp(6, Timestamp.valueOf(urlCheck.getCreatedAt()));
3439
preparedStatement.executeUpdate();
3540

41+
int updated = preparedStatement.executeUpdate();
42+
System.out.println("[DEBUG] executeUpdate вернул: " + updated);
43+
3644
var generatedKeys = preparedStatement.getGeneratedKeys();
3745
if (generatedKeys.next()) {
3846
urlCheck.setId(generatedKeys.getLong(1));
47+
System.out.println("[DEBUG] Сохранено с id=" + urlCheck.getId());
3948
} else {
4049
throw new SQLException("Не сформирован ID");
4150
}
51+
} catch (SQLException ex) {
52+
System.out.println("[DEBUG][ERROR] При сохранении проверки: " + ex.getMessage());
53+
throw ex;
4254
}
4355
}
4456

4557
public static List<UrlCheck> find(Long urlId) throws SQLException {
58+
System.out.println("[DEBUG] Запрашиваем проверки для urlId=" + urlId);
4659
var sql = "SELECT * FROM url_checks WHERE url_id = ?";
4760
try (var conn = dataSource.getConnection();
4861
var stmt = conn.prepareStatement(sql)) {
@@ -55,6 +68,7 @@ public static List<UrlCheck> find(Long urlId) throws SQLException {
5568
var urlCheck = mapRowToUrlCheck(resultSet);
5669
results.add(urlCheck);
5770
}
71+
System.out.println("[DEBUG] Найдено " + results.size() + " проверок");
5872
return results;
5973
}
6074
}

app/src/main/resources/templates/urls/index.jte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ content = @`
6060
<td>${item.getId()}</td>
6161
<td><a href="${NamedRoutes.urlPath(item.getId())}">${item.getName()}</a></td>
6262

63-
!{var latestCheck = page.getChecks().get(item);}
63+
!{var latestCheck = page.getChecks().get(item.getId());}
6464
@if(latestCheck != null)
6565
<td>${latestCheck.getCreatedAt().format(DateTimeFormatter.ofPattern("dd/MM/yy HH:mm"))}</td>
6666
<td>${latestCheck.getStatusCode()}</td>

0 commit comments

Comments
 (0)