from flask import Flask, request, jsonify app = Flask(__name__) # Database to store user progress and information users = {} def validate_user(name, contact): """Validate if user already exists or create a new entry.""" if contact not in users: users[contact] = { "name": name, "contact": contact, "progress": {f"game_{i+1}": False for i in range(10)}, "completed": 0 } return users[contact] @app.route("/register", methods=["POST"]) def register_user(): data = request.json name = data.get("name") contact = data.get("contact") if not name or not contact: return jsonify({"error": "Name and contact are required."}), 400 user = validate_user(name, contact) return jsonify({"message": "User registered successfully.", "user": user}), 200 @app.route("/update_progress", methods=["POST"]) def update_progress(): data = request.json contact = data.get("contact") game_id = data.get("game_id") if not contact or not game_id: return jsonify({"error": "Contact and game ID are required."}), 400 if contact not in users: return jsonify({"error": "User not found."}), 404 user = users[contact] if game_id not in user["progress"]: return jsonify({"error": "Invalid game ID."}), 400 if not user["progress"][game_id]: user["progress"][game_id] = True user["completed"] += 1 return jsonify({"message": "Progress updated successfully.", "user": user}), 200 @app.route("/validate", methods=["GET"]) def validate_user_progress(): contact = request.args.get("contact") if not contact: return jsonify({"error": "Contact is required."}), 400 if contact not in users: return jsonify({"error": "User not found."}), 404 user = users[contact] return jsonify({"user": user}), 200 @app.route("/redeem", methods=["POST"]) def redeem_gift(): data = request.json contact = data.get("contact") if not contact: return jsonify({"error": "Contact is required."}), 400 if contact not in users: return jsonify({"error": "User not found."}), 404 user = users[contact] if user["completed"] >= 5: # Adjust the threshold for gift redemption return jsonify({"message": "Gift redeemed successfully!", "user": user}), 200 return jsonify({"error": "Not enough games completed for redemption."}), 400 if __name__ == "__main__": app.run(debug=True)