71 lines
2.8 KiB
TypeScript
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;
|
|
}
|
|
}
|
|
}
|
|
}
|