Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 459x 180x 180x 98x 98x 3x 95x 9x 1x | /**
* Meal class. Wraps meal data from TheMealDB API
*
* @module meal
*/
'use strict';
/** Meal class. Wraps data more cleanly for meals obtained from TheMealDB API. */
class Meal {
/**
* Wraps data more cleanly for meals obtained from TheMealDB API
*
* @param mealData {Object} Raw meal data from TheMealDB
*/
constructor(mealData) {
this.name = mealData.strMeal;
this.id = mealData.idMeal;
this.region = mealData.strArea;
this.category = mealData.strCategory;
this.ingredients = getIngredients(mealData);
this.imageUrl = mealData.strMealThumb;
this.tags = mealData.strTags;
this.instructions = mealData.strInstructions;
this.video = mealData.strYoutube;
}
}
/**
* Parse individual ingredients from a meal with the amount needed
*
* @param mealData {Object} Raw meal data from TheMealDB
* @returns {Object} Object where Key: ingredient, Value: amount
*/
function getIngredients(mealData) {
let ingredients = {};
for (const property in mealData) {
if (property.includes("strIngredient")) {
const ingredient = mealData[property];
if (ingredient !== null && typeof ingredient !== "undefined" && ingredient !== "") {
const amountKey = property.replace("strIngredient", "strMeasure");
if (ingredient in ingredients) {
ingredients[ingredient] += ", " + mealData[amountKey];
} else {
ingredients[ingredient] = mealData[amountKey];
}
}
}
}
return ingredients;
}
module.exports = Meal; |