Coverage for polar/organization_access_token/schemas.py: 100%

14 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-07 12:42 +0000

1from datetime import datetime, timedelta 

2from enum import StrEnum 

3 

4from pydantic import UUID4 

5 

6from polar.auth.scope import RESERVED_SCOPES, Scope 

7from polar.kit.schemas import Schema, TimestampedSchema 

8from polar.organization.schemas import OrganizationID 

9 

10AvailableScope = StrEnum( # type: ignore 

11 "AvailableScope", {s: s.value for s in Scope if s not in RESERVED_SCOPES} 

12) 

13 

14 

15class OrganizationAccessTokenCreate(Schema): 

16 organization_id: UUID4 

17 comment: str 

18 expires_in: timedelta | None = None 

19 scopes: list[AvailableScope] # pyright: ignore 

20 

21 

22class OrganizationAccessTokenUpdate(Schema): 

23 comment: str | None = None 

24 scopes: list[AvailableScope] | None = None # pyright: ignore 

25 

26 

27class OrganizationAccessToken(TimestampedSchema): 

28 id: UUID4 

29 scopes: list[Scope] 

30 expires_at: datetime | None 

31 comment: str 

32 last_used_at: datetime | None 

33 organization_id: OrganizationID 

34 

35 

36class OrganizationAccessTokenCreateResponse(Schema): 

37 organization_access_token: OrganizationAccessToken 

38 token: str