mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-05-24 01:12:54 -04:00
This PR does too many things :( 1. Major refactoring of the dev/scripts and dev/code-generation folders. Primarily this was removing duplicate code and cleaning up some poorly written code snippets as well as making them more idempotent so then can be re-run over and over again but still maintain the same results. This is working on my machine, but I've been having problems in CI and comparing diffs so running generators in CI will have to wait. 2. Re-Implement using the generated api routes for testing This was a _huge_ refactor that touched damn near every test file but now we have auto-generated typed routes with inline hints and it's used for nearly every test excluding a few that use classes for better parameterization. This should greatly reduce errors when writing new tests. 3. Minor Perf improvements for the All Recipes endpoint A. Removed redundant loops B. Uses orjson to do the encoding directly and returns a byte response instead of relying on the default jsonable_encoder. 4. Fix some TS type errors that cropped up for seemingly no reason half way through the PR. See this issue https://github.com/phillipdupuis/pydantic-to-typescript/issues/28 Basically, the generated TS type is not-correct since Pydantic will automatically fill in null fields. The resulting TS type is generated with a ? to indicate it can be null even though we _know_ that i can't be.
400 lines
13 KiB
Python
400 lines
13 KiB
Python
# This Content is Auto Generated for Pytest
|
|
prefix = "/api"
|
|
|
|
admin_about = "/api/admin/about"
|
|
"""`/api/admin/about`"""
|
|
admin_about_check = "/api/admin/about/check"
|
|
"""`/api/admin/about/check`"""
|
|
admin_about_docker_validate = "/api/admin/about/docker/validate"
|
|
"""`/api/admin/about/docker/validate`"""
|
|
admin_about_statistics = "/api/admin/about/statistics"
|
|
"""`/api/admin/about/statistics`"""
|
|
admin_analytics = "/api/admin/analytics"
|
|
"""`/api/admin/analytics`"""
|
|
admin_backups = "/api/admin/backups"
|
|
"""`/api/admin/backups`"""
|
|
admin_backups_upload = "/api/admin/backups/upload"
|
|
"""`/api/admin/backups/upload`"""
|
|
admin_email = "/api/admin/email"
|
|
"""`/api/admin/email`"""
|
|
admin_groups = "/api/admin/groups"
|
|
"""`/api/admin/groups`"""
|
|
admin_logs = "/api/admin/logs"
|
|
"""`/api/admin/logs`"""
|
|
admin_maintenance = "/api/admin/maintenance"
|
|
"""`/api/admin/maintenance`"""
|
|
admin_maintenance_clean_images = "/api/admin/maintenance/clean/images"
|
|
"""`/api/admin/maintenance/clean/images`"""
|
|
admin_maintenance_clean_logs = "/api/admin/maintenance/clean/logs"
|
|
"""`/api/admin/maintenance/clean/logs`"""
|
|
admin_maintenance_clean_recipe_folders = "/api/admin/maintenance/clean/recipe-folders"
|
|
"""`/api/admin/maintenance/clean/recipe-folders`"""
|
|
admin_maintenance_clean_temp = "/api/admin/maintenance/clean/temp"
|
|
"""`/api/admin/maintenance/clean/temp`"""
|
|
admin_maintenance_logs = "/api/admin/maintenance/logs"
|
|
"""`/api/admin/maintenance/logs`"""
|
|
admin_maintenance_storage = "/api/admin/maintenance/storage"
|
|
"""`/api/admin/maintenance/storage`"""
|
|
admin_server_tasks = "/api/admin/server-tasks"
|
|
"""`/api/admin/server-tasks`"""
|
|
admin_users = "/api/admin/users"
|
|
"""`/api/admin/users`"""
|
|
admin_users_unlock = "/api/admin/users/unlock"
|
|
"""`/api/admin/users/unlock`"""
|
|
app_about = "/api/app/about"
|
|
"""`/api/app/about`"""
|
|
auth_refresh = "/api/auth/refresh"
|
|
"""`/api/auth/refresh`"""
|
|
auth_token = "/api/auth/token"
|
|
"""`/api/auth/token`"""
|
|
comments = "/api/comments"
|
|
"""`/api/comments`"""
|
|
foods = "/api/foods"
|
|
"""`/api/foods`"""
|
|
foods_merge = "/api/foods/merge"
|
|
"""`/api/foods/merge`"""
|
|
groups_categories = "/api/groups/categories"
|
|
"""`/api/groups/categories`"""
|
|
groups_cookbooks = "/api/groups/cookbooks"
|
|
"""`/api/groups/cookbooks`"""
|
|
groups_events_notifications = "/api/groups/events/notifications"
|
|
"""`/api/groups/events/notifications`"""
|
|
groups_invitations = "/api/groups/invitations"
|
|
"""`/api/groups/invitations`"""
|
|
groups_invitations_email = "/api/groups/invitations/email"
|
|
"""`/api/groups/invitations/email`"""
|
|
groups_labels = "/api/groups/labels"
|
|
"""`/api/groups/labels`"""
|
|
groups_mealplans = "/api/groups/mealplans"
|
|
"""`/api/groups/mealplans`"""
|
|
groups_mealplans_random = "/api/groups/mealplans/random"
|
|
"""`/api/groups/mealplans/random`"""
|
|
groups_mealplans_rules = "/api/groups/mealplans/rules"
|
|
"""`/api/groups/mealplans/rules`"""
|
|
groups_mealplans_today = "/api/groups/mealplans/today"
|
|
"""`/api/groups/mealplans/today`"""
|
|
groups_members = "/api/groups/members"
|
|
"""`/api/groups/members`"""
|
|
groups_migrations = "/api/groups/migrations"
|
|
"""`/api/groups/migrations`"""
|
|
groups_permissions = "/api/groups/permissions"
|
|
"""`/api/groups/permissions`"""
|
|
groups_preferences = "/api/groups/preferences"
|
|
"""`/api/groups/preferences`"""
|
|
groups_reports = "/api/groups/reports"
|
|
"""`/api/groups/reports`"""
|
|
groups_seeders_foods = "/api/groups/seeders/foods"
|
|
"""`/api/groups/seeders/foods`"""
|
|
groups_seeders_labels = "/api/groups/seeders/labels"
|
|
"""`/api/groups/seeders/labels`"""
|
|
groups_seeders_units = "/api/groups/seeders/units"
|
|
"""`/api/groups/seeders/units`"""
|
|
groups_self = "/api/groups/self"
|
|
"""`/api/groups/self`"""
|
|
groups_shopping_items = "/api/groups/shopping/items"
|
|
"""`/api/groups/shopping/items`"""
|
|
groups_shopping_lists = "/api/groups/shopping/lists"
|
|
"""`/api/groups/shopping/lists`"""
|
|
groups_statistics = "/api/groups/statistics"
|
|
"""`/api/groups/statistics`"""
|
|
groups_storage = "/api/groups/storage"
|
|
"""`/api/groups/storage`"""
|
|
groups_webhooks = "/api/groups/webhooks"
|
|
"""`/api/groups/webhooks`"""
|
|
groups_webhooks_rerun = "/api/groups/webhooks/rerun"
|
|
"""`/api/groups/webhooks/rerun`"""
|
|
media_docker_validate_txt = "/api/media/docker/validate.txt"
|
|
"""`/api/media/docker/validate.txt`"""
|
|
ocr = "/api/ocr/"
|
|
"""`/api/ocr/`"""
|
|
ocr_asset_to_tsv = "/api/ocr/asset-to-tsv"
|
|
"""`/api/ocr/asset-to-tsv`"""
|
|
ocr_file_to_tsv = "/api/ocr/file-to-tsv"
|
|
"""`/api/ocr/file-to-tsv`"""
|
|
organizers_categories = "/api/organizers/categories"
|
|
"""`/api/organizers/categories`"""
|
|
organizers_categories_empty = "/api/organizers/categories/empty"
|
|
"""`/api/organizers/categories/empty`"""
|
|
organizers_tags = "/api/organizers/tags"
|
|
"""`/api/organizers/tags`"""
|
|
organizers_tags_empty = "/api/organizers/tags/empty"
|
|
"""`/api/organizers/tags/empty`"""
|
|
organizers_tools = "/api/organizers/tools"
|
|
"""`/api/organizers/tools`"""
|
|
parser_ingredient = "/api/parser/ingredient"
|
|
"""`/api/parser/ingredient`"""
|
|
parser_ingredients = "/api/parser/ingredients"
|
|
"""`/api/parser/ingredients`"""
|
|
recipes = "/api/recipes"
|
|
"""`/api/recipes`"""
|
|
recipes_bulk_actions_categorize = "/api/recipes/bulk-actions/categorize"
|
|
"""`/api/recipes/bulk-actions/categorize`"""
|
|
recipes_bulk_actions_delete = "/api/recipes/bulk-actions/delete"
|
|
"""`/api/recipes/bulk-actions/delete`"""
|
|
recipes_bulk_actions_export = "/api/recipes/bulk-actions/export"
|
|
"""`/api/recipes/bulk-actions/export`"""
|
|
recipes_bulk_actions_export_download = "/api/recipes/bulk-actions/export/download"
|
|
"""`/api/recipes/bulk-actions/export/download`"""
|
|
recipes_bulk_actions_export_purge = "/api/recipes/bulk-actions/export/purge"
|
|
"""`/api/recipes/bulk-actions/export/purge`"""
|
|
recipes_bulk_actions_settings = "/api/recipes/bulk-actions/settings"
|
|
"""`/api/recipes/bulk-actions/settings`"""
|
|
recipes_bulk_actions_tag = "/api/recipes/bulk-actions/tag"
|
|
"""`/api/recipes/bulk-actions/tag`"""
|
|
recipes_create_from_zip = "/api/recipes/create-from-zip"
|
|
"""`/api/recipes/create-from-zip`"""
|
|
recipes_create_ocr = "/api/recipes/create-ocr"
|
|
"""`/api/recipes/create-ocr`"""
|
|
recipes_create_url = "/api/recipes/create-url"
|
|
"""`/api/recipes/create-url`"""
|
|
recipes_create_url_bulk = "/api/recipes/create-url/bulk"
|
|
"""`/api/recipes/create-url/bulk`"""
|
|
recipes_exports = "/api/recipes/exports"
|
|
"""`/api/recipes/exports`"""
|
|
recipes_summary_uncategorized = "/api/recipes/summary/uncategorized"
|
|
"""`/api/recipes/summary/uncategorized`"""
|
|
recipes_summary_untagged = "/api/recipes/summary/untagged"
|
|
"""`/api/recipes/summary/untagged`"""
|
|
recipes_test_scrape_url = "/api/recipes/test-scrape-url"
|
|
"""`/api/recipes/test-scrape-url`"""
|
|
shared_recipes = "/api/shared/recipes"
|
|
"""`/api/shared/recipes`"""
|
|
units = "/api/units"
|
|
"""`/api/units`"""
|
|
units_merge = "/api/units/merge"
|
|
"""`/api/units/merge`"""
|
|
users = "/api/users"
|
|
"""`/api/users`"""
|
|
users_api_tokens = "/api/users/api-tokens"
|
|
"""`/api/users/api-tokens`"""
|
|
users_forgot_password = "/api/users/forgot-password"
|
|
"""`/api/users/forgot-password`"""
|
|
users_password = "/api/users/password"
|
|
"""`/api/users/password`"""
|
|
users_register = "/api/users/register"
|
|
"""`/api/users/register`"""
|
|
users_reset_password = "/api/users/reset-password"
|
|
"""`/api/users/reset-password`"""
|
|
users_self = "/api/users/self"
|
|
"""`/api/users/self`"""
|
|
utils_download = "/api/utils/download"
|
|
"""`/api/utils/download`"""
|
|
validators_group = "/api/validators/group"
|
|
"""`/api/validators/group`"""
|
|
validators_recipe = "/api/validators/recipe"
|
|
"""`/api/validators/recipe`"""
|
|
validators_user_email = "/api/validators/user/email"
|
|
"""`/api/validators/user/email`"""
|
|
validators_user_name = "/api/validators/user/name"
|
|
"""`/api/validators/user/name`"""
|
|
|
|
|
|
def admin_backups_file_name(file_name):
|
|
"""`/api/admin/backups/{file_name}`"""
|
|
return f"{prefix}/admin/backups/{file_name}"
|
|
|
|
|
|
def admin_backups_file_name_restore(file_name):
|
|
"""`/api/admin/backups/{file_name}/restore`"""
|
|
return f"{prefix}/admin/backups/{file_name}/restore"
|
|
|
|
|
|
def admin_groups_item_id(item_id):
|
|
"""`/api/admin/groups/{item_id}`"""
|
|
return f"{prefix}/admin/groups/{item_id}"
|
|
|
|
|
|
def admin_logs_num(num):
|
|
"""`/api/admin/logs/{num}`"""
|
|
return f"{prefix}/admin/logs/{num}"
|
|
|
|
|
|
def admin_users_item_id(item_id):
|
|
"""`/api/admin/users/{item_id}`"""
|
|
return f"{prefix}/admin/users/{item_id}"
|
|
|
|
|
|
def comments_item_id(item_id):
|
|
"""`/api/comments/{item_id}`"""
|
|
return f"{prefix}/comments/{item_id}"
|
|
|
|
|
|
def explore_recipes_group_id_recipe_slug(group_id, recipe_slug):
|
|
"""`/api/explore/recipes/{group_id}/{recipe_slug}`"""
|
|
return f"{prefix}/explore/recipes/{group_id}/{recipe_slug}"
|
|
|
|
|
|
def foods_item_id(item_id):
|
|
"""`/api/foods/{item_id}`"""
|
|
return f"{prefix}/foods/{item_id}"
|
|
|
|
|
|
def groups_cookbooks_item_id(item_id):
|
|
"""`/api/groups/cookbooks/{item_id}`"""
|
|
return f"{prefix}/groups/cookbooks/{item_id}"
|
|
|
|
|
|
def groups_events_notifications_item_id(item_id):
|
|
"""`/api/groups/events/notifications/{item_id}`"""
|
|
return f"{prefix}/groups/events/notifications/{item_id}"
|
|
|
|
|
|
def groups_events_notifications_item_id_test(item_id):
|
|
"""`/api/groups/events/notifications/{item_id}/test`"""
|
|
return f"{prefix}/groups/events/notifications/{item_id}/test"
|
|
|
|
|
|
def groups_labels_item_id(item_id):
|
|
"""`/api/groups/labels/{item_id}`"""
|
|
return f"{prefix}/groups/labels/{item_id}"
|
|
|
|
|
|
def groups_mealplans_item_id(item_id):
|
|
"""`/api/groups/mealplans/{item_id}`"""
|
|
return f"{prefix}/groups/mealplans/{item_id}"
|
|
|
|
|
|
def groups_mealplans_rules_item_id(item_id):
|
|
"""`/api/groups/mealplans/rules/{item_id}`"""
|
|
return f"{prefix}/groups/mealplans/rules/{item_id}"
|
|
|
|
|
|
def groups_reports_item_id(item_id):
|
|
"""`/api/groups/reports/{item_id}`"""
|
|
return f"{prefix}/groups/reports/{item_id}"
|
|
|
|
|
|
def groups_shopping_items_item_id(item_id):
|
|
"""`/api/groups/shopping/items/{item_id}`"""
|
|
return f"{prefix}/groups/shopping/items/{item_id}"
|
|
|
|
|
|
def groups_shopping_lists_item_id(item_id):
|
|
"""`/api/groups/shopping/lists/{item_id}`"""
|
|
return f"{prefix}/groups/shopping/lists/{item_id}"
|
|
|
|
|
|
def groups_shopping_lists_item_id_recipe_recipe_id(item_id, recipe_id):
|
|
"""`/api/groups/shopping/lists/{item_id}/recipe/{recipe_id}`"""
|
|
return f"{prefix}/groups/shopping/lists/{item_id}/recipe/{recipe_id}"
|
|
|
|
|
|
def groups_webhooks_item_id(item_id):
|
|
"""`/api/groups/webhooks/{item_id}`"""
|
|
return f"{prefix}/groups/webhooks/{item_id}"
|
|
|
|
|
|
def media_recipes_recipe_id_assets_file_name(recipe_id, file_name):
|
|
"""`/api/media/recipes/{recipe_id}/assets/{file_name}`"""
|
|
return f"{prefix}/media/recipes/{recipe_id}/assets/{file_name}"
|
|
|
|
|
|
def media_recipes_recipe_id_images_file_name(recipe_id, file_name):
|
|
"""`/api/media/recipes/{recipe_id}/images/{file_name}`"""
|
|
return f"{prefix}/media/recipes/{recipe_id}/images/{file_name}"
|
|
|
|
|
|
def media_users_user_id_file_name(user_id, file_name):
|
|
"""`/api/media/users/{user_id}/{file_name}`"""
|
|
return f"{prefix}/media/users/{user_id}/{file_name}"
|
|
|
|
|
|
def organizers_categories_item_id(item_id):
|
|
"""`/api/organizers/categories/{item_id}`"""
|
|
return f"{prefix}/organizers/categories/{item_id}"
|
|
|
|
|
|
def organizers_categories_slug_category_slug(category_slug):
|
|
"""`/api/organizers/categories/slug/{category_slug}`"""
|
|
return f"{prefix}/organizers/categories/slug/{category_slug}"
|
|
|
|
|
|
def organizers_tags_item_id(item_id):
|
|
"""`/api/organizers/tags/{item_id}`"""
|
|
return f"{prefix}/organizers/tags/{item_id}"
|
|
|
|
|
|
def organizers_tags_slug_tag_slug(tag_slug):
|
|
"""`/api/organizers/tags/slug/{tag_slug}`"""
|
|
return f"{prefix}/organizers/tags/slug/{tag_slug}"
|
|
|
|
|
|
def organizers_tools_item_id(item_id):
|
|
"""`/api/organizers/tools/{item_id}`"""
|
|
return f"{prefix}/organizers/tools/{item_id}"
|
|
|
|
|
|
def organizers_tools_slug_tool_slug(tool_slug):
|
|
"""`/api/organizers/tools/slug/{tool_slug}`"""
|
|
return f"{prefix}/organizers/tools/slug/{tool_slug}"
|
|
|
|
|
|
def recipes_shared_token_id(token_id):
|
|
"""`/api/recipes/shared/{token_id}`"""
|
|
return f"{prefix}/recipes/shared/{token_id}"
|
|
|
|
|
|
def recipes_slug(slug):
|
|
"""`/api/recipes/{slug}`"""
|
|
return f"{prefix}/recipes/{slug}"
|
|
|
|
|
|
def recipes_slug_assets(slug):
|
|
"""`/api/recipes/{slug}/assets`"""
|
|
return f"{prefix}/recipes/{slug}/assets"
|
|
|
|
|
|
def recipes_slug_comments(slug):
|
|
"""`/api/recipes/{slug}/comments`"""
|
|
return f"{prefix}/recipes/{slug}/comments"
|
|
|
|
|
|
def recipes_slug_exports(slug):
|
|
"""`/api/recipes/{slug}/exports`"""
|
|
return f"{prefix}/recipes/{slug}/exports"
|
|
|
|
|
|
def recipes_slug_exports_zip(slug):
|
|
"""`/api/recipes/{slug}/exports/zip`"""
|
|
return f"{prefix}/recipes/{slug}/exports/zip"
|
|
|
|
|
|
def recipes_slug_image(slug):
|
|
"""`/api/recipes/{slug}/image`"""
|
|
return f"{prefix}/recipes/{slug}/image"
|
|
|
|
|
|
def shared_recipes_item_id(item_id):
|
|
"""`/api/shared/recipes/{item_id}`"""
|
|
return f"{prefix}/shared/recipes/{item_id}"
|
|
|
|
|
|
def units_item_id(item_id):
|
|
"""`/api/units/{item_id}`"""
|
|
return f"{prefix}/units/{item_id}"
|
|
|
|
|
|
def users_api_tokens_token_id(token_id):
|
|
"""`/api/users/api-tokens/{token_id}`"""
|
|
return f"{prefix}/users/api-tokens/{token_id}"
|
|
|
|
|
|
def users_id_favorites(id):
|
|
"""`/api/users/{id}/favorites`"""
|
|
return f"{prefix}/users/{id}/favorites"
|
|
|
|
|
|
def users_id_favorites_slug(id, slug):
|
|
"""`/api/users/{id}/favorites/{slug}`"""
|
|
return f"{prefix}/users/{id}/favorites/{slug}"
|
|
|
|
|
|
def users_id_image(id):
|
|
"""`/api/users/{id}/image`"""
|
|
return f"{prefix}/users/{id}/image"
|
|
|
|
|
|
def users_item_id(item_id):
|
|
"""`/api/users/{item_id}`"""
|
|
return f"{prefix}/users/{item_id}"
|