diff --git a/src/admin/router.py b/src/admin/router.py index 4833ce5..e6df7de 100644 --- a/src/admin/router.py +++ b/src/admin/router.py @@ -9,18 +9,13 @@ from typing import Annotated from fastapi import APIRouter, HTTPException from fastapi.params import Path -from sqlalchemy.sql import exists from src.organisation.constants import ContactType from src.organisation.schemas import OrgContactGetResponse from src.organisation.models import Organisation as Org from src.contact.models import Contact -from src.user.models import User -from src.user.schemas import UserResponse, OIDCUser, OrgResponse -from src.organisation.models import OrgUsers, Organisation - -from src.auth.service import claims_dependency, org_user_dependency, org_admin_dependency +from src.auth.service import claims_dependency, org_or_super_admin_dependency from src.database import db_dependency @@ -31,7 +26,7 @@ router = APIRouter( @router.get("/{org_id}/contact/{contact_type}", response_model=OrgContactGetResponse) -async def get_contact(db: db_dependency, user: claims_dependency, is_admin: org_user_dependency, contact_type: ContactType, org_id: Annotated[int, Path(gt=0)]): +async def get_contact(db: db_dependency, user: claims_dependency, is_admin: org_or_super_admin_dependency, contact_type: ContactType, org_id: Annotated[int, Path(gt=0)]): org_model = db.query(Org).filter(Org.id == org_id).first() if org_model is None: raise HTTPException(status_code=404, detail="Organisation not found") diff --git a/src/contact/schemas.py b/src/contact/schemas.py index 9e27c81..d64e265 100644 --- a/src/contact/schemas.py +++ b/src/contact/schemas.py @@ -7,7 +7,7 @@ Models: """ from typing import Optional -from pydantic import Field, EmailStr +from pydantic import EmailStr from src.organisation.constants import ContactType from src.schemas import CustomBaseModel diff --git a/src/main.py b/src/main.py index 4f122c6..272e5a6 100644 --- a/src/main.py +++ b/src/main.py @@ -34,7 +34,11 @@ app = FastAPI( } ) +# Type inspection disabled for middleware injection. +# Known bug in FastAPI type checking: https://github.com/astral-sh/ty/issues/1635 +# noinspection PyTypeChecker app.add_middleware(SessionMiddleware, secret_key=settings.SECRET_KEY.get_secret_value()) +# noinspection PyTypeChecker app.add_middleware( CORSMiddleware, allow_origins=settings.CORS_ORIGINS, diff --git a/src/organisation/models.py b/src/organisation/models.py index db56359..de2b17a 100644 --- a/src/organisation/models.py +++ b/src/organisation/models.py @@ -9,8 +9,6 @@ Models: from sqlalchemy import Column, Integer, String, Boolean, ForeignKey, JSON, false from src.database import Base -from src.contact.models import Contact -from src.user.models import User class Organisation(Base): diff --git a/src/organisation/router.py b/src/organisation/router.py index 1b0acf9..3313158 100644 --- a/src/organisation/router.py +++ b/src/organisation/router.py @@ -21,7 +21,6 @@ from fastapi.params import Path from sqlalchemy.sql import exists -from src.auth.service import super_admin_dependency from src.database import db_dependency from src.contact.models import Contact diff --git a/src/organisation/schemas.py b/src/organisation/schemas.py index cb11fb1..b98247b 100644 --- a/src/organisation/schemas.py +++ b/src/organisation/schemas.py @@ -5,7 +5,7 @@ Models: - List: Description - Models: Description """ -from typing import Optional +from typing import Optional, Any from pydantic import Json from src.schemas import CustomBaseModel @@ -14,14 +14,14 @@ from src.organisation.constants import Status, ContactType class OrgOrgPostRequest(CustomBaseModel): name: str - intake_questionnaire: Optional[Json] = None + intake_questionnaire: Optional[Json[Any]] = None billing_contact_id: Optional[int] = None security_contact_id: Optional[int] = None owner_contact_id: Optional[int] = None class OrgQuestionnairePatchRequest(CustomBaseModel): - intake_questionnaire: Json + intake_questionnaire: Json[Any] partial: bool class OrgStatusPatchRequest(CustomBaseModel): diff --git a/src/user/schemas.py b/src/user/schemas.py index c4753d9..1fd0323 100644 --- a/src/user/schemas.py +++ b/src/user/schemas.py @@ -6,7 +6,6 @@ Models: - Models: Description """ from src.schemas import CustomBaseModel -from pydantic import Field class OIDCUser(CustomBaseModel):