Skip to content

Commit 366626c

Browse files
committed
endpoint getUserById
1 parent 7c18ed5 commit 366626c

8 files changed

Lines changed: 43 additions & 5 deletions

File tree

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package io.autoinvestor.application.RequestUserById;
2+
3+
import io.autoinvestor.application.UsersReadModel;
4+
import io.autoinvestor.ui.user.UserResponse;
5+
import lombok.RequiredArgsConstructor;
6+
import org.springframework.stereotype.Component;
7+
8+
@Component
9+
@RequiredArgsConstructor
10+
public class GetUserByIdCommandHandler {
11+
private final UsersReadModel readModel;
12+
13+
public UserResponse handle (GetUserByIdQuery query) {
14+
return readModel.getById(query.userId());
15+
}
16+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package io.autoinvestor.application.RequestUserById;
2+
3+
public record GetUserByIdQuery(String userId) {
4+
}

src/main/java/io/autoinvestor/application/UsersReadModel.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ public interface UsersReadModel {
88
void add(UserReadModelDocument document);
99

1010
UserResponse get(String email);
11+
UserResponse getById(String userId);
1112
}

src/main/java/io/autoinvestor/infrastructure/UserReadModelDocument.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
@Document(collection = "users")
77
public record UserReadModelDocument(
8-
@Id String userId,
8+
String userId,
99
String email,
1010
String firstName,
1111
String lastName,

src/main/java/io/autoinvestor/infrastructure/UserReadModelInMemory.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,9 @@ public UserResponse get(String email) {
2828
.map(UserResponseDocumentMapper::map)
2929
.orElse(null);
3030
}
31+
32+
@Override
33+
public UserResponse getById(String userId) {
34+
return null;
35+
}
3136
}

src/main/java/io/autoinvestor/infrastructure/UserReadModelMongo.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,14 @@ public UserResponse get(String email) {
3232
}
3333
return UserResponseDocumentMapper.map(document);
3434
}
35+
36+
@Override
37+
public UserResponse getById(String userId) {
38+
Query query = new Query(Criteria.where("userId").is(userId));
39+
UserReadModelDocument document = mongoTemplate.findOne(query, UserReadModelDocument.class, "users");
40+
if (document == null) {
41+
return null;
42+
}
43+
return UserResponseDocumentMapper.map(document);
44+
}
3545
}

src/main/java/io/autoinvestor/ui/user/UserController.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import io.autoinvestor.application.RegisterUserUseCase.RegisterUserCommand;
44
import io.autoinvestor.application.RegisterUserUseCase.RegisterUserCommandHandler;
5+
import io.autoinvestor.application.RequestUserById.GetUserByIdCommandHandler;
6+
import io.autoinvestor.application.RequestUserById.GetUserByIdQuery;
57
import io.autoinvestor.application.RequestUserUseCase.GetUserQuery;
68
import io.autoinvestor.application.RequestUserUseCase.GetUserQueryHandler;
79
import lombok.RequiredArgsConstructor;
@@ -17,6 +19,7 @@ public class UserController {
1719
private static final Integer DEFAULT_RISK_LEVEL = 1;
1820

1921
private final GetUserQueryHandler getUserCommandHandler;
22+
private final GetUserByIdCommandHandler getUserByIdCommandHandler;
2023
private final RegisterUserCommandHandler registerUserCommandHandler;
2124

2225
@GetMapping
@@ -25,8 +28,7 @@ public ResponseEntity<UserResponse> getUser(
2528
@RequestParam(value = "email", required = false) String email
2629
) {
2730
if (userId != null) {
28-
// TODO: return user by userId
29-
return ResponseEntity.ok(new UserResponse(userId, null, null, null, null));
31+
return ResponseEntity.ok(getUserByIdCommandHandler.handle(new GetUserByIdQuery(userId)));
3032
} if (email != null) {
3133
return ResponseEntity.ok(getUserCommandHandler.handle(new GetUserQuery(email)));
3234
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
spring.application.name=users
22
spring.cloud.gcp.pubsub.project-id=autoinvestor-tfm
3-
spring.data.mongodb.uri=${MONGODB_URI}
4-
spring.data.mongodb.database=${MONGODB_DB}
3+
spring.data.mongodb.uri=mongodb://localhost:27017
4+
spring.data.mongodb.database=mydatabase

0 commit comments

Comments
 (0)