Skip to content

Commit 631033d

Browse files
committed
refactor: update method controller
1 parent e4b0fba commit 631033d

File tree

2 files changed

+13
-19
lines changed

2 files changed

+13
-19
lines changed

src/main/java/com/thisaster/testtask/user/controller/UserController.java

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ public class UserController {
3535
public ResponseEntity<UserDTO> getUserInfo(@PathVariable Long id) {
3636
User user = userService.getUserById(id);
3737
UserDTO userDTO = userMapper.toDTO(user);
38-
userDTO.setSubscriptions(subscriptionMapper.toDTOSet(user.getSubscriptions()));
3938
return ResponseEntity.ok(userDTO);
4039
}
4140

@@ -47,16 +46,12 @@ public ResponseEntity<String> deleteUser(@PathVariable Long id) {
4746

4847
@PutMapping("/{id}")
4948
public ResponseEntity<UserDTO> updateUser(@PathVariable Long id, @RequestBody @Validated UserDTO userDTO) {
50-
User newUser = userMapper.toEntity(userDTO);
51-
newUser.setRole(roleService.getByRoleName(userDTO.getRole()));
52-
newUser.setRoleId(newUser.getRoleId());
53-
newUser.setSubscriptions(subscriptionMapper.toEntitySet(userDTO.getSubscriptions()));
49+
User user = userMapper.toEntity(userDTO);
50+
user.setRole(roleService.getByRoleName(userDTO.getRole()));
5451

55-
User modificationUser = userService.updateUser(id, newUser);
56-
UserDTO modificationUserDTO = userMapper.toDTO(modificationUser);
57-
modificationUserDTO.setSubscriptions(subscriptionMapper.toDTOSet(modificationUser.getSubscriptions()));
58-
modificationUserDTO.setRole(userDTO.getRole());
59-
return ResponseEntity.ok(modificationUserDTO);
52+
User updatedUser = userService.updateUser(id, user);
53+
UserDTO updatedDTO = userMapper.toDTO(updatedUser);
54+
return ResponseEntity.ok(updatedDTO);
6055
}
6156

6257
@PostMapping("/{id}/subscriptions")
Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
11
package com.thisaster.testtask.user.mapper;
22

3+
import com.thisaster.testtask.subscription.mapper.SubscriptionMapper;
34
import com.thisaster.testtask.user.dto.UserDTO;
45
import com.thisaster.testtask.user.entity.User;
56
import org.mapstruct.Mapper;
67
import org.mapstruct.Mapping;
78
import org.mapstruct.MappingConstants;
8-
import org.springframework.stereotype.Component;
99

10-
@Component
11-
@Mapper(componentModel = MappingConstants.ComponentModel.SPRING)
10+
@Mapper(componentModel = MappingConstants.ComponentModel.SPRING,
11+
uses = {SubscriptionMapper.class})
1212
public abstract class UserMapper {
13-
@Mapping(target = "role", ignore = true)
14-
@Mapping(target = "subscriptions", ignore = true)
13+
14+
@Mapping(target = "role", source = "role.name")
1515
public abstract UserDTO toDTO(User user);
1616

17-
@Mapping(target = "role", ignore = true)
18-
@Mapping(target = "roleId", ignore = true)
19-
@Mapping(target = "subscriptions", ignore = true)
17+
@Mapping(target = "role", ignore = true) // всё равно подставим вручную в контроллере
18+
@Mapping(target = "roleId", ignore = true) // подставим вручную
2019
public abstract User toEntity(UserDTO userDTO);
21-
}
20+
}

0 commit comments

Comments
 (0)