mirror of
https://github.com/dat515-2025/Group-8.git
synced 2026-03-22 15:12:08 +01:00
feat(oauth): add csas connection, allow oauth from react
This commit is contained in:
@@ -6,24 +6,27 @@ from fastapi import Depends, FastAPI
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from starlette.requests import Request
|
||||
|
||||
from app.models.user import User
|
||||
from app.services import bank_scraper
|
||||
from app.workers.celery_tasks import load_transactions, load_all_transactions
|
||||
from app.models.user import User, OAuthAccount
|
||||
|
||||
from app.services.user_service import current_active_verified_user
|
||||
from app.api.auth import router as auth_router
|
||||
from app.api.csas import router as csas_router
|
||||
from app.api.categories import router as categories_router
|
||||
from app.api.transactions import router as transactions_router
|
||||
from app.services.user_service import auth_backend, current_active_verified_user, fastapi_users, get_oauth_provider
|
||||
from app.services.user_service import auth_backend, current_active_verified_user, fastapi_users, get_oauth_provider, UserManager, get_jwt_strategy
|
||||
|
||||
|
||||
from fastapi import FastAPI
|
||||
import sentry_sdk
|
||||
from fastapi_users.db import SQLAlchemyUserDatabase
|
||||
from app.core.db import async_session_maker
|
||||
|
||||
sentry_sdk.init(
|
||||
dsn=os.getenv("SENTRY_DSN"),
|
||||
send_default_pii=True,
|
||||
)
|
||||
|
||||
app = FastAPI()
|
||||
fastApi = FastAPI()
|
||||
|
||||
# CORS for frontend dev server
|
||||
@@ -70,6 +73,7 @@ fastApi.include_router(
|
||||
auth_backend,
|
||||
"SECRET",
|
||||
associate_by_email=True,
|
||||
redirect_url=os.getenv("FRONTEND_DOMAIN_SCHEME") + "/auth/mojeid/callback",
|
||||
),
|
||||
prefix="/auth/mojeid",
|
||||
tags=["auth"],
|
||||
@@ -81,11 +85,13 @@ fastApi.include_router(
|
||||
auth_backend,
|
||||
"SECRET",
|
||||
associate_by_email=True,
|
||||
redirect_url=os.getenv("FRONTEND_DOMAIN_SCHEME") + "/auth/bankid/callback",
|
||||
),
|
||||
prefix="/auth/bankid",
|
||||
tags=["auth"],
|
||||
)
|
||||
|
||||
fastApi.include_router(csas_router)
|
||||
|
||||
# Liveness/root endpoint
|
||||
@fastApi.get("/", include_in_schema=False)
|
||||
@@ -99,4 +105,18 @@ async def authenticated_route(user: User = Depends(current_active_verified_user)
|
||||
|
||||
@fastApi.get("/sentry-debug")
|
||||
async def trigger_error():
|
||||
division_by_zero = 1 / 0
|
||||
division_by_zero = 1 / 0
|
||||
|
||||
|
||||
@fastApi.get("/debug/scrape/csas/all", tags=["debug"])
|
||||
async def debug_scrape_csas_all():
|
||||
logging.info("[Debug] Queueing CSAS scrape for all users via HTTP endpoint (Celery)")
|
||||
task = load_all_transactions.delay()
|
||||
return {"status": "queued", "action": "csas_scrape_all", "task_id": getattr(task, 'id', None)}
|
||||
|
||||
|
||||
@fastApi.post("/debug/scrape/csas/{user_id}", tags=["debug"])
|
||||
async def debug_scrape_csas_user(user_id: str, user: User = Depends(current_active_verified_user)):
|
||||
logging.info("[Debug] Queueing CSAS scrape for single user via HTTP endpoint (Celery) | user_id=%s", user_id)
|
||||
task = load_transactions.delay(user_id)
|
||||
return {"status": "queued", "action": "csas_scrape_single", "user_id": user_id, "task_id": getattr(task, 'id', None)}
|
||||
|
||||
Reference in New Issue
Block a user