Skip to content

Commit 80cb5c1

Browse files
committed
refactor: refactor parts of the code, improving its organization
1 parent c66cdb2 commit 80cb5c1

8 files changed

Lines changed: 121 additions & 114 deletions

File tree

iStudy-services/auth-ms/src/main/java/com/io/github/abeatrizsc/auth_ms/controllers/AuthController.java

Lines changed: 8 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -5,63 +5,40 @@
55
import com.io.github.abeatrizsc.auth_ms.exceptions.InvalidPasswordException;
66
import com.io.github.abeatrizsc.auth_ms.exceptions.UserNotFoundException;
77
import com.io.github.abeatrizsc.auth_ms.infra.security.TokenService;
8+
import com.io.github.abeatrizsc.auth_ms.services.AuthService;
89
import com.io.github.abeatrizsc.auth_ms.services.UserService;
910
import jakarta.servlet.http.HttpServletRequest;
1011
import jakarta.validation.Valid;
1112
import lombok.RequiredArgsConstructor;
1213
import org.springframework.http.HttpStatus;
1314
import org.springframework.http.ResponseEntity;
14-
import org.springframework.security.crypto.password.PasswordEncoder;
1515
import org.springframework.web.bind.annotation.GetMapping;
1616
import org.springframework.web.bind.annotation.PostMapping;
1717
import org.springframework.web.bind.annotation.RequestBody;
1818
import org.springframework.web.bind.annotation.RequestMapping;
1919
import org.springframework.web.bind.annotation.RestController;
2020

21-
import java.util.Optional;
22-
2321
@RestController
2422
@RequestMapping("/auth")
2523
@RequiredArgsConstructor
2624
public class AuthController {
27-
private final UserService userService;
28-
private final PasswordEncoder passwordEncoder;
29-
private final TokenService tokenService;
25+
private final AuthService authService;
3026

3127
@PostMapping("/login")
3228
public ResponseEntity<LoginResponseDto> login(@Valid @RequestBody LoginRequestDto body){
33-
User user = userService.findUserByEmail(body.getEmail()).orElseThrow(() -> new UserNotFoundException());
34-
35-
if(!passwordEncoder.matches(body.getPassword(), user.getPassword())) {
36-
throw new InvalidPasswordException();
37-
}
38-
39-
String token = tokenService.generateToken(user);
40-
return ResponseEntity.ok(new LoginResponseDto(token));
29+
LoginResponseDto loginResponseDto = authService.login(body);
30+
return ResponseEntity.ok(loginResponseDto);
4131
}
4232

43-
4433
@PostMapping("/register")
4534
public ResponseEntity register(@Valid @RequestBody RegisterRequestDto body) {
46-
Optional<User> user = userService.findUserByEmail(body.getEmail());
35+
RegisterResponseDto registerResponseDto = authService.register(body);
4736

48-
if(user.isEmpty()) {
49-
User newUser = new User();
50-
newUser.setPassword(passwordEncoder.encode(body.getPassword()));
51-
newUser.setEmail(body.getEmail());
52-
newUser.setName(body.getName());
53-
userService.create(newUser);
54-
55-
return ResponseEntity.status(HttpStatus.CREATED).body(new RegisterResponseDto("User created successfully!"));
56-
}
57-
58-
throw new EmailAlreadyInUseException();
37+
return ResponseEntity.status(HttpStatus.CREATED).body(registerResponseDto);
5938
}
6039

6140
@GetMapping("/authenticated-user")
62-
public String getAuthenticatedUser(HttpServletRequest request) {
63-
var token = tokenService.recoverToken(request);
64-
65-
return tokenService.validateToken(token);
41+
public String getAuthenticatedUserId(HttpServletRequest request) {
42+
return authService.getAuthenticatedUserId(request);
6643
}
6744
}

iStudy-services/auth-ms/src/main/java/com/io/github/abeatrizsc/auth_ms/infra/security/SecurityConfig.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
import org.springframework.context.annotation.Bean;
55
import org.springframework.context.annotation.Configuration;
66
import org.springframework.http.HttpMethod;
7-
import org.springframework.security.authentication.AuthenticationManager;
8-
import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration;
97
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
108
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
119
import org.springframework.security.config.http.SessionCreationPolicy;
@@ -17,10 +15,6 @@
1715
@Configuration
1816
@EnableWebSecurity
1917
public class SecurityConfig {
20-
21-
@Autowired
22-
private CustomUserDetailsService userDetailsService;
23-
2418
@Autowired
2519
SecurityFilter securityFilter;
2620

@@ -42,9 +36,4 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti
4236
public PasswordEncoder passwordEncoder() {
4337
return new BCryptPasswordEncoder();
4438
}
45-
46-
@Bean
47-
public AuthenticationManager authenticationManager(AuthenticationConfiguration authenticationConfiguration) throws Exception {
48-
return authenticationConfiguration.getAuthenticationManager();
49-
}
5039
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package com.io.github.abeatrizsc.auth_ms.services;
2+
3+
import com.io.github.abeatrizsc.auth_ms.domain.User;
4+
import com.io.github.abeatrizsc.auth_ms.dto.*;
5+
import com.io.github.abeatrizsc.auth_ms.exceptions.InvalidPasswordException;
6+
import com.io.github.abeatrizsc.auth_ms.exceptions.UserNotFoundException;
7+
import com.io.github.abeatrizsc.auth_ms.infra.security.TokenService;
8+
import jakarta.servlet.http.HttpServletRequest;
9+
import jakarta.validation.Valid;
10+
import lombok.AllArgsConstructor;
11+
import org.springframework.http.HttpStatus;
12+
import org.springframework.http.ResponseEntity;
13+
import org.springframework.security.crypto.password.PasswordEncoder;
14+
import org.springframework.stereotype.Service;
15+
import org.springframework.web.bind.annotation.RequestBody;
16+
17+
import java.util.Optional;
18+
19+
@Service
20+
@AllArgsConstructor
21+
public class AuthService {
22+
private final UserService userService;
23+
private final PasswordEncoder passwordEncoder;
24+
private final TokenService tokenService;
25+
26+
public LoginResponseDto login(LoginRequestDto body){
27+
User user = userService.findUserByEmail(body.getEmail()).orElseThrow(UserNotFoundException::new);
28+
29+
if(!passwordEncoder.matches(body.getPassword(), user.getPassword())) {
30+
throw new InvalidPasswordException();
31+
}
32+
33+
return new LoginResponseDto(tokenService.generateToken(user));
34+
}
35+
36+
public RegisterResponseDto register(RegisterRequestDto body) {
37+
Optional<User> user = userService.findUserByEmail(body.getEmail());
38+
39+
if(user.isEmpty()) {
40+
User newUser = new User();
41+
newUser.setPassword(passwordEncoder.encode(body.getPassword()));
42+
newUser.setEmail(body.getEmail());
43+
newUser.setName(body.getName());
44+
userService.create(newUser);
45+
46+
return new RegisterResponseDto("User created successfully!");
47+
}
48+
49+
throw new EmailAlreadyInUseException();
50+
}
51+
52+
public String getAuthenticatedUserId(HttpServletRequest request) {
53+
var token = tokenService.recoverToken(request);
54+
55+
return tokenService.validateToken(token);
56+
}
57+
}

iStudy-services/auth-ms/src/main/java/com/io/github/abeatrizsc/auth_ms/services/UserService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import com.io.github.abeatrizsc.auth_ms.repositories.UserRepository;
1313
import lombok.AllArgsConstructor;
1414
import org.springframework.stereotype.Service;
15+
import org.springframework.transaction.annotation.Transactional;
1516

1617
import java.util.Optional;
1718

@@ -30,10 +31,12 @@ public Optional<User> findUserByEmail(String email) {
3031
return repository.findByEmail(email);
3132
}
3233

34+
@Transactional
3335
public void create(User newUser) {
3436
repository.save(newUser);
3537
}
3638

39+
@Transactional
3740
public void updateAccount(String userId, UpdateAccountDto dto) {
3841
User user = findUserById(userId);
3942

@@ -66,6 +69,7 @@ public Boolean areDifferentPasswords(String newPassword, String userPassword){
6669
return !securityConfig.passwordEncoder().matches(newPassword, userPassword);
6770
}
6871

72+
@Transactional
6973
public void deleteAccount(String id, DeleteAccountDto dto) {
7074
User user = findUserById(id);
7175

iStudy-services/discipline-ms/src/main/java/io/github/abeatrizsc/discipline_ms/services/DisciplineService.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@
2626
@Service
2727
@AllArgsConstructor
2828
public class DisciplineService {
29-
private DisciplineRepository repository;
30-
private TopicRepository topicRepository;
31-
private AuthRequestUtils authRequestUtils;
32-
private DisciplineEventPublisher disciplineEventPublisher;
29+
private final DisciplineRepository repository;
30+
private final TopicRepository topicRepository;
31+
private final AuthRequestUtils authRequestUtils;
32+
private final DisciplineEventPublisher disciplineEventPublisher;
3333

3434
@Transactional
3535
public List<Discipline> save(DisciplineRequestDto requestDto) throws ConflictException {
@@ -49,8 +49,8 @@ public List<Discipline> save(DisciplineRequestDto requestDto) throws ConflictExc
4949
}
5050

5151
@Transactional
52-
public List<Discipline> update(String id, DisciplineRequestDto requestDto) throws ConflictException {
53-
Discipline discipline = findById(id);
52+
public List<Discipline> update(String disciplineId, DisciplineRequestDto requestDto) throws ConflictException {
53+
Discipline discipline = findById(disciplineId);
5454

5555
if (disciplineNameAlreadyExists(discipline.getId(), requestDto.getName(), discipline.getCreatedBy())) {
5656
throw new ConflictException("subject");
@@ -61,6 +61,7 @@ public List<Discipline> update(String id, DisciplineRequestDto requestDto) throw
6161

6262
discipline.setName(requestDto.getName());
6363
discipline.setCategory(requestDto.getCategory());
64+
6465
if (!discipline.getTotalTime().equals(LocalTime.MIDNIGHT) && discipline.getTotalTime() == discipline.getTimeCompleted()) {
6566
discipline.setIsCompleted(true);
6667
} else {

iStudy-services/discipline-ms/src/main/java/io/github/abeatrizsc/discipline_ms/services/TopicService.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@
1818
@Service
1919
@AllArgsConstructor
2020
public class TopicService {
21-
private TopicRepository repository;
22-
private DisciplineService disciplineService;
23-
private TopicMapper topicMapper;
24-
private AuthRequestUtils authRequestUtils;
25-
private DisciplineEventPublisher disciplineEventPublisher;
21+
private final TopicRepository repository;
22+
private final DisciplineService disciplineService;
23+
private final TopicMapper topicMapper;
24+
private final AuthRequestUtils authRequestUtils;
25+
private final DisciplineEventPublisher disciplineEventPublisher;
2626

2727
@Transactional
2828
public List<TopicResponseDto> save(TopicRequestDto requestDto) throws ConflictException {

iStudy-services/study-tracker-ms/src/main/java/com/io/github/abeatrizsc/study_tracker_ms/controllers/StudyController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
@RequestMapping("/studies")
2020
@AllArgsConstructor
2121
public class StudyController {
22-
private StudyService service;
22+
private final StudyService service;
2323

2424
@GetMapping("/all")
2525
public ResponseEntity<List<Study>> getAll() {

0 commit comments

Comments
 (0)