import axios from "axios"; import type { CreateRecipeRequest, CreateRecipeResponse, GetRecipeOfTheWeekResponse, GetRecipeResponse, SearchRecipesResponse } from "../types/api/recipe"; import type { Recipe } from "../types/recipe"; import type { ApiError } from "../types/api/error"; import type { SearchFilters } from "../types/search"; export async function GetRecipeOfTheWeek(): Promise { const response = await axios.get("http://localhost:3000/v2/api/recipe/of-the-week"); if (response.status !== 200 || response.data.recipe === undefined) { const err: ApiError = { status: response.data.status, message: response.data.message }; return err; } return response.data.recipe; } export async function GetRecipe(id: number): Promise { const response = await axios.get(`http://localhost:3000/v2/api/recipe/${id}`); if (response.status !== 200 || response.data.recipe === undefined) { const err: ApiError = { status: response.data.status, message: response.data.message }; return err; } return response.data.recipe; } export async function SearchRecipes(filters: SearchFilters): Promise { const response = await axios.post("http://localhost:3000/v2/api/recipe/search", filters); if (response.status !== 200 || response.data.recipes === undefined) { const err: ApiError = { status: response.data.status, message: response.data.message }; return err; } return response.data.recipes; } export async function CreateRecipe(data: CreateRecipeRequest): Promise { const response = await axios.post("http://localhost:3000/v2/api/recipe", data); if (response.status !== 200 || response.data.recipe === undefined) { const err: ApiError = { status: response.data.status, message: response.data.message }; return err; } return response.data.recipe; }