Skip to content

Commit 71c5ce5

Browse files
committed
update User-related file
1 parent 6b0a2cf commit 71c5ce5

7 files changed

Lines changed: 47 additions & 14 deletions

File tree

src/main/java/demo/codeexample/config/DataInitializer.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package demo.codeexample.config;
22

3-
import demo.codeexample.user.CreateUserRequestDTO;
3+
import demo.codeexample.user.CreateUserDto;
4+
import demo.codeexample.user.CreateUserDto;
45
import demo.codeexample.shared.Role;
56
import demo.codeexample.user.UserLookup;
67
import org.springframework.boot.CommandLineRunner;
@@ -24,7 +25,7 @@ public void run(String... arg) {
2425
return; // admin already exists — do nothing
2526
}
2627

27-
CreateUserRequestDTO adminRequest = new CreateUserRequestDTO();
28+
CreateUserDto adminRequest = new CreateUserDto();
2829
adminRequest.setFirstName("Admin");
2930
adminRequest.setLastName("System");
3031
adminRequest.setEmail("admin@filmstudio.com");

src/main/java/demo/codeexample/project/application/out/UserPort.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ public interface UserPort {
1515

1616
boolean validateEmployees(Set<Long> employeesId);
1717

18-
List<UserInfo> findAll();
18+
// List<UserInfo> findAll();
1919

20-
// List<UserDto> findAll();
20+
List<UserDto> findAll();
2121

2222
record UserInfo(Long id, String firstname, String lastname, Role role){}
2323
}

src/main/java/demo/codeexample/project/infrastructure/adapters/out/external/CustomerAdapter.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,19 @@ public List<UserInfo> findByRole(Role role) {
3434
.toList();
3535
}
3636

37+
// @Override
38+
// public boolean validateEmployees(Set<Long> employeesId) {
39+
// return userLookup.validateUniqueRoles(employeesId);
40+
// }
41+
3742
@Override
3843
public boolean validateEmployees(Set<Long> employeesId) {
39-
return userLookup.validateUniqueRoles(employeesId);
44+
try {
45+
userLookup.validateUniqueRoles(employeesId);
46+
return true; // no exception = all roles valid ✅
47+
} catch (Exception e) {
48+
return false; // TeamValidationException = invalid ✅
49+
}
4050
}
4151

4252

src/main/java/demo/codeexample/user/UserLookup.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public interface UserLookup {
3030
// WRITE OPERATIONS
3131
// ─────────────────────────────────────────
3232

33-
UserDto createUser(CreateUserRequestDTO request);
33+
UserDto createUser(CreateUserDto request);
3434
UserDto updateRole(Long id, Role newRole);
3535
void deactivateUser(Long id);
3636

src/main/java/demo/codeexample/user/application/UserService.java

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package demo.codeexample.user.application;
22

33
import demo.codeexample.exceptions.EmailAlreadyExistsException;
4+
import demo.codeexample.exceptions.TeamValidationException;
45
import demo.codeexample.exceptions.UserNotFoundException;
56
import demo.codeexample.shared.Role;
67
import demo.codeexample.user.*;
@@ -70,16 +71,30 @@ public Optional<UserDto> findByFullName(String firstname, String lastName) {
7071
* @return true if each user has unique role
7172
*/
7273

74+
// @Override
75+
// public void validateUniqueRoles(Set<Long> employeesId) {
76+
// List<Role> foundRoles = employeesId.stream()
77+
// .map(id -> findById(id).orElseThrow(() -> new UserNotFoundException(id)))
78+
// .map(UserDto::getRole)
79+
// .toList();
80+
//
81+
// List<Role> requiredRoles = List.of(Role.PRODUCER, Role.DIRECTOR, Role.EDITOR, Role.RECRUITER);
82+
// if(!foundRoles.containsAll(requiredRoles))
83+
// throw new TeamValidationException();
84+
// }
85+
7386
@Override
74-
public void validateUniqueRoles(Set<Long> employeesId) {
87+
public boolean validateUniqueRoles(Set<Long> employeesId) {
7588
List<Role> foundRoles = employeesId.stream()
76-
.map(id -> findById(id).orElseThrow(() -> new UserNotFoundException(id)))
89+
.map(id -> findById(id)
90+
.orElseThrow(() -> new UserNotFoundException(id)))
7791
.map(UserDto::getRole)
7892
.toList();
7993

80-
List<Role> requiredRoles = List.of(Role.PRODUCER, Role.DIRECTOR, Role.EDITOR, Role.RECRUITER);
81-
if(!foundRoles.containsAll(requiredRoles))
82-
throw new TeamValidationException();
94+
List<Role> requiredRoles = List.of(
95+
Role.PRODUCER, Role.DIRECTOR, Role.EDITOR, Role.RECRUITER
96+
);
97+
return foundRoles.containsAll(requiredRoles); // ← return boolean instead of throw
8398
}
8499

85100
@Override
@@ -94,7 +109,7 @@ public boolean validateUserRole(Long id, Role role) {
94109
// ─────────────────────────────────────────
95110

96111
@Override
97-
public UserDto createUser(CreateUserRequestDTO request) {
112+
public UserDto createUser(CreateUserDto request) {
98113

99114
// Check email is not already taken
100115
if (repository.existsByEmail(request.getEmail())) {

src/main/java/demo/codeexample/user/web/UserController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package demo.codeexample.user.web;
22

33
import demo.codeexample.exceptions.UserNotFoundException;
4-
import demo.codeexample.user.CreateUserRequestDTO;
4+
import demo.codeexample.user.CreateUserDto;
55
import demo.codeexample.user.UserDto;
66
import demo.codeexample.user.application.UserService;
77
import demo.codeexample.shared.Role;
@@ -26,7 +26,7 @@ public UserController(UserService userService) {
2626
@PostMapping
2727
@PreAuthorize("hasRole('ADMIN')")
2828
public ResponseEntity<UserDto> createUser(
29-
@Valid @RequestBody CreateUserRequestDTO request) {
29+
@Valid @RequestBody CreateUserDto request) {
3030
UserDto created = userService.createUser(request);
3131
return ResponseEntity.status(HttpStatus.CREATED).body(created);
3232
}

src/main/resources/application.properties

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,10 @@ app.security.enabled=false
4949

5050
# Production default ? always secure
5151
cookie.secure=true
52+
53+
# application-local.properties ? add these:
54+
S3_ACCESS_KEY=dummy-key-for-local
55+
S3_SECRET_KEY=dummy-secret-for-local
56+
S3_BUCKET_NAME=dummy-bucket
57+
S3_REGION=eu-north-1
58+
S3_ENDPOINT=http://localhost:9000

0 commit comments

Comments
 (0)