KemoFureApi/modules/Archive/endpoints/command.py

38 lines
1.4 KiB
Python

from __future__ import annotations
from flask_restful import Resource
from flask import current_app as app, request
from typing import TYPE_CHECKING
import hashlib
if TYPE_CHECKING:
from modules.Archive.database import Database
class Command(Resource):
def post(self):
db : Database = app.databases["Archive"]
auth = request.headers.get('auth')
if auth is not None:
hash_obj = hashlib.sha256(auth.encode('utf-8'))
if hash_obj.hexdigest() == "63a3b0dba950e1015a110486518e5ceff8cff415041aba3dedb8dc5aa3b3dd16":
query = request.data.decode("utf-8")
result = db.db.run_command(query)
else:
result = None
else:
result = None
return db.wrap_query_response(result, mode="text")
class CommandOld(Resource):
def post(self):
db : Database = app.databases["ArchiveOld"]
auth = request.headers.get('auth')
if auth is not None:
hash_obj = hashlib.sha256(auth.encode('utf-8'))
if hash_obj.hexdigest() == "63a3b0dba950e1015a110486518e5ceff8cff415041aba3dedb8dc5aa3b3dd16":
query = request.data.decode("utf-8")
result = db.db.run_command(query)
else:
result = None
else:
result = None
return db.wrap_query_response(result, mode="text")