You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.7 KiB
65 lines
2.7 KiB
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;
|
|
}
|
|
}
|
|
}
|
|
}
|