73 lines
2.1 KiB
Python
73 lines
2.1 KiB
Python
from flask import Blueprint, jsonify, make_response, request
|
|
from models import APIKey, BotList, db
|
|
|
|
dashboard_bp = Blueprint("dashboard", __name__)
|
|
|
|
|
|
# Set Open AI Key
|
|
@dashboard_bp.route("/api/set_key", methods=["POST"])
|
|
def set_key():
|
|
data = request.get_json()
|
|
api_key = data["openAIKey"]
|
|
existing_key = APIKey.query.first()
|
|
if existing_key:
|
|
existing_key.key = api_key
|
|
else:
|
|
new_key = APIKey(key=api_key)
|
|
db.session.add(new_key)
|
|
db.session.commit()
|
|
return make_response(jsonify(message="API key saved successfully"), 200)
|
|
|
|
|
|
# Check OpenAI Key
|
|
@dashboard_bp.route("/api/check_key", methods=["GET"])
|
|
def check_key():
|
|
existing_key = APIKey.query.first()
|
|
if existing_key:
|
|
return make_response(jsonify(status="ok", message="OpenAI Key exists"), 200)
|
|
else:
|
|
return make_response(jsonify(status="fail", message="No OpenAI Key present"), 200)
|
|
|
|
|
|
# Create a bot
|
|
@dashboard_bp.route("/api/create_bot", methods=["POST"])
|
|
def create_bot():
|
|
data = request.get_json()
|
|
name = data["name"]
|
|
slug = name.lower().replace(" ", "_")
|
|
existing_bot = BotList.query.filter_by(slug=slug).first()
|
|
if existing_bot:
|
|
return (make_response(jsonify(message="Bot already exists"), 400),)
|
|
new_bot = BotList(name=name, slug=slug)
|
|
db.session.add(new_bot)
|
|
db.session.commit()
|
|
return make_response(jsonify(message="Bot created successfully"), 200)
|
|
|
|
|
|
# Delete a bot
|
|
@dashboard_bp.route("/api/delete_bot", methods=["POST"])
|
|
def delete_bot():
|
|
data = request.get_json()
|
|
slug = data.get("slug")
|
|
bot = BotList.query.filter_by(slug=slug).first()
|
|
if bot:
|
|
db.session.delete(bot)
|
|
db.session.commit()
|
|
return make_response(jsonify(message="Bot deleted successfully"), 200)
|
|
return make_response(jsonify(message="Bot not found"), 400)
|
|
|
|
|
|
# Get the list of bots
|
|
@dashboard_bp.route("/api/get_bots", methods=["GET"])
|
|
def get_bots():
|
|
bots = BotList.query.all()
|
|
bot_list = []
|
|
for bot in bots:
|
|
bot_list.append(
|
|
{
|
|
"name": bot.name,
|
|
"slug": bot.slug,
|
|
}
|
|
)
|
|
return jsonify(bot_list)
|