Timeout before sending + fix api
This commit is contained in:
@@ -6,7 +6,7 @@ import json
|
||||
|
||||
EDAMAM_APP_ID__FOOD = os.getenv("EDAMAM_APP_ID__FOOD", None)
|
||||
EDAMAM_APP_KEY__FOOD = os.getenv("EDAMAM_APP_KEY__FOOD", None)
|
||||
SAVE_EDAMAM_API_TOKEN = os.getenv("SAVE_EDAMAM_API_TOKEN", False)
|
||||
SAVEUP_EDAMAM_API_TOKEN = os.getenv("SAVEUP_EDAMAM_API_TOKEN", False)
|
||||
|
||||
class EdamamAPI:
|
||||
"""Wrapper around Edamam Food Database API 2.0 (Vision & Nutrients)"""
|
||||
@@ -17,7 +17,7 @@ class EdamamAPI:
|
||||
pass
|
||||
|
||||
def analyze_dish_image(self, image_file_path: str):
|
||||
if SAVE_EDAMAM_API_TOKEN:
|
||||
if SAVEUP_EDAMAM_API_TOKEN:
|
||||
time.sleep(3)
|
||||
return json.loads("""
|
||||
{
|
||||
|
||||
+12
-2
@@ -3,6 +3,7 @@ import base64
|
||||
import uuid
|
||||
import datetime
|
||||
import sys
|
||||
import json
|
||||
from flask import Flask, request, jsonify
|
||||
from pymongo import MongoClient
|
||||
from APIs import generate, EdamamAPI
|
||||
@@ -112,14 +113,23 @@ def cooking_params():
|
||||
def telemetry():
|
||||
data = request.get_json()
|
||||
|
||||
if not data:
|
||||
if data is None:
|
||||
return jsonify({"error": "Invalid or missing JSON payload"}), 400
|
||||
|
||||
# If the payload was double-encoded as a string, deserialize it
|
||||
if isinstance(data, str):
|
||||
try:
|
||||
data = json.loads(data)
|
||||
except (json.JSONDecodeError, TypeError):
|
||||
return jsonify({"error": "String payload could not be parsed as JSON"}), 400
|
||||
|
||||
if not isinstance(data, dict):
|
||||
return jsonify({"error": "Expected a JSON object/dictionary"}), 400
|
||||
|
||||
# Stamp UTC timestamp for Node-RED queries
|
||||
data["received_at"] = datetime.datetime.now(datetime.timezone.utc).isoformat()
|
||||
|
||||
try:
|
||||
# Mongo creates '_id' automatically upon insertion
|
||||
telemetry_collection.insert_one(data)
|
||||
return jsonify({"status": "success", "message": "Telemetry saved"}), 200
|
||||
|
||||
|
||||
Reference in New Issue
Block a user