Fix mapper + DTO

This commit is contained in:
DmitriiCravcenco
2023-10-05 19:14:28 +03:00
parent e17eb3deec
commit a6ed3794fe
11 changed files with 51 additions and 18 deletions

View File

@@ -24,6 +24,7 @@ public class SecurityConfiguration {
.csrf(csrf -> csrf.disable()) .csrf(csrf -> csrf.disable())
.authorizeHttpRequests(auth -> auth .authorizeHttpRequests(auth -> auth
.requestMatchers("/api/v1/auth/**").permitAll() .requestMatchers("/api/v1/auth/**").permitAll()
.requestMatchers("/encomes").hasRole("ADMIN")
.anyRequest().authenticated() .anyRequest().authenticated()
) )
.sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))

View File

@@ -20,7 +20,7 @@ public class AuthenticationController {
} }
@PostMapping("/authenticate") @PostMapping("/authenticate")
public ResponseEntity<AuthenticationResponse> register(@RequestBody AuthenticationRequest request) { public ResponseEntity<AuthenticationResponse> authenticate(@RequestBody AuthenticationRequest request) {
return ResponseEntity.ok(service.authenticate(request)); return ResponseEntity.ok(service.authenticate(request));
} }
} }

View File

@@ -6,5 +6,11 @@ import lombok.Data;
@Data @Data
@AllArgsConstructor @AllArgsConstructor
public class UserCreationDTO { public class UserCreationDTO {
private String uuid;
private String firstname;
private String lastname;
private String username;
private String email;
private String password;
} }

View File

@@ -6,8 +6,9 @@ import lombok.Data;
@Data @Data
@AllArgsConstructor @AllArgsConstructor
public class UserDTO { public class UserDTO {
private String uuid;
private String name; private String name;
private String surname; private String surname;
private String username; private String username;
} }

View File

@@ -10,19 +10,17 @@ import org.springframework.stereotype.Component;
@Component @Component
public class UserMapper { public class UserMapper {
private final UserService userService;
@Autowired
public UserMapper(UserService userService) {
this.userService = userService;
}
public UserDTO toDto(User user) { 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) { 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;
} }
} }

View File

@@ -1,6 +1,7 @@
package com.faf223.expensetrackerfaf.repository; package com.faf223.expensetrackerfaf.repository;
import com.faf223.expensetrackerfaf.model.Expense; import com.faf223.expensetrackerfaf.model.Expense;
import com.faf223.expensetrackerfaf.model.User;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@@ -8,5 +9,5 @@ import java.util.List;
@Repository @Repository
public interface ExpenseRepository extends JpaRepository<Expense, Long> { public interface ExpenseRepository extends JpaRepository<Expense, Long> {
List<Expense> findByUserUuid(String userUuid); List<Expense> findByUser(User user);
} }

View File

@@ -1,6 +1,7 @@
package com.faf223.expensetrackerfaf.repository; package com.faf223.expensetrackerfaf.repository;
import com.faf223.expensetrackerfaf.model.Income; import com.faf223.expensetrackerfaf.model.Income;
import com.faf223.expensetrackerfaf.model.User;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@@ -8,5 +9,5 @@ import java.util.List;
@Repository @Repository
public interface IncomeRepository extends JpaRepository<Income, Long> { public interface IncomeRepository extends JpaRepository<Income, Long> {
List<Income> findByUserUuid(String userUuid); List<Income> findByUser(User user);
} }

View File

@@ -3,5 +3,8 @@ package com.faf223.expensetrackerfaf.repository;
import com.faf223.expensetrackerfaf.model.User; import com.faf223.expensetrackerfaf.model.User;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional;
public interface UserRepository extends JpaRepository<User, String> { public interface UserRepository extends JpaRepository<User, String> {
Optional<User> getUserByUserUuid(String userUuid);
} }

View File

@@ -34,7 +34,7 @@ public class AuthenticationService {
.password(passwordEncoder.encode(request.getPassword())) .password(passwordEncoder.encode(request.getPassword()))
.username(request.getUsername()) .username(request.getUsername())
.build(); .build();
System.out.println(user); // System.out.println(user);
userRepository.save(user); userRepository.save(user);
Credential credential = new Credential(user, request.getEmail(), passwordEncoder.encode(request.getPassword())); Credential credential = new Credential(user, request.getEmail(), passwordEncoder.encode(request.getPassword()));
credentialRepository.save(credential); credentialRepository.save(credential);
@@ -48,7 +48,7 @@ public class AuthenticationService {
public AuthenticationResponse authenticate(AuthenticationRequest request) { public AuthenticationResponse authenticate(AuthenticationRequest request) {
authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(request.getEmail(), request.getPassword())); 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)); String jwtToken = jwtService.generateToken(new PersonDetails(credential));
return AuthenticationResponse.builder() return AuthenticationResponse.builder()

View File

@@ -1,25 +1,36 @@
package com.faf223.expensetrackerfaf.service; package com.faf223.expensetrackerfaf.service;
import com.faf223.expensetrackerfaf.model.Expense; import com.faf223.expensetrackerfaf.model.Expense;
import com.faf223.expensetrackerfaf.model.User;
import com.faf223.expensetrackerfaf.repository.ExpenseRepository; import com.faf223.expensetrackerfaf.repository.ExpenseRepository;
import com.faf223.expensetrackerfaf.repository.UserRepository;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional;
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class ExpenseService { public class ExpenseService {
private final ExpenseRepository expenseRepository; private final ExpenseRepository expenseRepository;
private final UserRepository userRepository;
public void createOrUpdateExpense(Expense expense) { public void createOrUpdateExpense(Expense expense) {
expenseRepository.save(expense); expenseRepository.save(expense);
} }
public List<Expense> getExpensesByUserId(String userUuid) { public List<Expense> getExpensesByUserId(String userUuid) {
return expenseRepository.findByUserUuid(userUuid);
Optional<User> user = userRepository.getUserByUserUuid(userUuid);
if (user.isPresent()) {
return expenseRepository.findByUser(user.get());
}
return new ArrayList<>();
} }
public List<Expense> getExpenses() { public List<Expense> getExpenses() {

View File

@@ -1,18 +1,23 @@
package com.faf223.expensetrackerfaf.service; package com.faf223.expensetrackerfaf.service;
import com.faf223.expensetrackerfaf.model.Income; import com.faf223.expensetrackerfaf.model.Income;
import com.faf223.expensetrackerfaf.model.User;
import com.faf223.expensetrackerfaf.repository.IncomeRepository; import com.faf223.expensetrackerfaf.repository.IncomeRepository;
import com.faf223.expensetrackerfaf.repository.UserRepository;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional;
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class IncomeService { public class IncomeService {
private final IncomeRepository incomeRepository; private final IncomeRepository incomeRepository;
private final UserRepository userRepository;
public void createOrUpdateIncome(Income income) { public void createOrUpdateIncome(Income income) {
incomeRepository.save(income); incomeRepository.save(income);
@@ -23,7 +28,13 @@ public class IncomeService {
} }
public List<Income> getIncomesByUserId(String userUuid) { public List<Income> getIncomesByUserId(String userUuid) {
return incomeRepository.findByUserUuid(userUuid);
Optional<User> user = userRepository.getUserByUserUuid(userUuid);
if (user.isPresent()) {
return incomeRepository.findByUser(user.get());
}
return new ArrayList<>();
} }
public Income getIncomeById(long id) { public Income getIncomeById(long id) {