rename settings.py to app_config.py

This commit is contained in:
Hayden 2021-01-16 09:07:06 -09:00
commit 710e54f4cc
18 changed files with 79 additions and 31 deletions

1
.gitignore vendored
View file

@ -7,6 +7,7 @@ __pycache__/
docs/site/
mealie/temp/*
mealie/temp/api.html
.temp/
mealie/data/backups/*

View file

@ -3,9 +3,16 @@ from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
import utils.startup as startup
from routes import (backup_routes, meal_routes, migration_routes,
recipe_routes, setting_routes, static_routes, user_routes)
from settings import PORT, PRODUCTION, WEB_PATH, docs_url, redoc_url
from app_config import PORT, PRODUCTION, WEB_PATH, docs_url, redoc_url
from routes import (
backup_routes,
meal_routes,
migration_routes,
recipe_routes,
setting_routes,
static_routes,
user_routes,
)
from utils.api_docs import generate_api_docs
from utils.logger import logger
@ -19,17 +26,25 @@ app = FastAPI(
redoc_url=redoc_url,
)
# Mount Vue Frontend only in production
if PRODUCTION:
def mount_static_files():
app.mount("/static", StaticFiles(directory=WEB_PATH, html=True))
# API Routes
app.include_router(recipe_routes.router)
app.include_router(meal_routes.router)
app.include_router(setting_routes.router)
app.include_router(backup_routes.router)
app.include_router(user_routes.router)
app.include_router(migration_routes.router)
def api_routers():
# First
app.include_router(recipe_routes.router)
app.include_router(meal_routes.router)
app.include_router(setting_routes.router)
app.include_router(backup_routes.router)
app.include_router(user_routes.router)
app.include_router(migration_routes.router)
if PRODUCTION:
mount_static_files()
api_routers()
# API 404 Catch all CALL AFTER ROUTERS
@app.get("/api/{full_path:path}", status_code=404, include_in_schema=False)

View file

@ -20,7 +20,7 @@ DEBUG_DIR = DATA_DIR.joinpath("debug")
MIGRATION_DIR = DATA_DIR.joinpath("migration")
TEMPLATE_DIR = DATA_DIR.joinpath("templates")
TINYDB_DIR = DATA_DIR.joinpath("db")
TEMP_DIR = DATA_DIR.joinpath("temp")
TEMP_DIR = DATA_DIR.joinpath(".temp")
REQUIRED_DIRS = [
DATA_DIR,

Binary file not shown.

View file

@ -2,7 +2,7 @@ import json
from typing import Union
import mongoengine
from settings import USE_MONGO, USE_SQL
from app_config import USE_MONGO, USE_SQL
from sqlalchemy.orm.session import Session
from db.sql.db_session import create_session

View file

@ -1,6 +1,6 @@
from typing import List
from settings import USE_MONGO, USE_SQL
from app_config import USE_MONGO, USE_SQL
from db.db_base import BaseDocument
from db.db_setup import USE_MONGO, USE_SQL

View file

@ -1,4 +1,4 @@
from settings import USE_MONGO, USE_SQL
from app_config import USE_MONGO, USE_SQL
from db.db_base import BaseDocument
from db.mongo.recipe_models import RecipeDocument

View file

@ -1,4 +1,4 @@
from settings import USE_MONGO, USE_SQL
from app_config import USE_MONGO, USE_SQL
from db.db_base import BaseDocument
from db.db_setup import USE_MONGO, USE_SQL

View file

@ -1,4 +1,4 @@
from settings import DATA_DIR, USE_MONGO, USE_SQL
from app_config import DATA_DIR, USE_MONGO, USE_SQL
from db.sql.db_session import globa_init as sql_global_init

View file

@ -1,4 +1,4 @@
from settings import USE_MONGO, USE_SQL
from app_config import USE_MONGO, USE_SQL
from db.db_base import BaseDocument
from db.db_setup import USE_MONGO, USE_SQL

View file

@ -1,5 +1,5 @@
import mongoengine
from settings import DB_HOST, DB_PASSWORD, DB_PORT, DB_USERNAME, MEALIE_DB_NAME
from app_config import DB_HOST, DB_PASSWORD, DB_PORT, DB_USERNAME, MEALIE_DB_NAME
from utils.logger import logger

View file

@ -1,3 +1,4 @@
from datetime import datetime
from typing import List, Optional
from pydantic import BaseModel
@ -16,14 +17,45 @@ class BackupJob(BaseModel):
}
class LocalBackup(BaseModel):
name: str
date: datetime
class Imports(BaseModel):
imports: List[str]
imports: List[LocalBackup]
templates: List[str]
class Config:
schema_extra = {
"example": {
"imports": ["sample_data.zip", "sampe_data2.zip"],
"imports": [
{
"name": "AutoBackup_12-1-2020.zip",
"date": datetime.now(),
}
],
"templates": ["recipes.md", "custom_template.md"],
}
}
class ImportJob(BaseModel):
name: str
recipes: bool
force: bool = False
rebase: bool = False
themes: bool = False
settings: bool = False
class Config:
schema_extra = {
"example": {
"name": "my_local_backup.zip",
"recipes": True,
"force": False,
"rebase": False,
"themes": False,
"settings": False
}
}

View file

@ -7,7 +7,7 @@ from jinja2 import Template
from services.meal_services import MealPlan
from services.recipe_services import Recipe
from services.settings_services import SiteSettings, SiteTheme
from settings import BACKUP_DIR, IMG_DIR, TEMP_DIR, TEMPLATE_DIR
from app_config import BACKUP_DIR, IMG_DIR, TEMP_DIR, TEMPLATE_DIR
from utils.logger import logger

View file

@ -6,7 +6,7 @@ from typing import List
from services.recipe_services import Recipe
from services.settings_services import SiteSettings, SiteTheme
from settings import BACKUP_DIR, IMG_DIR, TEMP_DIR
from app_config import BACKUP_DIR, IMG_DIR, TEMP_DIR
from utils.logger import logger
@ -74,7 +74,6 @@ class ImportDatabase:
recipe_dict = json.loads(f.read())
recipe_dict = ImportDatabase._recipe_migration(recipe_dict)
recipe_obj = Recipe(**recipe_dict)
recipe_obj.save_to_db()
successful_imports.append(recipe.stem)

View file

@ -4,7 +4,7 @@ from pathlib import Path
import git
import yaml
from services.recipe_services import Recipe
from settings import IMG_DIR
from app_config import IMG_DIR
try:
from yaml import CLoader as Loader

View file

@ -6,7 +6,7 @@ from pathlib import Path
from services.recipe_services import Recipe
from services.scrape_services import normalize_data, process_recipe_data
from settings import IMG_DIR, TEMP_DIR
from app_config import IMG_DIR, TEMP_DIR
CWD = Path(__file__).parent
MIGRTAION_DIR = CWD.parent.parent.joinpath("data", "migration")

View file

@ -1,6 +1,6 @@
import json
from settings import BASE_DIR
from app_config import BASE_DIR
"""Script to export the ReDoc documentation page into a standalone HTML file."""
@ -31,10 +31,11 @@ HTML_TEMPLATE = """<!DOCTYPE html>
</html>
"""
out_path = BASE_DIR.joinpath("temp", "index.html")
def generate_api_docs(app):
out_dir = BASE_DIR.joinpath(".temp")
out_dir.mkdir(parents=True, exist_ok=True)
out_path = out_dir.joinpath("index.html")
with open(out_path, "w") as fd:
out_path.parent.mkdir(exist_ok=True)
print(HTML_TEMPLATE % json.dumps(app.openapi()), file=fd)

View file

@ -1,6 +1,6 @@
from pathlib import Path
from settings import REQUIRED_DIRS
from app_config import REQUIRED_DIRS
CWD = Path(__file__).parent