fix: resolve broken imports and argument mismatch in API handlers
- Move utils imports to module-level with try/except for relative (ComfyUI) and absolute (test runner) import contexts in prompts.py. Fixes 500 errors on rating update, prompt save, and prompt edit. - Add missing None for rating parameter in image scan's save_prompt call, which was passing the notes string as rating causing a type comparison error during image scanning.
This commit is contained in:
@@ -1065,6 +1065,7 @@ class AdminRoutesMixin:
|
||||
prompt_text.strip(),
|
||||
"scanned",
|
||||
["auto-scanned"],
|
||||
None,
|
||||
f"Auto-scanned from {os.path.basename(png_file)}",
|
||||
prompt_hash,
|
||||
)
|
||||
|
||||
+19
-14
@@ -5,6 +5,25 @@ import json
|
||||
|
||||
from aiohttp import web
|
||||
|
||||
try:
|
||||
from ...utils.validators import (
|
||||
validate_prompt_text,
|
||||
validate_rating,
|
||||
validate_tags,
|
||||
validate_category,
|
||||
sanitize_input,
|
||||
)
|
||||
from ...utils.hashing import generate_prompt_hash
|
||||
except ImportError:
|
||||
from utils.validators import (
|
||||
validate_prompt_text,
|
||||
validate_rating,
|
||||
validate_tags,
|
||||
validate_category,
|
||||
sanitize_input,
|
||||
)
|
||||
from utils.hashing import generate_prompt_hash
|
||||
|
||||
|
||||
class PromptRoutesMixin:
|
||||
"""Mixin providing prompt-related API endpoints."""
|
||||
@@ -491,14 +510,6 @@ class PromptRoutesMixin:
|
||||
async def save_prompt(self, request):
|
||||
"""Save a new prompt with metadata and duplicate detection."""
|
||||
try:
|
||||
from utils.validators import (
|
||||
validate_prompt_text,
|
||||
validate_rating,
|
||||
validate_tags,
|
||||
validate_category,
|
||||
sanitize_input,
|
||||
)
|
||||
|
||||
data = await request.json()
|
||||
|
||||
text = data.get("text", "").strip()
|
||||
@@ -524,8 +535,6 @@ class PromptRoutesMixin:
|
||||
|
||||
text = sanitize_input(text)
|
||||
|
||||
from utils.hashing import generate_prompt_hash
|
||||
|
||||
prompt_hash = generate_prompt_hash(text)
|
||||
|
||||
existing = await self._run_in_executor(
|
||||
@@ -608,8 +617,6 @@ class PromptRoutesMixin:
|
||||
async def update_prompt(self, request):
|
||||
"""Update prompt text."""
|
||||
try:
|
||||
from utils.validators import validate_prompt_text, sanitize_input
|
||||
|
||||
prompt_id = int(request.match_info["prompt_id"])
|
||||
data = await request.json()
|
||||
new_text = data.get("text", "").strip()
|
||||
@@ -654,8 +661,6 @@ class PromptRoutesMixin:
|
||||
async def update_prompt_rating(self, request):
|
||||
"""Update prompt rating."""
|
||||
try:
|
||||
from utils.validators import validate_rating
|
||||
|
||||
prompt_id = int(request.match_info["prompt_id"])
|
||||
data = await request.json()
|
||||
rating = data.get("rating")
|
||||
|
||||
Reference in New Issue
Block a user