Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit dabd836

Browse files
author
Ivan Franchin
committed
Convert some DTOs to record; remove mappers to simplify the project
1 parent 19b844d commit dabd836

File tree

10 files changed

+49
-138
lines changed

10 files changed

+49
-138
lines changed

‎order-api/src/main/java/com/ivanfranchin/orderapi/mapper/OrderMapper.java‎

Lines changed: 0 additions & 12 deletions
This file was deleted.

‎order-api/src/main/java/com/ivanfranchin/orderapi/mapper/OrderMapperImpl.java‎

Lines changed: 0 additions & 27 deletions
This file was deleted.

‎order-api/src/main/java/com/ivanfranchin/orderapi/mapper/UserMapper.java‎

Lines changed: 0 additions & 9 deletions
This file was deleted.

‎order-api/src/main/java/com/ivanfranchin/orderapi/mapper/UserMapperImpl.java‎

Lines changed: 0 additions & 28 deletions
This file was deleted.

‎order-api/src/main/java/com/ivanfranchin/orderapi/rest/AuthController.java‎

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import com.ivanfranchin.orderapi.rest.dto.AuthResponse;
66
import com.ivanfranchin.orderapi.rest.dto.LoginRequest;
77
import com.ivanfranchin.orderapi.rest.dto.SignUpRequest;
8-
import com.ivanfranchin.orderapi.security.TokenProvider;
98
import com.ivanfranchin.orderapi.security.SecurityConfig;
9+
import com.ivanfranchin.orderapi.security.TokenProvider;
1010
import com.ivanfranchin.orderapi.service.UserService;
1111
import jakarta.validation.Valid;
1212
import lombok.RequiredArgsConstructor;
@@ -33,23 +33,23 @@ public class AuthController {
3333

3434
@PostMapping("/authenticate")
3535
public AuthResponse login(@Valid @RequestBody LoginRequest loginRequest) {
36-
String token = authenticateAndGetToken(loginRequest.getUsername(), loginRequest.getPassword());
36+
String token = authenticateAndGetToken(loginRequest.username(), loginRequest.password());
3737
return new AuthResponse(token);
3838
}
3939

4040
@ResponseStatus(HttpStatus.CREATED)
4141
@PostMapping("/signup")
4242
public AuthResponse signUp(@Valid @RequestBody SignUpRequest signUpRequest) {
43-
if (userService.hasUserWithUsername(signUpRequest.getUsername())) {
44-
throw new DuplicatedUserInfoException(String.format("Username %s already been used", signUpRequest.getUsername()));
43+
if (userService.hasUserWithUsername(signUpRequest.username())) {
44+
throw new DuplicatedUserInfoException(String.format("Username %s already been used", signUpRequest.username()));
4545
}
46-
if (userService.hasUserWithEmail(signUpRequest.getEmail())) {
47-
throw new DuplicatedUserInfoException(String.format("Email %s already been used", signUpRequest.getEmail()));
46+
if (userService.hasUserWithEmail(signUpRequest.email())) {
47+
throw new DuplicatedUserInfoException(String.format("Email %s already been used", signUpRequest.email()));
4848
}
4949

5050
userService.saveUser(mapSignUpRequestToUser(signUpRequest));
5151

52-
String token = authenticateAndGetToken(signUpRequest.getUsername(), signUpRequest.getPassword());
52+
String token = authenticateAndGetToken(signUpRequest.username(), signUpRequest.password());
5353
return new AuthResponse(token);
5454
}
5555

@@ -60,10 +60,10 @@ private String authenticateAndGetToken(String username, String password) {
6060

6161
private User mapSignUpRequestToUser(SignUpRequest signUpRequest) {
6262
User user = new User();
63-
user.setUsername(signUpRequest.getUsername());
64-
user.setPassword(passwordEncoder.encode(signUpRequest.getPassword()));
65-
user.setName(signUpRequest.getName());
66-
user.setEmail(signUpRequest.getEmail());
63+
user.setUsername(signUpRequest.username());
64+
user.setPassword(passwordEncoder.encode(signUpRequest.password()));
65+
user.setName(signUpRequest.name());
66+
user.setEmail(signUpRequest.email());
6767
user.setRole(SecurityConfig.USER);
6868
return user;
6969
}

‎order-api/src/main/java/com/ivanfranchin/orderapi/rest/OrderController.java‎

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.ivanfranchin.orderapi.rest;
22

3-
import com.ivanfranchin.orderapi.mapper.OrderMapper;
43
import com.ivanfranchin.orderapi.model.Order;
54
import com.ivanfranchin.orderapi.model.User;
65
import com.ivanfranchin.orderapi.rest.dto.CreateOrderRequest;
@@ -37,14 +36,13 @@ public class OrderController {
3736

3837
private final UserService userService;
3938
private final OrderService orderService;
40-
private final OrderMapper orderMapper;
4139

4240
@Operation(security = {@SecurityRequirement(name = BEARER_KEY_SECURITY_SCHEME)})
4341
@GetMapping
4442
public List<OrderDto> getOrders(@RequestParam(value = "text", required = false) String text) {
4543
List<Order> orders = (text == null) ? orderService.getOrders() : orderService.getOrdersContainingText(text);
4644
return orders.stream()
47-
.map(orderMapper::toOrderDto)
45+
.map(this::toOrderDto)
4846
.collect(Collectors.toList());
4947
}
5048

@@ -54,17 +52,26 @@ public List<OrderDto> getOrders(@RequestParam(value = "text", required = false)
5452
public OrderDto createOrder(@AuthenticationPrincipal CustomUserDetails currentUser,
5553
@Valid @RequestBody CreateOrderRequest createOrderRequest) {
5654
User user = userService.validateAndGetUserByUsername(currentUser.getUsername());
57-
Order order = orderMapper.toOrder(createOrderRequest);
55+
Order order = toOrder(createOrderRequest);
5856
order.setId(UUID.randomUUID().toString());
5957
order.setUser(user);
60-
return orderMapper.toOrderDto(orderService.saveOrder(order));
58+
return toOrderDto(orderService.saveOrder(order));
6159
}
6260

6361
@Operation(security = {@SecurityRequirement(name = BEARER_KEY_SECURITY_SCHEME)})
6462
@DeleteMapping("/{id}")
6563
public OrderDto deleteOrders(@PathVariable UUID id) {
6664
Order order = orderService.validateAndGetOrder(id.toString());
6765
orderService.deleteOrder(order);
68-
return orderMapper.toOrderDto(order);
66+
return toOrderDto(order);
67+
}
68+
69+
private Order toOrder(CreateOrderRequest createOrderRequest) {
70+
return new Order(createOrderRequest.description());
71+
}
72+
73+
private OrderDto toOrderDto(Order order) {
74+
OrderDto.UserDto userDto = new OrderDto.UserDto(order.getUser().getUsername());
75+
return new OrderDto(order.getId(), order.getDescription(), userDto, order.getCreatedAt());
6976
}
7077
}

‎order-api/src/main/java/com/ivanfranchin/orderapi/rest/UserController.java‎

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package com.ivanfranchin.orderapi.rest;
22

3-
import com.ivanfranchin.orderapi.mapper.UserMapper;
4-
import com.ivanfranchin.orderapi.security.CustomUserDetails;
5-
import com.ivanfranchin.orderapi.service.UserService;
3+
import com.ivanfranchin.orderapi.model.Order;
64
import com.ivanfranchin.orderapi.model.User;
75
import com.ivanfranchin.orderapi.rest.dto.UserDto;
6+
import com.ivanfranchin.orderapi.security.CustomUserDetails;
7+
import com.ivanfranchin.orderapi.service.UserService;
88
import io.swagger.v3.oas.annotations.Operation;
99
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
1010
import lombok.RequiredArgsConstructor;
@@ -26,33 +26,41 @@
2626
public class UserController {
2727

2828
private final UserService userService;
29-
private final UserMapper userMapper;
3029

3130
@Operation(security = {@SecurityRequirement(name = BEARER_KEY_SECURITY_SCHEME)})
3231
@GetMapping("/me")
3332
public UserDto getCurrentUser(@AuthenticationPrincipal CustomUserDetails currentUser) {
34-
return userMapper.toUserDto(userService.validateAndGetUserByUsername(currentUser.getUsername()));
33+
return toUserDto(userService.validateAndGetUserByUsername(currentUser.getUsername()));
3534
}
3635

3736
@Operation(security = {@SecurityRequirement(name = BEARER_KEY_SECURITY_SCHEME)})
3837
@GetMapping
3938
public List<UserDto> getUsers() {
4039
return userService.getUsers().stream()
41-
.map(userMapper::toUserDto)
40+
.map(this::toUserDto)
4241
.collect(Collectors.toList());
4342
}
4443

4544
@Operation(security = {@SecurityRequirement(name = BEARER_KEY_SECURITY_SCHEME)})
4645
@GetMapping("/{username}")
4746
public UserDto getUser(@PathVariable String username) {
48-
return userMapper.toUserDto(userService.validateAndGetUserByUsername(username));
47+
return toUserDto(userService.validateAndGetUserByUsername(username));
4948
}
5049

5150
@Operation(security = {@SecurityRequirement(name = BEARER_KEY_SECURITY_SCHEME)})
5251
@DeleteMapping("/{username}")
5352
public UserDto deleteUser(@PathVariable String username) {
5453
User user = userService.validateAndGetUserByUsername(username);
5554
userService.deleteUser(user);
56-
return userMapper.toUserDto(user);
55+
return toUserDto(user);
56+
}
57+
58+
private UserDto toUserDto(User user) {
59+
List<UserDto.OrderDto> orders = user.getOrders().stream().map(this::toUserDtoOrderDto).toList();
60+
return new UserDto(user.getId(), user.getUsername(), user.getName(), user.getEmail(), user.getRole(), orders);
61+
}
62+
63+
private UserDto.OrderDto toUserDtoOrderDto(Order order) {
64+
return new UserDto.OrderDto(order.getId(), order.getDescription(), order.getCreatedAt());
5765
}
5866
}

‎order-api/src/main/java/com/ivanfranchin/orderapi/rest/dto/CreateOrderRequest.java‎

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,6 @@
22

33
import io.swagger.v3.oas.annotations.media.Schema;
44
import jakarta.validation.constraints.NotBlank;
5-
import lombok.Data;
65

7-
@Data
8-
public class CreateOrderRequest {
9-
10-
@Schema(example = "Buy two iPhones")
11-
@NotBlank
12-
private String description;
6+
public record CreateOrderRequest(@Schema(example = "Buy two iPhones") @NotBlank String description) {
137
}

‎order-api/src/main/java/com/ivanfranchin/orderapi/rest/dto/LoginRequest.java‎

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,8 @@
22

33
import io.swagger.v3.oas.annotations.media.Schema;
44
import jakarta.validation.constraints.NotBlank;
5-
import lombok.Data;
65

7-
@Data
8-
public class LoginRequest {
9-
10-
@Schema(example = "user")
11-
@NotBlank
12-
private String username;
13-
14-
@Schema(example = "user")
15-
@NotBlank
16-
private String password;
6+
public record LoginRequest(
7+
@Schema(example = "user") @NotBlank String username,
8+
@Schema(example = "user") @NotBlank String password) {
179
}

‎order-api/src/main/java/com/ivanfranchin/orderapi/rest/dto/SignUpRequest.java‎

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,10 @@
33
import io.swagger.v3.oas.annotations.media.Schema;
44
import jakarta.validation.constraints.Email;
55
import jakarta.validation.constraints.NotBlank;
6-
import lombok.Data;
76

8-
@Data
9-
public class SignUpRequest {
10-
11-
@Schema(example = "user3")
12-
@NotBlank
13-
private String username;
14-
15-
@Schema(example = "user3")
16-
@NotBlank
17-
private String password;
18-
19-
@Schema(example = "User3")
20-
@NotBlank
21-
private String name;
22-
23-
@Schema(example = "user3@mycompany.com")
24-
@Email
25-
private String email;
7+
public record SignUpRequest(
8+
@Schema(example = "user3") @NotBlank String username,
9+
@Schema(example = "user3") @NotBlank String password,
10+
@Schema(example = "User3") @NotBlank String name,
11+
@Schema(example = "user3@mycompany.com") @Email String email) {
2612
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /