INNER CODE UNIT · Python
analyze_api
stanfrbd/cyberbro · app.py:412
def analyze_api() -> tuple[Response, int]:
"""Handle the analyze request via API with caching and hashing."""
data: dict = request.get_json()
form_data: str = ioc_fanger.fang(data.get("text", ""))
selected_engines: list[str] = data.get("engines", [])
ignore_cache: bool = data.get("ignore_cache", False)
# Generate a secure hash for form data and engines using SHA-256
combined_data: str = f"{form_data}|{','.join(selected_engines)}"
cache_key: str = f"api-analyze-{hashlib.sha256(combined_data.encode('utf-8')).hexdigest()}"
if not ignore_cache:
# Check cache
cached_result: str | None = cache.get(cache_key)
if cached_result:
logger.debug(f"Cache hit: {cache_key}")
logger.debug(f"Cached result: {cached_result}")
return jsonify(cached_result), 200