implement basic login

This commit is contained in:
Anika Raemer 2025-10-07 19:27:35 +02:00
parent bdd90b50d9
commit 7a6f5b5bcd
18 changed files with 222 additions and 35 deletions

View file

@ -1,59 +0,0 @@
import type { Recipe } from "../types/recipe"
import { get, postJson, putJson } from "./utils/requests";
/**
* Util for handling the recipe api
*/
// read base url from .env file
const BASE_URL = import.meta.env.VITE_API_BASE;
/**
* URL for handling recipes
*/
const RECIPE_URL = `${BASE_URL}/recipe`
/**
* Load a single recipe
* @param id ID of the recipe to load
* @returns A single recipe
*/
export async function fetchRecipe(id: string): Promise<Recipe> {
const res = await get(`${RECIPE_URL}/${id}`)
return res.json()
}
/**
* Load list of all recipes
* @param searchString Search string for filtering recipeList
* @returns Array of recipe
*/
export async function fetchRecipeList(searchString : string): Promise<Recipe[]> {
let url : string = RECIPE_URL;
// if there's a search string add it as query parameter
if(searchString && searchString !== ""){
url +="?search=" + searchString;
}
const res = await get(url);
return res.json();
}
/**
* Create new Recipe
* @param recipe Recipe to create
* @returns Saved recipe
*/
export async function createRecipe(recipe: Recipe): Promise<Recipe> {
const res = await postJson(RECIPE_URL, JSON.stringify(recipe));
return res.json();
}
/**
* Save an existing recipe
* @param recipe Recipe to save. This recipe must have an ID!
* @returns Saved recipe
*/
export async function updateRecipe(recipe: Recipe): Promise<Recipe> {
const res = await putJson(`${RECIPE_URL}/${recipe.id}`, JSON.stringify(recipe));
return res.json();
}