Skip to content

Commit

Permalink
solidui api build
Browse files Browse the repository at this point in the history
  • Loading branch information
dlimeng committed Dec 30, 2023
1 parent 40768e8 commit 43f682e
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 7 deletions.
4 changes: 4 additions & 0 deletions solidui/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import os

from datetime import timedelta
from typing import Any

from solidui.utils.logging_configurator import DefaultLoggingConfigurator

Expand Down Expand Up @@ -69,3 +70,6 @@
SNAKEMQ_PORT = 8765
SNAKEMQ_LISTENER = '127.0.0.1'
SNAKEMQ_CONNECTOR = '127.0.0.1'

ENABLE_CORS = True
CORS_OPTIONS: dict[Any, Any] = {}
25 changes: 19 additions & 6 deletions solidui/initialization/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,10 @@
from __future__ import annotations
import logging
import os
import sys
from typing import Any, Callable, TYPE_CHECKING
from deprecation import deprecated

import wtforms_json
from flask import Flask, redirect
from flask_appbuilder import expose, IndexView
from flask_cors import CORS
from flask_session import Session
from solidui.extensions import (
appbuilder,
Expand Down Expand Up @@ -76,6 +72,13 @@ def initialize_database(self) -> None:
def initialize_data(self) -> None:
...

def configure_middlewares(self) -> None:
if self.config["ENABLE_CORS"]:
# pylint: disable=import-outside-toplevel
from flask_cors import CORS

CORS(self.solidui_app, **self.config["CORS_OPTIONS"])

def init_views(self) -> None:
"""
We're doing local imports, as several of them import
Expand All @@ -86,10 +89,20 @@ def init_views(self) -> None:
from solidui.example.api import ExampleRestApi
from solidui.views.user.api import LoginRestApi
from solidui.views.project.api import ProjectRestApi
from solidui.views.model.api import ModelRestApi
from solidui.views.datasource.api import DataSourceRestApi
from solidui.views.metadata.api import MetadataQueryRestApi
from solidui.views.job.api import JobRestApi
from solidui.views.job_page.api import JobPageRestApi

appbuilder.add_api(ExampleRestApi)
appbuilder.add_api(LoginRestApi)
appbuilder.add_api(ProjectRestApi)
appbuilder.add_api(ModelRestApi)
appbuilder.add_api(DataSourceRestApi)
appbuilder.add_api(MetadataQueryRestApi)
appbuilder.add_api(JobRestApi)
appbuilder.add_api(JobPageRestApi)

for rule in self.solidui_app.url_map.iter_rules():
print(rule)
Expand All @@ -102,8 +115,7 @@ def configure_fab(self) -> None:

appbuilder.init_app(self.solidui_app, db.session)

def configure_cors(self) -> None:
CORS(self.solidui_app)


def configure_session(self) -> None:
if self.config["SESSION_SERVER_SIDE"]:
Expand All @@ -130,6 +142,7 @@ def init_app(self) -> None:
self.configure_session()
self.setup_db()
self.initialize_database()
self.configure_middlewares()

with self.solidui_app.app_context():
self.init_app_in_ctx()
Expand Down
2 changes: 1 addition & 1 deletion solidui/views/job/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

from flask import request

from solidui.daos.exceptions import DAONotFound, DAOCreateFailedError
from solidui.daos.exceptions import DAOCreateFailedError
from solidui.daos.job_element import JobElementDAO
from solidui.daos.job_element_page import JobElementPageDAO
from solidui.entity.core import JobElementPage, JobElement
Expand Down

0 comments on commit 43f682e

Please sign in to comment.