import azure.functions as func
import logging
import json
import random
import string
app = func.FunctionApp(http_auth_level=func.AuthLevel.FUNCTION)
@app.route(route="passGenerate")
def passGenerate(req: func.HttpRequest) -> func.HttpResponse:
logging.info('Password generation function processed a request.')
# Check for an optional 'length' parameter. Default length is 12 if not provided.
try:
length = int(req.params.get("length", 12))
except ValueError:
return func.HttpResponse(
json.dumps({"error": "Invalid length provided. Please enter a number."}),
status_code=400,
mimetype="application/json"
)
# Define the characters allowed in the password and generate a random password.
characters = string.ascii_letters + string.digits + string.punctuation
password = ''.join(random.choice(characters) for _ in range(length))
# Build a JSON formatted response.
response_data = {"password": password}
return func.HttpResponse(
json.dumps(response_data),
status_code=200,
mimetype="application/json"
)