image cad area size
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
from flask import Flask, request, jsonify
|
||||
from flask_cors import CORS
|
||||
import traceback
|
||||
|
||||
from cad_vector_area import calculate_pdf_vector_area
|
||||
|
||||
app = Flask(__name__)
|
||||
CORS(app)
|
||||
|
||||
|
||||
@app.route("/health", methods=["GET"])
|
||||
def health():
|
||||
return jsonify({
|
||||
"success": True,
|
||||
"message": "Python CAD Area service is running"
|
||||
})
|
||||
|
||||
|
||||
@app.route("/calculate", methods=["POST"])
|
||||
def calculate():
|
||||
try:
|
||||
if "file" not in request.files:
|
||||
return jsonify({
|
||||
"success": False,
|
||||
"message": "No PDF file received"
|
||||
}), 400
|
||||
|
||||
uploaded_file = request.files["file"]
|
||||
|
||||
if uploaded_file.filename == "":
|
||||
return jsonify({
|
||||
"success": False,
|
||||
"message": "Empty filename"
|
||||
}), 400
|
||||
|
||||
if not uploaded_file.filename.lower().endswith(".pdf"):
|
||||
return jsonify({
|
||||
"success": False,
|
||||
"message": "Only PDF files are allowed"
|
||||
}), 400
|
||||
|
||||
pdf_bytes = uploaded_file.read()
|
||||
|
||||
scale_ratio = request.form.get("scale_ratio", "1")
|
||||
|
||||
try:
|
||||
scale_ratio = float(scale_ratio)
|
||||
if scale_ratio <= 0:
|
||||
scale_ratio = 1.0
|
||||
except ValueError:
|
||||
scale_ratio = 1.0
|
||||
|
||||
result = calculate_pdf_vector_area(
|
||||
pdf_bytes=pdf_bytes,
|
||||
filename=uploaded_file.filename,
|
||||
scale_ratio=scale_ratio
|
||||
)
|
||||
|
||||
status_code = 200 if result.get("success") else 422
|
||||
|
||||
return jsonify(result), status_code
|
||||
|
||||
except Exception as e:
|
||||
return jsonify({
|
||||
"success": False,
|
||||
"message": str(e),
|
||||
"trace": traceback.format_exc()
|
||||
}), 500
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
app.run(
|
||||
host="127.0.0.1",
|
||||
port=5055,
|
||||
debug=True
|
||||
)
|
||||
Reference in New Issue
Block a user