Skip to content

Commit 0d9649b

Browse files
authored
Merge pull request #43 from Halbes-Byte/feature/modules
Change dataflow to ensure consistency between payloads
2 parents c7dace7 + 40031f8 commit 0d9649b

File tree

7 files changed

+31
-10
lines changed

7 files changed

+31
-10
lines changed

server/src/main/java/com/studybuddies/server/services/user/UserService.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,9 @@ public boolean existsByUUID(UUID uuid) {
8686
}
8787

8888
@Transactional
89-
public void updateModules(ModuleUpdateRequest moduleUpdateRequest, String uuid) {
90-
List<String> modules = moduleUpdateRequest.getName();
91-
92-
var foundModules = modules.stream()
89+
public void updateModules(List<ModuleUpdateRequest> moduleUpdateRequest, String uuid) {
90+
var foundModules = moduleUpdateRequest.stream()
91+
.map(ModuleUpdateRequest::getName)
9392
.filter(moduleValidationService::exists)
9493
.map(String::toUpperCase)
9594
.collect(Collectors.toCollection(ArrayList::new));

server/src/main/java/com/studybuddies/server/web/UserController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public ResponseEntity<?> delete(HttpServletRequest request,
4141
}
4242

4343
@PutMapping
44-
public ResponseEntity<?> put(HttpServletRequest request, @RequestBody ModuleUpdateRequest updateRequest) {
44+
public ResponseEntity<?> put(HttpServletRequest request, @RequestBody List<ModuleUpdateRequest> updateRequest) {
4545
String userUUID = request.getUserPrincipal().getName();
4646
userService.updateModules(updateRequest, userUUID);
4747
return new ResponseEntity<>(userUUID, HttpStatus.OK);
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package com.studybuddies.server.web.dto.module;
22

33
import com.studybuddies.server.web.dto.interfaces.Responses;
4+
import lombok.AllArgsConstructor;
45
import lombok.Getter;
56

67
@Getter
8+
@AllArgsConstructor
79
public class ModuleResponse implements Responses {
810
public String name;
911
}
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
package com.studybuddies.server.web.dto.user;
22

3-
import java.util.List;
43
import lombok.Getter;
54

65
@Getter
76
public class ModuleUpdateRequest {
8-
public List<String> name;
7+
public String name;
98
}

server/src/main/java/com/studybuddies/server/web/dto/user/UserResponse.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.studybuddies.server.web.dto.user;
22

33
import com.studybuddies.server.web.dto.interfaces.Responses;
4+
import com.studybuddies.server.web.dto.module.ModuleResponse;
45
import java.util.List;
56
import lombok.Getter;
67
import lombok.RequiredArgsConstructor;
@@ -13,5 +14,5 @@ public class UserResponse implements Responses {
1314

1415
String uuid;
1516
String username;
16-
List<String> modules;
17+
List<ModuleResponse> modules;
1718
}

server/src/main/java/com/studybuddies/server/web/mapper/UserMapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
import org.mapstruct.Mapper;
77
import org.mapstruct.Mapping;
88

9-
@Mapper(componentModel = "spring")
9+
@Mapper(componentModel = "spring", uses = {UserMapperUtils.class})
1010
public interface UserMapper {
1111

1212
@Mapping(source = "username", target = "username")
1313
UserEntity of(UserAccountSetupRequest userAccountSetupRequest);
1414

1515
@Mapping(source = "uuid", target = "uuid")
1616
@Mapping(source = "username", target = "username")
17-
@Mapping(source = "modules", target = "modules")
17+
@Mapping(source = "modules", target = "modules", qualifiedByName = "stringListToRespList")
1818
UserResponse of(UserEntity userEntity);
1919
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.studybuddies.server.web.mapper;
2+
3+
import com.studybuddies.server.web.dto.module.ModuleResponse;
4+
import java.util.ArrayList;
5+
import java.util.List;
6+
import org.mapstruct.Named;
7+
import org.springframework.stereotype.Component;
8+
9+
@Component
10+
public class UserMapperUtils {
11+
12+
@Named("stringListToRespList")
13+
public List<ModuleResponse> stringListToRespList(List<String> stringList) {
14+
List<ModuleResponse> respList = new ArrayList<>();
15+
for (String s : stringList) {
16+
respList.add(new ModuleResponse(s));
17+
}
18+
return respList;
19+
}
20+
}

0 commit comments

Comments
 (0)