Changeset 3727852
- Timestamp:
- 01/26/26 17:59:16 (6 months ago)
- Branches:
- main
- Children:
- 484dc3f
- Parents:
- 4022db1
- Files:
-
- 5 edited
-
finkwave/src/main/java/com/ukim/finki/develop/finkwave/dto/UserResponseDto.java (modified) (1 diff)
-
finkwave/src/main/java/com/ukim/finki/develop/finkwave/service/AuthService.java (modified) (3 diffs)
-
frontend/src/Login.tsx (modified) (3 diffs)
-
frontend/src/Register.tsx (modified) (4 diffs)
-
frontend/src/types.ts (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
finkwave/src/main/java/com/ukim/finki/develop/finkwave/dto/UserResponseDto.java
r4022db1 r3727852 2 2 3 3 import com.ukim.finki.develop.finkwave.model.Role; 4 import jakarta.annotation.Nullable; 5 import lombok.Builder; 4 6 7 @Builder 5 8 public record UserResponseDto( 9 String fullname, 6 10 String username, 11 @Nullable String profilePhoto, 7 12 Role role){ 8 13 } -
finkwave/src/main/java/com/ukim/finki/develop/finkwave/service/AuthService.java
r4022db1 r3727852 65 65 User user = userRepository.findByUsername(username) 66 66 .orElseThrow(() -> new RuntimeException("Invalid credentials")); 67 return new UserResponseDto(user.getUsername(), user.getRole()); 67 68 return userResponseFromUser(user); 68 69 } 69 70 … … 110 111 RefreshToken refreshToken = refreshTokenService.createRefreshToken(user); 111 112 112 UserResponseDto userResponseDto = new UserResponseDto(user.getUsername(), user.getRole()); 113 UserResponseDto userResponseDto = userResponseFromUser(user); 114 113 115 addTokensToResponse(response, refreshToken, accessToken); 114 116 return userResponseDto; … … 135 137 addAccessCookieToResponse(response, accessToken); 136 138 } 139 140 private UserResponseDto userResponseFromUser(User user){ 141 return UserResponseDto.builder() 142 .fullname(user.getFullName()) 143 .username(user.getUsername()) 144 .profilePhoto(user.getProfilePhoto()) 145 .role(user.getRole()) 146 .build(); 147 } 137 148 } -
frontend/src/Login.tsx
r4022db1 r3727852 3 3 import axiosInstance, { scheduleTokenRefresh } from "./api/axiosInstance"; 4 4 import { useAuth } from "./context/authContext"; 5 import type { User Response} from "./types";5 import type { User } from "./types"; 6 6 7 7 const Login = () => { … … 16 16 try { 17 17 const response = await axiosInstance.post<{ 18 user: User Response;18 user: User; 19 19 tokenExpiresIn: number; 20 20 }>("/auth/login", { username, password }); … … 65 65 <button 66 66 type="submit" 67 className="bg-blue-500 hover:bg-blue-600 text-white px-4 py-2 rounded-lg text-sm font-medium transition-colors duration-200 w-full "67 className="bg-blue-500 hover:bg-blue-600 text-white px-4 py-2 rounded-lg text-sm font-medium transition-colors duration-200 w-full cursor-pointer" 68 68 > 69 69 Login -
frontend/src/Register.tsx
r4022db1 r3727852 3 3 import axiosInstance, { scheduleTokenRefresh } from "./api/axiosInstance"; 4 4 import { useAuth } from "./context/authContext"; 5 import type { User , UserResponse} from "./types";5 import type { User } from "./types"; 6 6 7 7 const Register = () => { … … 17 17 const handleRegister = async (e: React.FormEvent) => { 18 18 e.preventDefault(); 19 const newUser: User = {20 username,21 fullName: fullname,22 email: email,23 profilePhoto: profilePhoto,24 };25 19 try { 26 20 const response = await axiosInstance.post<{ 27 user: User Response;21 user: User; 28 22 tokenExpiresIn: number; 29 23 }>("/auth/register", { … … 35 29 }); 36 30 scheduleTokenRefresh(response.data.tokenExpiresIn); 37 setUser(newUser); 38 // todo 39 // setUser(response.data.user); 31 setUser(response.data.user); 40 32 navigate("/"); 41 33 } catch (error) { … … 111 103 <button 112 104 type="submit" 113 className="w-full bg-blue-500 text-white p-2 rounded hover:bg-blue-600 "105 className="w-full bg-blue-500 text-white p-2 rounded hover:bg-blue-600 cursor-pointer" 114 106 onClick={(e: React.MouseEvent<HTMLButtonElement>) => 115 107 handleRegister(e) -
frontend/src/types.ts
r4022db1 r3727852 1 export interface UserResponse {2 username: string;3 role: "ADMIN" | "NONADMIN";4 }5 6 1 export interface User { 7 2 username: string; 8 3 fullName: string; 9 email : string;4 email?: string; 10 5 profilePhoto?: string | null; 11 6 role?: "ADMIN" | "NONADMIN";
Note:
See TracChangeset
for help on using the changeset viewer.
