* file structure

* auto-test

* take 2

* refactor ap scheduler and startup process

* fixed scraper error

* database abstraction

* database abstraction

* port recipes over to new schema

* meal migration

* start settings migration

* finale mongo port

* backup improvements

* migration imports to new DB structure

* unused import cleanup

* docs strings

* settings and theme import logic

* cleanup

* fixed tinydb error

* requirements

* fuzzy search

* remove scratch file

* sqlalchemy models

* improved search ui

* recipe models almost done

* sql modal population

* del scratch

* rewrite database model mixins

* mostly grabage

* recipe updates

* working sqllite

* remove old files and reorganize

* final cleanup

Co-authored-by: Hayden <hay-kot@pm.me>
This commit is contained in:
Hayden
2021-01-15 21:46:35 -09:00
committed by GitHub
parent 5f25b2492e
commit 25988836c0
104 changed files with 4307 additions and 731 deletions

View File

@@ -1,99 +1,91 @@
from typing import List
from db.mongo_setup import global_init
from fastapi import APIRouter, HTTPException
from services.scheduler_services import Scheduler, post_webhooks
from services.scheduler_services import post_webhooks
from services.settings_services import SiteSettings, SiteTheme
from utils.global_scheduler import scheduler
from utils.snackbar import SnackResponse
router = APIRouter()
global_init()
scheduler = Scheduler()
scheduler.startup_scheduler()
@router.get("/api/site-settings/", tags=["Settings"])
async def get_main_settings():
def get_main_settings():
""" Returns basic site settings """
return SiteSettings.get_site_settings()
@router.post("/api/site-settings/webhooks/test/", tags=["Settings"])
async def test_webhooks():
def test_webhooks():
""" Run the function to test your webhooks """
return post_webhooks()
@router.post("/api/site-settings/update/", tags=["Settings"])
async def update_settings(data: SiteSettings):
def update_settings(data: SiteSettings):
""" Returns Site Settings """
try:
data.update()
except:
raise HTTPException(
status_code=400, detail=SnackResponse.error("Unable to Save Settings")
)
data.update()
# try:
# data.update()
# except:
# raise HTTPException(
# status_code=400, detail=SnackResponse.error("Unable to Save Settings")
# )
scheduler.reschedule_webhooks()
return SnackResponse.success("Settings Updated")
@router.get(
"/api/site-settings/themes/", tags=["Themes"]
)
async def get_all_themes():
@router.get("/api/site-settings/themes/", tags=["Themes"])
def get_all_themes():
""" Returns all site themes """
return SiteTheme.get_all()
@router.get(
"/api/site-settings/themes/{theme_name}/", tags=["Themes"]
)
async def get_single_theme(theme_name: str):
@router.get("/api/site-settings/themes/{theme_name}/", tags=["Themes"])
def get_single_theme(theme_name: str):
""" Returns a named theme """
return SiteTheme.get_by_name(theme_name)
@router.post("/api/site-settings/themes/create/", tags=["Themes"])
async def create_theme(data: SiteTheme):
def create_theme(data: SiteTheme):
""" Creates a site color theme database entry """
try:
data.save_to_db()
except:
raise HTTPException(
status_code=400, detail=SnackResponse.error("Unable to Save Theme")
)
data.save_to_db()
# try:
# data.save_to_db()
# except:
# raise HTTPException(
# status_code=400, detail=SnackResponse.error("Unable to Save Theme")
# )
return SnackResponse.success("Theme Saved")
@router.post("/api/site-settings/themes/{theme_name}/update/", tags=["Themes"])
async def update_theme(theme_name: str, data: SiteTheme):
def update_theme(theme_name: str, data: SiteTheme):
""" Update a theme database entry """
try:
data.update_document()
except:
raise HTTPException(
status_code=400, detail=SnackResponse.error("Unable to Update Theme")
)
data.update_document()
# try:
# except:
# raise HTTPException(
# status_code=400, detail=SnackResponse.error("Unable to Update Theme")
# )
return SnackResponse.success("Theme Updated")
@router.delete("/api/site-settings/themes/{theme_name}/delete/", tags=["Themes"])
async def delete_theme(theme_name: str):
def delete_theme(theme_name: str):
""" Deletes theme from the database """
try:
SiteTheme.delete_theme(theme_name)
except:
raise HTTPException(
status_code=400, detail=SnackResponse.error("Unable to Delete Theme")
)
SiteTheme.delete_theme(theme_name)
# try:
# SiteTheme.delete_theme(theme_name)
# except:
# raise HTTPException(
# status_code=400, detail=SnackResponse.error("Unable to Delete Theme")
# )
return SnackResponse.success("Theme Deleted")