diff --git a/src/main/java/com/faf223/expensetrackerfaf/config/SecurityConfiguration.java b/src/main/java/com/faf223/expensetrackerfaf/config/SecurityConfiguration.java index 9b2956f..4e5d318 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/config/SecurityConfiguration.java +++ b/src/main/java/com/faf223/expensetrackerfaf/config/SecurityConfiguration.java @@ -24,6 +24,7 @@ public class SecurityConfiguration { .csrf(csrf -> csrf.disable()) .authorizeHttpRequests(auth -> auth .requestMatchers("/api/v1/auth/**").permitAll() + .requestMatchers("/encomes").hasRole("ADMIN") .anyRequest().authenticated() ) .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) diff --git a/src/main/java/com/faf223/expensetrackerfaf/controller/auth/AuthenticationController.java b/src/main/java/com/faf223/expensetrackerfaf/controller/auth/AuthenticationController.java index 1285ee4..1f375ea 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/controller/auth/AuthenticationController.java +++ b/src/main/java/com/faf223/expensetrackerfaf/controller/auth/AuthenticationController.java @@ -20,7 +20,7 @@ public class AuthenticationController { } @PostMapping("/authenticate") - public ResponseEntity register(@RequestBody AuthenticationRequest request) { + public ResponseEntity authenticate(@RequestBody AuthenticationRequest request) { return ResponseEntity.ok(service.authenticate(request)); } } diff --git a/src/main/java/com/faf223/expensetrackerfaf/dto/UserCreationDTO.java b/src/main/java/com/faf223/expensetrackerfaf/dto/UserCreationDTO.java index b947426..7c0452b 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/dto/UserCreationDTO.java +++ b/src/main/java/com/faf223/expensetrackerfaf/dto/UserCreationDTO.java @@ -6,5 +6,11 @@ import lombok.Data; @Data @AllArgsConstructor public class UserCreationDTO { - private String uuid; + + private String firstname; + private String lastname; + private String username; + private String email; + private String password; + } diff --git a/src/main/java/com/faf223/expensetrackerfaf/dto/UserDTO.java b/src/main/java/com/faf223/expensetrackerfaf/dto/UserDTO.java index 9f79253..ff95f52 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/dto/UserDTO.java +++ b/src/main/java/com/faf223/expensetrackerfaf/dto/UserDTO.java @@ -6,8 +6,9 @@ import lombok.Data; @Data @AllArgsConstructor public class UserDTO { - private String uuid; + private String name; private String surname; private String username; + } diff --git a/src/main/java/com/faf223/expensetrackerfaf/dto/mappers/UserMapper.java b/src/main/java/com/faf223/expensetrackerfaf/dto/mappers/UserMapper.java index a403a24..9a64e4b 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/dto/mappers/UserMapper.java +++ b/src/main/java/com/faf223/expensetrackerfaf/dto/mappers/UserMapper.java @@ -10,19 +10,17 @@ import org.springframework.stereotype.Component; @Component public class UserMapper { - private final UserService userService; - - @Autowired - public UserMapper(UserService userService) { - this.userService = userService; - } - public UserDTO toDto(User user) { - return new UserDTO(user.getUuid(), user.getName(), user.getSurname(), user.getUsername()); + return new UserDTO(user.getFirstName(), user.getLastName(), user.getUsername()); } public User toUser(UserCreationDTO userDTO) { - return userService.getUserById(userDTO.getUuid()); + User user = new User(); + user.setFirstName(userDTO.getFirstname()); + user.setLastName(userDTO.getLastname()); + user.setUsername(userDTO.getUsername()); + + return user; } } diff --git a/src/main/java/com/faf223/expensetrackerfaf/repository/ExpenseRepository.java b/src/main/java/com/faf223/expensetrackerfaf/repository/ExpenseRepository.java index 38fb2fb..f96f68e 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/repository/ExpenseRepository.java +++ b/src/main/java/com/faf223/expensetrackerfaf/repository/ExpenseRepository.java @@ -1,6 +1,7 @@ package com.faf223.expensetrackerfaf.repository; import com.faf223.expensetrackerfaf.model.Expense; +import com.faf223.expensetrackerfaf.model.User; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @@ -8,5 +9,5 @@ import java.util.List; @Repository public interface ExpenseRepository extends JpaRepository { - List findByUserUuid(String userUuid); + List findByUser(User user); } diff --git a/src/main/java/com/faf223/expensetrackerfaf/repository/IncomeRepository.java b/src/main/java/com/faf223/expensetrackerfaf/repository/IncomeRepository.java index 2f199af..3f4f94d 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/repository/IncomeRepository.java +++ b/src/main/java/com/faf223/expensetrackerfaf/repository/IncomeRepository.java @@ -1,6 +1,7 @@ package com.faf223.expensetrackerfaf.repository; import com.faf223.expensetrackerfaf.model.Income; +import com.faf223.expensetrackerfaf.model.User; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @@ -8,5 +9,5 @@ import java.util.List; @Repository public interface IncomeRepository extends JpaRepository { - List findByUserUuid(String userUuid); + List findByUser(User user); } diff --git a/src/main/java/com/faf223/expensetrackerfaf/repository/UserRepository.java b/src/main/java/com/faf223/expensetrackerfaf/repository/UserRepository.java index 74c1b83..d370b0a 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/repository/UserRepository.java +++ b/src/main/java/com/faf223/expensetrackerfaf/repository/UserRepository.java @@ -3,5 +3,8 @@ package com.faf223.expensetrackerfaf.repository; import com.faf223.expensetrackerfaf.model.User; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.Optional; + public interface UserRepository extends JpaRepository { + Optional getUserByUserUuid(String userUuid); } diff --git a/src/main/java/com/faf223/expensetrackerfaf/service/AuthenticationService.java b/src/main/java/com/faf223/expensetrackerfaf/service/AuthenticationService.java index 4532cc0..0fdb7fe 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/service/AuthenticationService.java +++ b/src/main/java/com/faf223/expensetrackerfaf/service/AuthenticationService.java @@ -34,7 +34,7 @@ public class AuthenticationService { .password(passwordEncoder.encode(request.getPassword())) .username(request.getUsername()) .build(); - System.out.println(user); +// System.out.println(user); userRepository.save(user); Credential credential = new Credential(user, request.getEmail(), passwordEncoder.encode(request.getPassword())); credentialRepository.save(credential); @@ -48,7 +48,7 @@ public class AuthenticationService { public AuthenticationResponse authenticate(AuthenticationRequest request) { authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(request.getEmail(), request.getPassword())); - Credential credential = credentialRepository.findByEmail(request.getEmail()).orElseThrow((() -> new UsernameNotFoundException("User not found"))); + Credential credential = credentialRepository.findByEmail(request.getEmail()).orElseThrow((() -> new UsernameNotFoundException("User not found"))); String jwtToken = jwtService.generateToken(new PersonDetails(credential)); return AuthenticationResponse.builder() diff --git a/src/main/java/com/faf223/expensetrackerfaf/service/ExpenseService.java b/src/main/java/com/faf223/expensetrackerfaf/service/ExpenseService.java index 19ab2c2..0683998 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/service/ExpenseService.java +++ b/src/main/java/com/faf223/expensetrackerfaf/service/ExpenseService.java @@ -1,25 +1,36 @@ package com.faf223.expensetrackerfaf.service; import com.faf223.expensetrackerfaf.model.Expense; +import com.faf223.expensetrackerfaf.model.User; import com.faf223.expensetrackerfaf.repository.ExpenseRepository; +import com.faf223.expensetrackerfaf.repository.UserRepository; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; +import java.util.Optional; @Service @RequiredArgsConstructor public class ExpenseService { private final ExpenseRepository expenseRepository; + private final UserRepository userRepository; public void createOrUpdateExpense(Expense expense) { expenseRepository.save(expense); } public List getExpensesByUserId(String userUuid) { - return expenseRepository.findByUserUuid(userUuid); + + Optional user = userRepository.getUserByUserUuid(userUuid); + if (user.isPresent()) { + return expenseRepository.findByUser(user.get()); + } + + return new ArrayList<>(); } public List getExpenses() { diff --git a/src/main/java/com/faf223/expensetrackerfaf/service/IncomeService.java b/src/main/java/com/faf223/expensetrackerfaf/service/IncomeService.java index 23e60ea..63e1bab 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/service/IncomeService.java +++ b/src/main/java/com/faf223/expensetrackerfaf/service/IncomeService.java @@ -1,18 +1,23 @@ package com.faf223.expensetrackerfaf.service; import com.faf223.expensetrackerfaf.model.Income; +import com.faf223.expensetrackerfaf.model.User; import com.faf223.expensetrackerfaf.repository.IncomeRepository; +import com.faf223.expensetrackerfaf.repository.UserRepository; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; +import java.util.Optional; @Service @RequiredArgsConstructor public class IncomeService { private final IncomeRepository incomeRepository; + private final UserRepository userRepository; public void createOrUpdateIncome(Income income) { incomeRepository.save(income); @@ -23,7 +28,13 @@ public class IncomeService { } public List getIncomesByUserId(String userUuid) { - return incomeRepository.findByUserUuid(userUuid); + + Optional user = userRepository.getUserByUserUuid(userUuid); + if (user.isPresent()) { + return incomeRepository.findByUser(user.get()); + } + + return new ArrayList<>(); } public Income getIncomeById(long id) {