Skip to content

Commit 2c0aa28

Browse files
authored
Merge pull request #6 from funnyDevGirl/fix-models
Fix models
2 parents be261e0 + 2365973 commit 2c0aa28

File tree

9 files changed

+36
-3
lines changed

9 files changed

+36
-3
lines changed

src/main/java/org/example/hexlet/model/Car.java

+3
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,16 @@
44
import lombok.Setter;
55
import lombok.ToString;
66

7+
import java.time.LocalDateTime;
8+
79
@Getter
810
@Setter
911
@ToString
1012
public final class Car {
1113
private Long id;
1214
private String make;
1315
private String model;
16+
private LocalDateTime createdAt;
1417

1518
public Car(String make, String model) {
1619
this.make = make;

src/main/java/org/example/hexlet/model/Course.java

+3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import lombok.Setter;
55
import lombok.ToString;
66

7+
import java.time.LocalDateTime;
8+
79
@Getter
810
@Setter
911
@ToString
@@ -13,6 +15,7 @@ public final class Course {
1315
@ToString.Include
1416
private String name;
1517
private String description;
18+
private LocalDateTime createdAt;
1619

1720
public Course(String name, String description) {
1821
this.name = name;

src/main/java/org/example/hexlet/model/Post.java

+3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import lombok.Setter;
55
import lombok.ToString;
66

7+
import java.time.LocalDateTime;
8+
79
@Getter
810
@Setter
911
@ToString
@@ -15,6 +17,7 @@ public final class Post {
1517
private String title;
1618

1719
private String body;
20+
private LocalDateTime createdAt;
1821

1922
public Post(String title, String body) {
2023
this.title = title;

src/main/java/org/example/hexlet/model/User.java

+3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import lombok.Setter;
55
import lombok.ToString;
66

7+
import java.time.LocalDateTime;
8+
79
@Getter
810
@Setter
911
@ToString
@@ -15,6 +17,7 @@ public final class User {
1517

1618
private String email;
1719
private String password;
20+
private LocalDateTime createdAt;
1821

1922
public User(String name, String email, String password) {
2023
this.name = name;

src/main/java/org/example/hexlet/repository/CarRepository.java

+14-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import java.sql.SQLException;
44
import java.sql.Statement;
5+
import java.sql.Timestamp;
6+
import java.time.LocalDateTime;
57
import java.util.ArrayList;
68
import java.util.List;
79
import java.util.Optional;
@@ -10,15 +12,20 @@
1012

1113
public class CarRepository extends BaseRepository {
1214
public static void save(Car car) throws SQLException {
13-
var sql = "INSERT INTO cars (make, model) VALUES (?, ?)";
15+
var sql = "INSERT INTO cars (make, model, created_at) VALUES (?, ?, ?)";
1416
try (var conn = dataSource.getConnection();
1517
var preparedStatement = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) {
1618
preparedStatement.setString(1, car.getMake());
1719
preparedStatement.setString(2, car.getModel());
20+
var createdAt = LocalDateTime.now();
21+
preparedStatement.setTimestamp(3, Timestamp.valueOf(createdAt));
22+
1823
preparedStatement.executeUpdate();
1924
var generatedKeys = preparedStatement.getGeneratedKeys();
2025
if (generatedKeys.next()) {
2126
car.setId(generatedKeys.getLong(1));
27+
car.setCreatedAt(createdAt);
28+
2229
} else {
2330
throw new SQLException("DB have not returned an id after saving an entity");
2431
}
@@ -34,8 +41,11 @@ public static Optional<Car> find(Long id) throws SQLException {
3441
if (resultSet.next()) {
3542
var make = resultSet.getString("make");
3643
var model = resultSet.getString("model");
44+
var createdAt = resultSet.getTimestamp("created_at").toLocalDateTime();
45+
3746
var car = new Car(make, model);
3847
car.setId(id);
48+
car.setCreatedAt(createdAt);
3949
return Optional.of(car);
4050
}
4151
return Optional.empty();
@@ -52,8 +62,11 @@ public static List<Car> getEntities() throws SQLException {
5262
var id = resultSet.getLong("id");
5363
var make = resultSet.getString("make");
5464
var model = resultSet.getString("model");
65+
var createdAt = resultSet.getTimestamp("created_at").toLocalDateTime();
66+
5567
var car = new Car(make, model);
5668
car.setId(id);
69+
car.setCreatedAt(createdAt);
5770
result.add(car);
5871
}
5972
return result;

src/main/java/org/example/hexlet/repository/CourseRepository.java

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.example.hexlet.repository;
22

3+
import java.time.LocalDateTime;
34
import java.util.ArrayList;
45
import java.util.List;
56
import java.util.Optional;
@@ -11,6 +12,7 @@ public class CourseRepository {
1112

1213
public static void save(Course course) {
1314
course.setId((long) entities.size() + 1);
15+
course.setCreatedAt(LocalDateTime.now());
1416
entities.add(course);
1517
}
1618

src/main/java/org/example/hexlet/repository/PostRepository.java

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.example.hexlet.repository;
22

3+
import java.time.LocalDateTime;
34
import java.util.ArrayList;
45
import java.util.List;
56
import java.util.Optional;
@@ -11,6 +12,7 @@ public class PostRepository {
1112

1213
public static void save(Post post) {
1314
post.setId((long) entities.size() + 1);
15+
post.setCreatedAt(LocalDateTime.now());
1416
entities.add(post);
1517
}
1618

src/main/java/org/example/hexlet/repository/UserRepository.java

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.example.hexlet.repository;
22

3+
import java.time.LocalDateTime;
34
import java.util.ArrayList;
45
import java.util.List;
56
import java.util.Optional;
@@ -11,6 +12,7 @@ public class UserRepository {
1112

1213
public static void save(User user) {
1314
user.setId((long) entities.size() + 1);
15+
user.setCreatedAt(LocalDateTime.now());
1416
entities.add(user);
1517
}
1618

src/main/resources/schema.sql

+4-2
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@ DROP TABLE IF EXISTS courses;
33
CREATE TABLE courses (
44
id INT PRIMARY KEY AUTO_INCREMENT,
55
name VARCHAR(255) NOT NULL,
6-
description TEXT
6+
description TEXT,
7+
created_at TIMESTAMP
78
);
89

910
DROP TABLE IF EXISTS cars;
1011

1112
CREATE TABLE cars (
1213
id INT PRIMARY KEY AUTO_INCREMENT,
1314
make VARCHAR(255) NOT NULL,
14-
model VARCHAR(255) NOT NULL
15+
model VARCHAR(255) NOT NULL,
16+
created_at TIMESTAMP
1517
);

0 commit comments

Comments
 (0)