Skip to content

Commit

Permalink
server: adopt selector widget approach for Organization ID
Browse files Browse the repository at this point in the history
  • Loading branch information
frankie567 committed Jul 5, 2024
1 parent e3d0dea commit 556a4c3
Show file tree
Hide file tree
Showing 10 changed files with 28 additions and 15 deletions.
3 changes: 2 additions & 1 deletion server/polar/article/endpoints.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from polar.kit.pagination import ListResource, PaginationParamsQuery
from polar.models.article import ArticleVisibility
from polar.openapi import IN_DEVELOPMENT_ONLY, APITag
from polar.organization.schemas import OrganizationID
from polar.postgres import AsyncSession, get_db_session
from polar.routing import APIRouter

Expand All @@ -33,7 +34,7 @@
async def list(
auth_subject: auth.ArticlesReadOrAnonymous,
pagination: PaginationParamsQuery,
organization_id: UUID4 | None = Query(
organization_id: OrganizationID | None = Query(
None, description="Filter by organization ID."
),
slug: str | None = Query(None, description="Filter by slug."),
Expand Down
3 changes: 2 additions & 1 deletion server/polar/benefit/endpoints.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from polar.models import Benefit
from polar.models.benefit import BenefitType
from polar.openapi import APITag
from polar.organization.schemas import OrganizationID
from polar.postgres import AsyncSession, get_db_session
from polar.posthog import posthog
from polar.routing import APIRouter
Expand All @@ -35,7 +36,7 @@
async def list(
auth_subject: auth.BenefitsRead,
pagination: PaginationParamsQuery,
organization_id: UUID4 | None = Query(
organization_id: OrganizationID | None = Query(
None, description="Filter by organization ID."
),
type: BenefitType | None = Query(
Expand Down
3 changes: 2 additions & 1 deletion server/polar/file/endpoints.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from polar.models import File, Organization
from polar.openapi import APITag
from polar.organization.resolver import get_payload_organization
from polar.organization.schemas import OrganizationID
from polar.organization.service import organization as organization_service
from polar.postgres import AsyncSession, get_db_session
from polar.routing import APIRouter
Expand Down Expand Up @@ -48,7 +49,7 @@
async def list(
auth_subject: auth.CreatorFilesWrite,
pagination: PaginationParamsQuery,
organization_id: UUID4 | None = None,
organization_id: OrganizationID | None = None,
ids: ListOfFileIDs | None = Query(
None,
description=("List of file IDs to get. "),
Expand Down
3 changes: 2 additions & 1 deletion server/polar/metrics/endpoints.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from polar.exceptions import PolarRequestValidationError
from polar.models.product_price import ProductPriceType
from polar.openapi import APITag
from polar.organization.schemas import OrganizationID
from polar.postgres import AsyncSession, get_db_session
from polar.product.schemas import ProductID
from polar.routing import APIRouter
Expand All @@ -29,7 +30,7 @@ async def get(
),
end_date: date = Query(..., description="End date."),
interval: Interval = Query(..., description="Interval between two timestamps."),
organization_id: UUID4 | None = Query(
organization_id: OrganizationID | None = Query(
None, description="Filter by organization ID."
),
product_id: ProductID | None = Query(None, description="Filter by product ID."),
Expand Down
3 changes: 2 additions & 1 deletion server/polar/order/endpoints.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from polar.models import Order
from polar.models.product_price import ProductPriceType
from polar.openapi import APITag
from polar.organization.schemas import OrganizationID
from polar.postgres import AsyncSession, get_db_session
from polar.product.schemas import ProductID
from polar.routing import APIRouter
Expand All @@ -29,7 +30,7 @@ async def list(
auth_subject: auth.OrdersRead,
pagination: PaginationParamsQuery,
sorting: sorting.ListSorting,
organization_id: UUID4 | None = Query(
organization_id: OrganizationID | None = Query(
None, description="Filter by organization ID."
),
product_id: ProductID | None = Query(None, description="Filter by product ID."),
Expand Down
8 changes: 3 additions & 5 deletions server/polar/organization/endpoints.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
from typing import Annotated
from uuid import UUID

import structlog
from fastapi import Depends, HTTPException, Path, Query
from pydantic import UUID4
from fastapi import Depends, HTTPException, Query

from polar.auth.models import Subject
from polar.authz.service import AccessType, Authz
Expand Down Expand Up @@ -31,6 +29,7 @@
OrganizationBadgeSettingsUpdate,
OrganizationCustomer,
OrganizationCustomerType,
OrganizationID,
OrganizationSetAccount,
OrganizationStripePortalSession,
OrganizationUpdate,
Expand All @@ -45,7 +44,6 @@

router = APIRouter(tags=["organizations"])

OrganizationID = Annotated[UUID4, Path(description="The organization ID.")]
OrganizationNotFound = {
"description": "Organization not found.",
"model": ResourceNotFound.schema(),
Expand Down Expand Up @@ -75,7 +73,7 @@ async def to_schema(


@router.get(
"/organizations",
"/organizations/",
response_model=ListResource[OrganizationSchema],
description="List organizations that the authenticated user is a member of. Requires authentication.", # noqa: E501
summary="List organizations",
Expand Down
9 changes: 8 additions & 1 deletion server/polar/organization/schemas.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,22 @@
from typing import Annotated, Self
from uuid import UUID

from fastapi import Path
from pydantic import UUID4, Field, HttpUrl

from polar.config import settings
from polar.currency.schemas import CurrencyAmount
from polar.enums import Platforms
from polar.integrations.github import types
from polar.kit.schemas import EmptyStrToNoneValidator, Schema
from polar.kit.schemas import EmptyStrToNoneValidator, Schema, SelectorWidget
from polar.models.organization import Organization as OrganizationModel

OrganizationID = Annotated[
UUID4,
Path(description="The organization ID."),
SelectorWidget("/v1/organizations", "Organization", "name"),
]


class OrganizationFeatureSettings(Schema):
articles_enabled: bool = Field(
Expand Down
3 changes: 2 additions & 1 deletion server/polar/product/endpoints.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from polar.models import Product
from polar.models.product import SubscriptionTierType
from polar.openapi import APITag
from polar.organization.schemas import OrganizationID
from polar.postgres import AsyncSession, get_db_session
from polar.routing import APIRouter

Expand All @@ -31,7 +32,7 @@
async def list(
pagination: PaginationParamsQuery,
auth_subject: auth.CreatorProductsReadOrAnonymous,
organization_id: Sequence[UUID4] | None = Query(
organization_id: Sequence[OrganizationID] | None = Query(
None, description="Filter by organization ID."
),
include_archived: bool = Query(
Expand Down
5 changes: 3 additions & 2 deletions server/polar/subscription/endpoints.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
from polar.models import Subscription
from polar.models.product import SubscriptionTierType
from polar.openapi import APITag
from polar.organization.schemas import OrganizationID
from polar.organization.service import organization as organization_service
from polar.postgres import AsyncSession, get_db_session
from polar.product.schemas import ProductID
Expand Down Expand Up @@ -50,7 +51,7 @@ async def list(
auth_subject: auth.SubscriptionsRead,
pagination: PaginationParamsQuery,
sorting: SearchSorting,
organization_id: UUID4 | None = Query(
organization_id: OrganizationID | None = Query(
None, description="Filter by organization ID."
),
product_id: ProductID | None = Query(None, description="Filter by product ID."),
Expand Down Expand Up @@ -214,7 +215,7 @@ async def subscriptions_import(
@router.get("/export", summary="Export Subscriptions")
async def export(
auth_subject: auth.SubscriptionsRead,
organization_id: UUID4 | None = Query(
organization_id: OrganizationID | None = Query(
None, description="Filter by organization ID."
),
session: AsyncSession = Depends(get_db_session),
Expand Down
3 changes: 2 additions & 1 deletion server/polar/webhook/endpoints.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from polar.exceptions import NotPermitted, ResourceNotFound, Unauthorized
from polar.kit.pagination import ListResource, PaginationParamsQuery
from polar.models import WebhookEndpoint
from polar.organization.schemas import OrganizationID
from polar.postgres import AsyncSession, get_db_session
from polar.routing import APIRouter

Expand All @@ -32,7 +33,7 @@
async def list_webhook_endpoints(
pagination: PaginationParamsQuery,
auth_subject: WebhooksRead,
organization_id: UUID4 | None = Query(
organization_id: OrganizationID | None = Query(
None, description="Filter by organization ID."
),
user_id: UUID4 | None = Query(None, description="Filter by user ID."),
Expand Down

0 comments on commit 556a4c3

Please sign in to comment.