|
|
import os
|
|
|
import cloudinary
|
|
|
import cloudinary.uploader
|
|
|
from pymongo import MongoClient
|
|
|
from dotenv import load_dotenv
|
|
|
from datetime import datetime
|
|
|
|
|
|
|
|
|
load_dotenv()
|
|
|
|
|
|
|
|
|
cloudinary.config(
|
|
|
cloud_name=os.getenv("CLOUDINARY_CLOUD_NAME"),
|
|
|
api_key=os.getenv("CLOUDINARY_API_KEY"),
|
|
|
api_secret=os.getenv("CLOUDINARY_API_SECRET")
|
|
|
)
|
|
|
|
|
|
|
|
|
MONGO_URI = os.getenv("MONGO_URI")
|
|
|
client = MongoClient(MONGO_URI)
|
|
|
db = client.get_database("face_shape_db")
|
|
|
analyses_collection = db.get_collection("analyses")
|
|
|
|
|
|
def upload_image_to_cloudinary(image_file):
|
|
|
"""Uploads an image file to Cloudinary and returns the secure URL."""
|
|
|
try:
|
|
|
upload_result = cloudinary.uploader.upload(image_file)
|
|
|
return upload_result.get("secure_url")
|
|
|
except Exception as e:
|
|
|
print(f"Error uploading to Cloudinary: {e}")
|
|
|
return None
|
|
|
|
|
|
def save_analysis_to_db(image_url, face_shape, measurements):
|
|
|
"""Saves the analysis results to MongoDB."""
|
|
|
try:
|
|
|
analysis_data = {
|
|
|
"image_url": image_url,
|
|
|
"face_shape": face_shape,
|
|
|
"measurements": measurements,
|
|
|
"created_at": datetime.utcnow()
|
|
|
}
|
|
|
result = analyses_collection.insert_one(analysis_data)
|
|
|
return str(result.inserted_id)
|
|
|
except Exception as e:
|
|
|
print(f"Error saving to MongoDB: {e}")
|
|
|
return None |