Files
tiramisu/src/app/recipe.service.ts

71 lines
2.8 KiB
TypeScript

import { Injectable } from '@angular/core';
import { Ingredient, Recipe } from '../cookbook/type';
@Injectable({
providedIn: 'root',
})
export class RecipeService {
#recipes: Recipe[] = [
{
id: 0,
name: 'crepe1',
description: 'La meilleure recette de pâte à crêpes',
image: '',
ingredients: [
{ idIngredient: 1, idRecipe: 0, quantity: 10 },
{ idIngredient: 2, idRecipe: 0, quantity: 15 },
],
},
{ id: 1, name: 'crepe2', description: 'La meilleure recette de pâte à crêpes', image: '', ingredients: [] },
{ id: 2, name: 'crepe3', description: 'La meilleure recette de pâte à crêpes', image: '', ingredients: [] },
{ id: 3, name: 'crepe4', description: 'La meilleure recette de pâte à crêpes', image: '', ingredients: [] },
{ id: 4, name: 'crepe5', description: 'La meilleure recette de pâte à crêpes', image: '', ingredients: [] },
{ id: 5, name: 'crepe6', description: 'La meilleure recette de pâte à crêpes', image: '', ingredients: [] },
{ id: 6, name: 'crepe7', description: 'La meilleure recette de pâte à crêpes', image: '', ingredients: [] },
{ id: 7, name: 'crepe8', description: 'La meilleure recette de pâte à crêpes', image: '', ingredients: [] },
{ id: 8, name: 'crepe9', description: 'La meilleure recette de pâte à crêpes', image: '', ingredients: [] },
{ id: 9, name: 'crepe10', description: 'La meilleure recette de pâte à crêpes', image: '', ingredients: [] },
{ id: 10, name: 'crepe11', description: 'La meilleure recette de pâte à crêpes', image: '', ingredients: [] },
{ id: 11, name: 'crepe12', description: 'La meilleure recette de pâte à crêpes', image: '', ingredients: [] },
{ id: 12, name: 'crepe13', description: 'La meilleure recette de pâte à crêpes', image: '', ingredients: [] },
{ id: 13, name: 'crepe14', description: 'La meilleure recette de pâte à crêpes', image: '', ingredients: [] },
];
#ingredients: Ingredient[] = [
{ id: 1, name: 'Sucre' },
{ id: 2, name: 'Farine' },
];
getAll(): Recipe[] {
return this.#recipes;
}
getAllIngredients(): Ingredient[] {
return this.#ingredients;
}
get(id: number): Recipe | null {
return this.#recipes.find((recipe) => recipe.id === id) || null;
}
getIngredientById(id: number): Ingredient | null {
return this.#ingredients.find((ingredient) => ingredient.id === id) || null;
}
add(recipe: Omit<Recipe, 'id'>): void {
const id = this.#recipes.length ? Math.max(...this.#recipes.map((recipe) => recipe.id)) + 1 : 1;
this.#recipes.push({
id,
...recipe,
});
}
edit(recipe: Recipe): void {
for (let i = 0; i < this.#recipes.length; ++i) {
if (this.#recipes[i].id === recipe.id) {
this.#recipes[i] = recipe;
}
}
}
}