Skip to content

Commit

Permalink
UserDTO and MeterReadingsDTO added
Browse files Browse the repository at this point in the history
  • Loading branch information
Muryginds committed Jan 25, 2024
1 parent e2ed01f commit dbdaad5
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 5 deletions.
15 changes: 15 additions & 0 deletions src/main/java/ru/ylab/out/dto/MeterReadingsDTO.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package ru.ylab.out.dto;

import lombok.Builder;
import ru.ylab.enumerated.MeterType;

import java.time.LocalDate;
import java.util.Map;

@Builder
public record MeterReadingsDTO(
Long id,
UserDTO user,
LocalDate date,
Map<MeterType, Integer> readings) {
}
10 changes: 10 additions & 0 deletions src/main/java/ru/ylab/out/dto/UserDTO.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package ru.ylab.out.dto;

import lombok.Builder;

@Builder
public record UserDTO(
Long id,
String name
) {
}
19 changes: 14 additions & 5 deletions src/main/java/ru/ylab/service/UserService.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@
import ru.ylab.entity.User;
import ru.ylab.exception.UserAlreadyExistException;
import ru.ylab.exception.UserAuthenticationException;
import ru.ylab.dto.UserAuthenticationRequestDTO;
import ru.ylab.dto.UserRegistrationRequestDTO;
import ru.ylab.in.dto.UserAuthenticationRequestDTO;
import ru.ylab.in.dto.UserRegistrationRequestDTO;
import ru.ylab.out.dto.UserDTO;
import ru.ylab.repository.UserRepository;
import ru.ylab.security.PasswordEncoder;

Expand All @@ -16,25 +17,33 @@ public class UserService {
@Getter
private User currentUser;

public User registerUser(UserRegistrationRequestDTO requestDTO) {
public UserDTO registerUser(UserRegistrationRequestDTO requestDTO) {
if (!checkUsernameExists(requestDTO.name())) {
User user = User.builder()
.name(requestDTO.name())
.password(passwordEncoder.encode(requestDTO.password()))
.build();
userRepository.save(user);
return user;
return UserDTO.builder()
.id(user.getId())
.name(user.getName())
.build();
}
throw new UserAlreadyExistException(requestDTO.name());
}

public User authenticate(UserAuthenticationRequestDTO requestDTO) {
public UserDTO authorize(UserAuthenticationRequestDTO requestDTO) {
var user = userRepository.getUserByName(requestDTO.name())
.orElseThrow(UserAuthenticationException::new);
if (!passwordEncoder.verify(requestDTO.password(), user.getPassword())) {
throw new UserAuthenticationException();
}
return user;
return UserDTO.builder()
.id(user.getId())
.name(user.getName())
.build();
}
}

public boolean checkUsernameExists(String username) {
Expand Down

0 comments on commit dbdaad5

Please sign in to comment.