|
1 | | -from typing import List, Optional |
| 1 | +from typing import TYPE_CHECKING, List, Optional |
2 | 2 |
|
3 | 3 | import strawberry |
4 | 4 | import strawberry_django |
5 | 5 | from strawberry import auto |
6 | 6 |
|
7 | 7 | from api.types.base_type import BaseType |
8 | | -from api.types.type_organization import TypeOrganization |
9 | 8 | from authorization.models import OrganizationMembership, Role, User |
10 | 9 |
|
11 | | - |
12 | | -@strawberry_django.type(Role, fields="__all__") |
13 | | -class TypeRole(BaseType): |
14 | | - """Type for user role.""" |
15 | | - |
16 | | - id: auto |
17 | | - name: auto |
18 | | - description: auto |
19 | | - |
20 | | - |
21 | | -@strawberry_django.type(OrganizationMembership) |
22 | | -class TypeOrganizationMembership(BaseType): |
23 | | - """Type for organization membership.""" |
24 | | - |
25 | | - organization: TypeOrganization |
26 | | - role: TypeRole |
27 | | - created_at: auto |
28 | | - updated_at: auto |
| 10 | +if TYPE_CHECKING: |
| 11 | + from authorization.types import TypeOrganizationMembership |
29 | 12 |
|
30 | 13 |
|
31 | 14 | @strawberry_django.filter(User) |
@@ -68,9 +51,11 @@ class TypeUser(BaseType): |
68 | 51 | """Type for user.""" |
69 | 52 |
|
70 | 53 | @strawberry.field |
71 | | - def organization_memberships(self) -> List[TypeOrganizationMembership]: |
| 54 | + def organization_memberships(self) -> List["TypeOrganizationMembership"]: |
72 | 55 | """Get organization memberships for this user.""" |
73 | 56 | try: |
| 57 | + from authorization.types import TypeOrganizationMembership |
| 58 | + |
74 | 59 | user_id = str(getattr(self, "id", "")) |
75 | 60 | queryset = OrganizationMembership.objects.filter(user_id=user_id) |
76 | 61 | return TypeOrganizationMembership.from_django_list(queryset) |
|
0 commit comments