from __future__ import annotations
import json
from flask_restful import Resource
from flask import current_app as app, jsonify, request
from typing import TYPE_CHECKING

if TYPE_CHECKING:
    from modules.Archive.database import Database

class Archive_Query(Resource):
    def post(self):
        query = request.data.decode("utf-8")
        
        db : Database = app.databases["Archive"]

        result = db.db.run_query(query)

        if result is None:
            response = app.response_class(status=400)
        else:
            response = app.response_class(
                response=json.dumps(result, ensure_ascii=False, indent=1),
                status=200,
                mimetype='application/json'
            )

        response.headers.add("Access-Control-Allow-Origin", "*")
        return response