package com.allfree.allfreespringbackend.auth.dto; import com.allfree.allfreespringbackend.auth.security.UserDetailsImpl; import com.allfree.allfreespringbackend.common.dto.CommonResponseDTO; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.NoArgsConstructor; import java.util.ArrayList; @Builder @NoArgsConstructor @AllArgsConstructor public class LoginResponseDTO extends CommonResponseDTO { @JsonProperty("token") private String token; @JsonProperty("userDetails") private UserDetailsResponseDTO userDetailsResponseDTO; private final String type = "Bearer"; public static LoginResponseDTO forFailure(final String message) { var response = new LoginResponseDTO(); response.setError(message); return response; } private void setError(String message) { } public static LoginResponseDTO fromUserDetailsImpl(final UserDetailsImpl userDetails, final String token) { var userData = UserDetailsResponseDTO.builder() .id(userDetails.getUser().getId()) .email(userDetails.getUser().getEmail()) .firstname(userDetails.getUser().getFirstName()) .lastname(userDetails.getUser().getLastName()) .username(userDetails.getUser().getUsername()) .roles(new ArrayList<>(userDetails.getUser().getRoles())) .build(); return LoginResponseDTO.builder() .token(token) .userDetailsResponseDTO(userData) .build(); } }