+
+
+ mdi-plus
+
+
+
+
+
+ mdi-tag
+
+
+
+ Create a Category
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t("general.cancel") }}
+
+
+ {{ $t("general.create") }}
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mealie/db/models/recipe/category.py b/mealie/db/models/recipe/category.py
index 8112fad0d..4e68baa54 100644
--- a/mealie/db/models/recipe/category.py
+++ b/mealie/db/models/recipe/category.py
@@ -1,7 +1,7 @@
import sqlalchemy as sa
import sqlalchemy.orm as orm
-from mealie.db.models.model_base import SqlAlchemyBase
from fastapi.logger import logger
+from mealie.db.models.model_base import SqlAlchemyBase
from slugify import slugify
from sqlalchemy.orm import validates
@@ -46,7 +46,7 @@ class Category(SqlAlchemyBase):
assert name != ""
return name
- def __init__(self, name) -> None:
+ def __init__(self, name, session=None) -> None:
self.name = name.strip()
self.slug = slugify(name)
diff --git a/mealie/routes/recipe/category_routes.py b/mealie/routes/recipe/category_routes.py
index 5d1feeb8b..043bfca9d 100644
--- a/mealie/routes/recipe/category_routes.py
+++ b/mealie/routes/recipe/category_routes.py
@@ -2,7 +2,7 @@ from fastapi import APIRouter, Depends
from mealie.db.database import db
from mealie.db.db_setup import generate_session
from mealie.routes.deps import get_current_user
-from mealie.schema.category import RecipeCategoryResponse
+from mealie.schema.category import CategoryIn, RecipeCategoryResponse
from mealie.schema.snackbar import SnackResponse
from sqlalchemy.orm.session import Session
@@ -18,6 +18,15 @@ async def get_all_recipe_categories(session: Session = Depends(generate_session)
return db.categories.get_all_limit_columns(session, ["slug", "name"])
+@router.post("")
+async def create_recipe_category(
+ category: CategoryIn, session: Session = Depends(generate_session), current_user=Depends(get_current_user)
+):
+ """ Creates a Category in the database """
+
+ return db.categories.create(session, category.dict())
+
+
@router.get("/{category}", response_model=RecipeCategoryResponse)
def get_all_recipes_by_category(category: str, session: Session = Depends(generate_session)):
""" Returns a list of recipes associated with the provided category. """
diff --git a/mealie/schema/category.py b/mealie/schema/category.py
index b15785769..3e8635152 100644
--- a/mealie/schema/category.py
+++ b/mealie/schema/category.py
@@ -1,13 +1,15 @@
from typing import List, Optional
from fastapi_camelcase import CamelModel
-
from mealie.schema.recipe import Recipe
-class CategoryBase(CamelModel):
- id: int
+class CategoryIn(CamelModel):
name: str
+
+
+class CategoryBase(CategoryIn):
+ id: int
slug: str
class Config: