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

25 statements  

« prev     ^ index     » next       coverage.py v7.10.6, created at 2025-12-05 17:15 +0000

1from datetime import datetime, timedelta 1a

2from enum import StrEnum 1a

3 

4from pydantic import UUID4 1a

5 

6from polar.auth.scope import RESERVED_SCOPES, Scope 1a

7from polar.kit.schemas import Schema, TimestampedSchema 1a

8from polar.organization.schemas import OrganizationID 1a

9 

10AvailableScope = StrEnum( # type: ignore 1a

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

12) 

13 

14 

15class OrganizationAccessTokenCreate(Schema): 1a

16 organization_id: UUID4 1a

17 comment: str 1a

18 expires_in: timedelta | None = None 1a

19 scopes: list[AvailableScope] # pyright: ignore 1a

20 

21 

22class OrganizationAccessTokenUpdate(Schema): 1a

23 comment: str | None = None 1a

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

25 

26 

27class OrganizationAccessToken(TimestampedSchema): 1a

28 id: UUID4 1a

29 scopes: list[Scope] 1a

30 expires_at: datetime | None 1a

31 comment: str 1a

32 last_used_at: datetime | None 1a

33 organization_id: OrganizationID 1a

34 

35 

36class OrganizationAccessTokenCreateResponse(Schema): 1a

37 organization_access_token: OrganizationAccessToken 1a

38 token: str 1a