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
|
||||
*/
|
||||
export class ChangeUserPasswordRequestDto {
|
||||
export class ChangeUserPasswordRequest {
|
||||
userId?: string;
|
||||
password?: string;
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
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
|
||||
*/
|
||||
export class LoginRequestDto {
|
||||
export class LoginRequest {
|
||||
userName?: 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,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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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)));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue