rename API files
This commit is contained in:
parent
c8b8435b69
commit
c3998ca039
11 changed files with 46 additions and 36 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
/**
|
/**
|
||||||
* DTO for changing user password
|
* DTO for changing user password
|
||||||
*/
|
*/
|
||||||
export class ChangeUserPasswordRequestDto {
|
export class ChangeUserPasswordRequest {
|
||||||
userId?: string;
|
userId?: string;
|
||||||
password?: string;
|
password?: string;
|
||||||
}
|
}
|
||||||
|
|
@ -3,7 +3,7 @@ import { UserDto } from "./UserDto.js";
|
||||||
/**
|
/**
|
||||||
* DTO used for user creation
|
* DTO used for user creation
|
||||||
*/
|
*/
|
||||||
export class CreateUserRequestDto {
|
export class CreateUserRequest {
|
||||||
userData?: UserDto;
|
userData?: UserDto;
|
||||||
password?: string;
|
password?: string;
|
||||||
}
|
}
|
||||||
5
frontend/src/api/dtos/CreateUserResponse.ts
Normal file
5
frontend/src/api/dtos/CreateUserResponse.ts
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
import { UserDto } from "./UserDto.js";
|
||||||
|
|
||||||
|
export class CreateUserResponse{
|
||||||
|
userData?: UserDto;
|
||||||
|
}
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
/**
|
/**
|
||||||
* Defines a login request
|
* Defines a login request
|
||||||
*/
|
*/
|
||||||
export class LoginRequestDto {
|
export class LoginRequest {
|
||||||
userName?: string;
|
userName?: string;
|
||||||
password?: string;
|
password?: string;
|
||||||
}
|
}
|
||||||
10
frontend/src/api/dtos/LoginResponse.ts
Normal file
10
frontend/src/api/dtos/LoginResponse.ts
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
import {UserDto} from "./UserDto.js";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Response to a successful login
|
||||||
|
*/
|
||||||
|
export class LoginResponse {
|
||||||
|
userData?: UserDto;
|
||||||
|
token?: string;
|
||||||
|
expiryDate?: Date;
|
||||||
|
}
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
import { UserDto } from "./UserDto.js";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Response to a successful login
|
|
||||||
*/
|
|
||||||
export class LoginResponseDto {
|
|
||||||
userData?: UserDto;
|
|
||||||
token?: string;
|
|
||||||
expiryDate? : Date;
|
|
||||||
}
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import type { LoginRequestDto } from "../dtos/LoginRequestDto";
|
import type {LoginRequest} from "../dtos/LoginRequest.ts";
|
||||||
import type { LoginResponseDto } from "../dtos/LoginResponseDto";
|
import type {LoginResponse} from "../dtos/LoginResponse.ts";
|
||||||
import {postJson} from "../utils/requests";
|
import {postJson} from "../utils/requests";
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -16,11 +16,11 @@ const AUTH_URL = `${BASE_URL}/auth`
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create new Recipe
|
* Login to recipe app
|
||||||
* @param recipe Recipe to create
|
* @param loginRequest Login Requets
|
||||||
* @returns Saved recipe
|
* @returns LoginResponse
|
||||||
*/
|
*/
|
||||||
export async function login(requestDto: LoginRequestDto): Promise<LoginResponseDto> {
|
export async function login(loginRequest: LoginRequest): Promise<LoginResponse> {
|
||||||
const res = await postJson(`${AUTH_URL}/login`, JSON.stringify(requestDto), false);
|
const res = await postJson(`${AUTH_URL}/login`, JSON.stringify(loginRequest), false);
|
||||||
return res.json();
|
return res.json();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import {apiClient} from "../apiClient";
|
import {apiClient} from "../apiClient";
|
||||||
import type {UserDto} from "../dtos/UserDto";
|
import type {UserDto} from "../dtos/UserDto";
|
||||||
import type {CreateUserRequestDto} from "../dtos/CreateUserRequestDto";
|
import type {CreateUserRequest} from "../dtos/CreateUserRequest.ts";
|
||||||
import type {ChangeUserPasswordRequestDto} from "../dtos/ChangeUserPasswordRequestDto";
|
import type {ChangeUserPasswordRequest} from "../dtos/ChangeUserPasswordRequest.ts";
|
||||||
|
import type {CreateUserResponse} from "../dtos/CreateUserResponse.ts";
|
||||||
|
|
||||||
export async function fetchCurrentUser(): Promise<UserDto> {
|
export async function fetchCurrentUser(): Promise<UserDto> {
|
||||||
return apiClient.get("/user/me");
|
return apiClient.get("/user/me");
|
||||||
|
|
@ -11,7 +12,7 @@ export async function fetchAllUsers(): Promise<UserDto[]> {
|
||||||
return apiClient.get("/user/list");
|
return apiClient.get("/user/list");
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function createUser(dto: CreateUserRequestDto): Promise<UserDto> {
|
export async function createUser(dto: CreateUserRequest): Promise<CreateUserResponse> {
|
||||||
return apiClient.post("/user/create", dto);
|
return apiClient.post("/user/create", dto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -19,6 +20,6 @@ export async function updateUser(dto: UserDto): Promise<UserDto> {
|
||||||
return apiClient.post("/user/update", dto);
|
return apiClient.post("/user/update", dto);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function changePassword(dto: ChangeUserPasswordRequestDto) {
|
export async function changePassword(dto: ChangeUserPasswordRequest) {
|
||||||
return apiClient.post("/user/change-password", dto);
|
return apiClient.post("/user/change-password", dto);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import {useState} from "react";
|
import {useState} from "react";
|
||||||
import Button from "./basics/Button";
|
import Button from "./basics/Button";
|
||||||
import type {LoginRequestDto} from "../api/dtos/LoginRequestDto";
|
import type {LoginRequest} from "../api/dtos/LoginRequest.ts";
|
||||||
import type {LoginResponseDto} from "../api/dtos/LoginResponseDto";
|
import type {LoginResponse} from "../api/dtos/LoginResponse.ts";
|
||||||
import {login} from "../api/points/AuthPoint";
|
import {login} from "../api/points/AuthPoint";
|
||||||
import {getRecipeListUrl} from "../routes";
|
import {getRecipeListUrl} from "../routes";
|
||||||
import {useNavigate} from "react-router-dom";
|
import {useNavigate} from "react-router-dom";
|
||||||
|
|
@ -20,14 +20,14 @@ export default function LoginPage() {
|
||||||
* Login
|
* Login
|
||||||
*/
|
*/
|
||||||
const executeLogin = async () => {
|
const executeLogin = async () => {
|
||||||
const dto: LoginRequestDto = {
|
const dto: LoginRequest = {
|
||||||
userName,
|
userName,
|
||||||
password,
|
password,
|
||||||
};
|
};
|
||||||
|
|
||||||
try {
|
try {
|
||||||
console.log("Trying to log in with " + dto.userName);
|
console.log("Trying to log in with " + dto.userName);
|
||||||
const loginResponse: LoginResponseDto = await login(dto);
|
const loginResponse: LoginResponse = await login(dto);
|
||||||
localStorage.setItem("session", JSON.stringify(loginResponse));
|
localStorage.setItem("session", JSON.stringify(loginResponse));
|
||||||
console.log("Successfully logged in as " + loginResponse.userData?.userName);
|
console.log("Successfully logged in as " + loginResponse.userData?.userName);
|
||||||
setErrorMessage(null);
|
setErrorMessage(null);
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
// src/components/basics/SettingsMenu.tsx
|
// src/components/basics/SettingsMenu.tsx
|
||||||
import {X} from "lucide-react";
|
import {X} from "lucide-react";
|
||||||
import {useNavigate} from "react-router-dom";
|
import {useNavigate} from "react-router-dom";
|
||||||
import type {LoginResponseDto} from "../api/dtos/LoginResponseDto";
|
import type {LoginResponse} from "../api/dtos/LoginResponse.ts";
|
||||||
import {getUserUrl} from "../routes.ts";
|
import {getUserUrl} from "../routes.ts";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -15,7 +15,7 @@ type SettingsMenuProps = {
|
||||||
export function SettingsMenu({onClose}: SettingsMenuProps) {
|
export function SettingsMenu({onClose}: SettingsMenuProps) {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const storedSession = localStorage.getItem("session");
|
const storedSession = localStorage.getItem("session");
|
||||||
const loginData: LoginResponseDto | null = storedSession
|
const loginData: LoginResponse | null = storedSession
|
||||||
? JSON.parse(storedSession)
|
? JSON.parse(storedSession)
|
||||||
: null;
|
: null;
|
||||||
const user = loginData?.userData;
|
const user = loginData?.userData;
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import ButtonLink from "../basics/ButtonLink.tsx";
|
||||||
import {getRecipeListUrl} from "../../routes.ts";
|
import {getRecipeListUrl} from "../../routes.ts";
|
||||||
import TextLinkButton from "../basics/TextLinkButton.tsx";
|
import TextLinkButton from "../basics/TextLinkButton.tsx";
|
||||||
import SelectField from "../basics/SelectField.tsx";
|
import SelectField from "../basics/SelectField.tsx";
|
||||||
|
import type {CreateUserResponse} from "../../api/dtos/CreateUserResponse.ts";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* UserManagementPage
|
* UserManagementPage
|
||||||
|
|
@ -70,9 +71,12 @@ export default function UserManagementPage() {
|
||||||
try {
|
try {
|
||||||
if (!selectedUser.id) {
|
if (!selectedUser.id) {
|
||||||
//@todo check passwords!
|
//@todo check passwords!
|
||||||
const created = await createUser({userData: selectedUser, password});
|
const response: CreateUserResponse = await createUser({userData: selectedUser, password});
|
||||||
setUsers([...users, created]);
|
const userDto = response.userData;
|
||||||
setSelectedUser(created);
|
if (userDto) {
|
||||||
|
setUsers([...users, userDto]);
|
||||||
|
setSelectedUser(userDto);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
const updated = await updateUser(selectedUser);
|
const updated = await updateUser(selectedUser);
|
||||||
setUsers(users.map(u => (u.id === updated.id ? updated : u)));
|
setUsers(users.map(u => (u.id === updated.id ? updated : u)));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue