feat: Add Discord routes and configuration for bot key validation
This commit is contained in:
parent
df2242ea44
commit
e09463b59c
5 changed files with 41 additions and 1 deletions
|
|
@ -10,6 +10,9 @@ class Config:
|
||||||
JWT_KEY = os.getenv('JWT_KEY')
|
JWT_KEY = os.getenv('JWT_KEY')
|
||||||
JWT_EXPIRE = int(os.getenv('JWT_EXPIRATION', 30))
|
JWT_EXPIRE = int(os.getenv('JWT_EXPIRATION', 30))
|
||||||
|
|
||||||
|
# Gets the Key to ensure discord bot requests are being done by the discord bot
|
||||||
|
BOT_KEY = os.getenv('BOT_KEY')
|
||||||
|
|
||||||
# Database
|
# Database
|
||||||
DB_HOST = os.getenv('DB_HOST')
|
DB_HOST = os.getenv('DB_HOST')
|
||||||
DB_USER = os.getenv('DB_USER')
|
DB_USER = os.getenv('DB_USER')
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,10 @@ def create_app(config_class=Config):
|
||||||
from .routes.auth_routes import auth_bp
|
from .routes.auth_routes import auth_bp
|
||||||
from .routes.transaction_routes import transactions_bp
|
from .routes.transaction_routes import transactions_bp
|
||||||
from .routes.admin_routes import admin_bp
|
from .routes.admin_routes import admin_bp
|
||||||
|
from .routes.discord_routes import discord_bp
|
||||||
app.register_blueprint(auth_bp)
|
app.register_blueprint(auth_bp)
|
||||||
app.register_blueprint(transactions_bp)
|
app.register_blueprint(transactions_bp)
|
||||||
app.register_blueprint(admin_bp, url_prefix='/admin')
|
app.register_blueprint(admin_bp, url_prefix='/admin')
|
||||||
|
app.register_blueprint(discord_bp, url_prefix='/discord')
|
||||||
|
|
||||||
return app
|
return app
|
||||||
|
|
@ -41,3 +41,12 @@ def token_gen(bid):
|
||||||
jwt_key,
|
jwt_key,
|
||||||
algorithm="HS256")
|
algorithm="HS256")
|
||||||
return token
|
return token
|
||||||
|
|
||||||
|
def bot_key(input_key):
|
||||||
|
bot_key = current_app.config['BOT_KEY']
|
||||||
|
if input_key != bot_key:
|
||||||
|
return False
|
||||||
|
if input_key == bot_key: # Extra Security which doesnt actually add anything but peace of mind.
|
||||||
|
return True
|
||||||
|
return "OhShit" # This should never happen??
|
||||||
|
# I dont think I should be a programmer, I dont even understand python and prefer golang or java or C#. ANYTHING THAT HAS {}
|
||||||
26
interbend/routes/discord_routes.py
Normal file
26
interbend/routes/discord_routes.py
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
from flask import Blueprint, make_response
|
||||||
|
from interbend.db import db, get_user
|
||||||
|
from interbend.auth import *
|
||||||
|
import mysql.connector
|
||||||
|
from werkzeug.security import generate_password_hash, check_password_hash
|
||||||
|
|
||||||
|
discord_bp = Blueprint('discord_bp', __name__)
|
||||||
|
|
||||||
|
@discord_bp.route('/register-id', methods=['POST'])
|
||||||
|
def register_id():
|
||||||
|
data = request.get_json()
|
||||||
|
bid = data.get('bid')
|
||||||
|
name = data.get('name')
|
||||||
|
origin = data.get('origin')
|
||||||
|
age = data.get('age')
|
||||||
|
gender = data.get('gender')
|
||||||
|
bot_key2 = data.get('bot_key')
|
||||||
|
if bot_key2 != current_app.config['BOT_KEY']:
|
||||||
|
return jsonify({"error": "Unauthorized"}), 401
|
||||||
|
if not bid or not name or not origin or not age or not gender:
|
||||||
|
return jsonify({"error": "BID, name, origin, age, and gender are required"}), 400
|
||||||
|
user = get_user(bid)
|
||||||
|
if not user:
|
||||||
|
return jsonify({"error": "User is not registered"}), 404
|
||||||
|
# Should the user be automatically registered here?
|
||||||
|
return jsonify({"error": "Method not implemented"}), 501
|
||||||
Loading…
Add table
Add a link
Reference in a new issue