rename API files

This commit is contained in:
araemer 2025-11-13 21:34:06 +01:00
parent c8b8435b69
commit c3998ca039
11 changed files with 46 additions and 36 deletions

View file

@ -1,7 +1,7 @@
/**
* DTO for changing user password
*/
export class ChangeUserPasswordRequestDto {
export class ChangeUserPasswordRequest {
userId?: string;
password?: string;
}

View file

@ -1,9 +1,9 @@
import { UserDto } from "./UserDto.js";
import {UserDto} from "./UserDto.js";
/**
* DTO used for user creation
*/
export class CreateUserRequestDto {
export class CreateUserRequest {
userData?: UserDto;
password?: string;
}

View file

@ -0,0 +1,5 @@
import { UserDto } from "./UserDto.js";
export class CreateUserResponse{
userData?: UserDto;
}

View file

@ -1,7 +1,7 @@
/**
* Defines a login request
*/
export class LoginRequestDto {
export class LoginRequest {
userName?: string;
password?: string;
}

View file

@ -0,0 +1,10 @@
import {UserDto} from "./UserDto.js";
/**
* Response to a successful login
*/
export class LoginResponse {
userData?: UserDto;
token?: string;
expiryDate?: Date;
}

View file

@ -1,10 +0,0 @@
import { UserDto } from "./UserDto.js";
/**
* Response to a successful login
*/
export class LoginResponseDto {
userData?: UserDto;
token?: string;
expiryDate? : Date;
}

View file

@ -1,6 +1,6 @@
import type { LoginRequestDto } from "../dtos/LoginRequestDto";
import type { LoginResponseDto } from "../dtos/LoginResponseDto";
import { postJson } from "../utils/requests";
import type {LoginRequest} from "../dtos/LoginRequest.ts";
import type {LoginResponse} from "../dtos/LoginResponse.ts";
import {postJson} from "../utils/requests";
/**
@ -16,11 +16,11 @@ const AUTH_URL = `${BASE_URL}/auth`
/**
* Create new Recipe
* @param recipe Recipe to create
* @returns Saved recipe
* Login to recipe app
* @param loginRequest Login Requets
* @returns LoginResponse
*/
export async function login(requestDto: LoginRequestDto): Promise<LoginResponseDto> {
const res = await postJson(`${AUTH_URL}/login`, JSON.stringify(requestDto), false);
export async function login(loginRequest: LoginRequest): Promise<LoginResponse> {
const res = await postJson(`${AUTH_URL}/login`, JSON.stringify(loginRequest), false);
return res.json();
}

View file

@ -1,7 +1,8 @@
import {apiClient} from "../apiClient";
import type {UserDto} from "../dtos/UserDto";
import type {CreateUserRequestDto} from "../dtos/CreateUserRequestDto";
import type {ChangeUserPasswordRequestDto} from "../dtos/ChangeUserPasswordRequestDto";
import type {CreateUserRequest} from "../dtos/CreateUserRequest.ts";
import type {ChangeUserPasswordRequest} from "../dtos/ChangeUserPasswordRequest.ts";
import type {CreateUserResponse} from "../dtos/CreateUserResponse.ts";
export async function fetchCurrentUser(): Promise<UserDto> {
return apiClient.get("/user/me");
@ -11,7 +12,7 @@ export async function fetchAllUsers(): Promise<UserDto[]> {
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);
}
@ -19,6 +20,6 @@ export async function updateUser(dto: UserDto): Promise<UserDto> {
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);
}

View file

@ -1,7 +1,7 @@
import {useState} from "react";
import Button from "./basics/Button";
import type {LoginRequestDto} from "../api/dtos/LoginRequestDto";
import type {LoginResponseDto} from "../api/dtos/LoginResponseDto";
import type {LoginRequest} from "../api/dtos/LoginRequest.ts";
import type {LoginResponse} from "../api/dtos/LoginResponse.ts";
import {login} from "../api/points/AuthPoint";
import {getRecipeListUrl} from "../routes";
import {useNavigate} from "react-router-dom";
@ -20,14 +20,14 @@ export default function LoginPage() {
* Login
*/
const executeLogin = async () => {
const dto: LoginRequestDto = {
const dto: LoginRequest = {
userName,
password,
};
try {
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));
console.log("Successfully logged in as " + loginResponse.userData?.userName);
setErrorMessage(null);

View file

@ -1,7 +1,7 @@
// src/components/basics/SettingsMenu.tsx
import {X} from "lucide-react";
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";
/**
@ -15,7 +15,7 @@ type SettingsMenuProps = {
export function SettingsMenu({onClose}: SettingsMenuProps) {
const navigate = useNavigate();
const storedSession = localStorage.getItem("session");
const loginData: LoginResponseDto | null = storedSession
const loginData: LoginResponse | null = storedSession
? JSON.parse(storedSession)
: null;
const user = loginData?.userData;

View file

@ -16,6 +16,7 @@ import ButtonLink from "../basics/ButtonLink.tsx";
import {getRecipeListUrl} from "../../routes.ts";
import TextLinkButton from "../basics/TextLinkButton.tsx";
import SelectField from "../basics/SelectField.tsx";
import type {CreateUserResponse} from "../../api/dtos/CreateUserResponse.ts";
/**
* UserManagementPage
@ -70,9 +71,12 @@ export default function UserManagementPage() {
try {
if (!selectedUser.id) {
//@todo check passwords!
const created = await createUser({userData: selectedUser, password});
setUsers([...users, created]);
setSelectedUser(created);
const response: CreateUserResponse = await createUser({userData: selectedUser, password});
const userDto = response.userData;
if (userDto) {
setUsers([...users, userDto]);
setSelectedUser(userDto);
}
} else {
const updated = await updateUser(selectedUser);
setUsers(users.map(u => (u.id === updated.id ? updated : u)));