38 lines
958 B
TypeScript
38 lines
958 B
TypeScript
import { useAsync, ref } from "@nuxtjs/composition-api";
|
|
import { useApiSingleton } from "~/composables/use-api";
|
|
import { Recipe } from "~/types/api-types/recipe";
|
|
|
|
export const useRecipeContext = function () {
|
|
const api = useApiSingleton();
|
|
const loading = ref(false)
|
|
|
|
|
|
function getBySlug(slug: string) {
|
|
loading.value = true
|
|
const recipe = useAsync(async () => {
|
|
const { data } = await api.recipes.getOne(slug);
|
|
return data;
|
|
}, slug);
|
|
|
|
loading.value = false
|
|
|
|
return recipe;
|
|
}
|
|
|
|
async function deleteRecipe(slug: string) {
|
|
loading.value = true
|
|
const { data } = await api.recipes.deleteOne(slug);
|
|
loading.value = false
|
|
return data;
|
|
}
|
|
|
|
async function updateRecipe(slug: string, recipe: Recipe) {
|
|
loading.value = true
|
|
const { data } = await api.recipes.updateOne(slug, recipe);
|
|
loading.value = false
|
|
return data;
|
|
}
|
|
|
|
|
|
return {loading, getBySlug, deleteRecipe, updateRecipe}
|
|
};
|