Spaces:
No application file
No application file
from flask import Blueprint, jsonify, make_response, request | |
from models import APIKey, BotList, db | |
dashboard_bp = Blueprint("dashboard", __name__) | |
# Set Open AI Key | |
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 | |
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 | |
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 | |
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 | |
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) | |