real-estate / project /__init__.py
brestok's picture
init
d0e0a14
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from starlette.staticfiles import StaticFiles
from project.admin import AdminCustom, UserAdmin, AudioRecordsAdmin, ImageRecordsAdmin, FolderAdmin, ReportAdmin
from project.database import engine
from project.users.auth import fastapi_users, auth_backend, authentication_backend_admin
from project.users.schemas import UserRead, UserCreate
def create_app() -> FastAPI:
app = FastAPI()
from project.users import user_router
app.include_router(user_router, tags=['users'])
from project.bot import bot_router
app.include_router(bot_router, tags=['bot'])
from project.ws import ws_router
app.include_router(ws_router, tags=['ws'])
app.include_router(
fastapi_users.get_auth_router(auth_backend),
prefix="/auth/jwt",
tags=["auth"],
)
app.include_router(
fastapi_users.get_register_router(UserRead, UserCreate),
prefix='/auth',
tags=['auth'],
)
app.include_router(
fastapi_users.get_reset_password_router(),
prefix="/auth",
tags=["auth"],
)
app.mount('/static', StaticFiles(directory="static"), name="static")
app.add_middleware(
CORSMiddleware,
allow_origins=["http://127.0.0.1:8000", "http://localhost:8000", 'https://brestok-real-estate.hf.space/'],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
admin = AdminCustom(app, engine, authentication_backend=authentication_backend_admin)
admin.add_view(UserAdmin)
admin.add_view(AudioRecordsAdmin)
admin.add_view(ImageRecordsAdmin)
admin.add_view(FolderAdmin)
admin.add_view(ReportAdmin)
return app