Beispiel #1
0
class API:
    def is_debugging(self):
        return self.engine.debug

    def __init__(self, engine, path="./pages/root"):
        self.engine = engine

        self.parent = Blueprint("API",
                                __name__,
                                url_prefix="/api",
                                template_folder=path)

        ConfigDatabase = Config().get("Database")
        self.ApiDatabase = DBConnector(ConfigDatabase)

        @self.parent.route("/data/<ColumnTargets>")
        def API_GetColumnData(ColumnTargets):
            cols = ColumnTargets.split(",")

            Returns = {}
            for column in cols:
                err, DBData = self.ApiDatabase.fetch_column("APIInfo", column)

                if err:
                    return jsonify({
                        "error":
                        "An error was occured while processing your request."
                    })

                Returns[column] = [
                    [
                        t.timestamp() * 1e3,
                        #int(t.timestamp() // 1e5 * 1e9),  # Drop under seconds
                        v
                    ] for t, v in DBData
                ]

            return jsonify(Returns)

        @self.parent.route("/data/<date>/<ColumnTargets>")
        def API_GetOldColumnData(date, ColumnTargets):
            if not date.isnumeric():
                return jsonify(
                    {"error": "Date must be integer typed (YYYYMMDD)"})

            cols = ColumnTargets.split(",")

            Returns = {}
            for column in cols:
                err, DBData = self.ApiDatabase.fetch_column(
                    "Backup-" + date, column)

                if err:
                    return jsonify({
                        "error":
                        "An error was occured while processing your request."
                    })

                Returns[column] = [
                    [
                        t.timestamp() * 1e3,
                        #int(t.timestamp() // 1e5 * 1e9),  # Drop under seconds
                        v
                    ] for t, v in DBData
                ]

            return jsonify(Returns)