import {StoccaTreDbConn, WithoutId} from "../../database.ts"; import {IngredientModel} from "./IngredientModel.ts"; export default class IngredientCollection { private dbConnection: StoccaTreDbConn; private mapById: Map = new Map(); private allGotten = false; constructor(database: StoccaTreDbConn) { this.dbConnection = database; } async addIngredient(ingredient: WithoutId): Promise { const result = await this.dbConnection.query( `INSERT INTO ingredients (id, name, displayName, displayNameDE) VALUES (NULL, '${ingredient.name}', '${ingredient.displayName}', '${ingredient.displayNameDE}');` ); return result; } async getAllIngredients(): Promise>> { if (!this.allGotten) { const result = await this.dbConnection.query("SELECT * FROM ingredients"); if (result.just) { result.just.forEach((ingredient) => this.mapById.set(ingredient.id, ingredient)); } else { return result; } this.allGotten = true; } return { just: this.mapById.values(), error: null, }; } }