Skip to content
This repository was archived by the owner on Jun 13, 2025. It is now read-only.

Commit 258b8cb

Browse files
committed
remove the BillingPlan enum and references to PlanData in favor of Plan properties or PlanName
1 parent d39b6b1 commit 258b8cb

File tree

4 files changed

+74
-86
lines changed

4 files changed

+74
-86
lines changed

graphql_api/types/owner/owner.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from ariadne import ObjectType
99
from django.conf import settings
1010
from graphql import GraphQLResolveInfo
11-
from shared.plan.constants import DEFAULT_FREE_PLAN, PlanData, convert_to_DTO
11+
from shared.plan.constants import DEFAULT_FREE_PLAN
1212
from shared.plan.service import PlanService
1313

1414
import services.activation as activation
@@ -111,16 +111,16 @@ def resolve_plan(owner: Owner, info: GraphQLResolveInfo) -> PlanService:
111111
@owner_bindable.field("pretrialPlan")
112112
@require_part_of_org
113113
@sync_to_async
114-
def resolve_plan_representation(owner: Owner, info: GraphQLResolveInfo) -> PlanData:
114+
def resolve_plan_representation(owner: Owner, info: GraphQLResolveInfo) -> Plan:
115115
info.context["plan_service"] = PlanService(current_org=owner)
116116
free_plan = Plan.objects.select_related("tier").get(name=DEFAULT_FREE_PLAN)
117-
return convert_to_DTO(free_plan)
117+
return free_plan
118118

119119

120120
@owner_bindable.field("availablePlans")
121121
@require_part_of_org
122122
@sync_to_async
123-
def resolve_available_plans(owner: Owner, info: GraphQLResolveInfo) -> List[PlanData]:
123+
def resolve_available_plans(owner: Owner, info: GraphQLResolveInfo) -> List[Plan]:
124124
plan_service = PlanService(current_org=owner)
125125
info.context["plan_service"] = plan_service
126126
owner = info.context["request"].current_owner
@@ -130,7 +130,7 @@ def resolve_available_plans(owner: Owner, info: GraphQLResolveInfo) -> List[Plan
130130
@owner_bindable.field("hasPrivateRepos")
131131
@sync_to_async
132132
@require_part_of_org
133-
def resolve_has_private_repos(owner: Owner, info: GraphQLResolveInfo) -> List[PlanData]:
133+
def resolve_has_private_repos(owner: Owner, info: GraphQLResolveInfo) -> bool:
134134
return owner.has_private_repos
135135

136136

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
from typing import List, Optional
22

33
from ariadne import ObjectType
4-
from shared.plan.constants import PlanData
54
from shared.plan.service import PlanService
65

76
from codecov.db import sync_to_async
7+
from codecov_auth.models import Plan
88
from graphql_api.helpers.ariadne import ariadne_load_local_graphql
99

1010
plan_representation = ariadne_load_local_graphql(
@@ -14,70 +14,70 @@
1414

1515

1616
@plan_representation_bindable.field("marketingName")
17-
def resolve_marketing_name(plan_data: PlanData, info) -> str:
18-
return plan_data["marketing_name"]
17+
def resolve_marketing_name(plan_data: Plan, info) -> str:
18+
return plan_data.marketing_name
1919

2020

2121
@plan_representation_bindable.field("value")
22-
def resolve_plan_value(plan_data: PlanData, info) -> str:
23-
return plan_data["value"]
22+
def resolve_plan_value(plan_data: Plan, info) -> str:
23+
return plan_data.name
2424

2525

2626
@plan_representation_bindable.field("billingRate")
27-
def resolve_billing_rate(plan_data: PlanData, info) -> Optional[str]:
28-
return plan_data["billing_rate"]
27+
def resolve_billing_rate(plan_data: Plan, info) -> Optional[str]:
28+
return plan_data.billing_rate
2929

3030

3131
@plan_representation_bindable.field("baseUnitPrice")
32-
def resolve_base_unit_price(plan_data: PlanData, info) -> int:
33-
return plan_data["base_unit_price"]
32+
def resolve_base_unit_price(plan_data: Plan, info) -> int:
33+
return plan_data.base_unit_price
3434

3535

3636
@plan_representation_bindable.field("benefits")
3737
@sync_to_async
38-
def resolve_benefits(plan_data: PlanData, info) -> List[str]:
38+
def resolve_benefits(plan_data: Plan, info) -> List[str]:
3939
plan_service: PlanService = info.context["plan_service"]
4040
if plan_service.is_org_trialing:
4141
benefits_with_pretrial_users = [
4242
benefit.replace(
4343
"Up to 1 user", f"Up to {plan_service.pretrial_users_count} users"
4444
)
45-
for benefit in plan_data["benefits"]
45+
for benefit in plan_data.benefits
4646
]
4747
return benefits_with_pretrial_users
48-
return plan_data["benefits"]
48+
return plan_data.benefits
4949

5050

5151
@plan_representation_bindable.field("monthlyUploadLimit")
52-
def resolve_monthly_uploads_limit(plan_data: PlanData, info) -> Optional[int]:
53-
return plan_data["monthly_uploads_limit"]
52+
def resolve_monthly_uploads_limit(plan_data: Plan, info) -> Optional[int]:
53+
return plan_data.monthly_uploads_limit
5454

5555

5656
@plan_representation_bindable.field("isEnterprisePlan")
57-
def resolve_is_enterprise(plan_data: PlanData, info) -> bool:
58-
return plan_data["is_enterprise_plan"]
57+
def resolve_is_enterprise(plan_data: Plan, info) -> bool:
58+
return plan_data.is_enterprise_plan
5959

6060

6161
@plan_representation_bindable.field("isFreePlan")
62-
def resolve_is_free(plan_data: PlanData, info) -> bool:
63-
return plan_data["is_free_plan"]
62+
def resolve_is_free(plan_data: Plan, info) -> bool:
63+
return plan_data.is_free_plan
6464

6565

6666
@plan_representation_bindable.field("isProPlan")
67-
def resolve_is_pro(plan_data: PlanData, info) -> bool:
68-
return plan_data["is_pro_plan"]
67+
def resolve_is_pro(plan_data: Plan, info) -> bool:
68+
return plan_data.is_pro_plan
6969

7070

7171
@plan_representation_bindable.field("isTeamPlan")
72-
def resolve_is_team(plan_data: PlanData, info) -> bool:
73-
return plan_data["is_team_plan"]
72+
def resolve_is_team(plan_data: Plan, info) -> bool:
73+
return plan_data.is_team_plan
7474

7575

7676
@plan_representation_bindable.field("isSentryPlan")
77-
def resolve_is_sentry(plan_data: PlanData, info) -> bool:
78-
return plan_data["is_sentry_plan"]
77+
def resolve_is_sentry(plan_data: Plan, info) -> bool:
78+
return plan_data.is_sentry_plan
7979

8080

8181
@plan_representation_bindable.field("isTrialPlan")
82-
def resolve_is_trial(plan_data: PlanData, info) -> bool:
83-
return plan_data["is_trial_plan"]
82+
def resolve_is_trial(plan_data: Plan, info) -> bool:
83+
return plan_data.is_trial_plan

services/task/task_router.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import shared.celery_config as shared_celery_config
2-
from shared.billing import BillingPlan
32
from shared.celery_router import route_tasks_based_on_user_plan
3+
from shared.plan.constants import DEFAULT_FREE_PLAN
44

55
from codecov_auth.models import Owner
66
from compare.models import CommitComparison
@@ -14,14 +14,14 @@ def _get_user_plan_from_ownerid(ownerid, *args, **kwargs) -> str:
1414
owner = Owner.objects.filter(ownerid=ownerid).first()
1515
if owner:
1616
return owner.plan
17-
return BillingPlan.users_basic.db_name
17+
return DEFAULT_FREE_PLAN
1818

1919

2020
def _get_user_plan_from_repoid(repoid, *args, **kwargs) -> str:
2121
repo = Repository.objects.filter(repoid=repoid).first()
2222
if repo and repo.author:
2323
return repo.author.plan
24-
return BillingPlan.users_basic.db_name
24+
return DEFAULT_FREE_PLAN
2525

2626

2727
def _get_user_plan_from_profiling_commit(profiling_id, *args, **kwargs) -> str:
@@ -32,7 +32,7 @@ def _get_user_plan_from_profiling_commit(profiling_id, *args, **kwargs) -> str:
3232
and profiling_commit.repository.author
3333
):
3434
return profiling_commit.repository.author.plan
35-
return BillingPlan.users_basic.db_name
35+
return DEFAULT_FREE_PLAN
3636

3737

3838
def _get_user_plan_from_profiling_upload(profiling_upload_id, *args, **kwargs) -> str:
@@ -44,7 +44,7 @@ def _get_user_plan_from_profiling_upload(profiling_upload_id, *args, **kwargs) -
4444
and profiling_upload.profiling_commit.repository.author
4545
):
4646
return profiling_upload.profiling_commit.repository.author.plan
47-
return BillingPlan.users_basic.db_name
47+
return DEFAULT_FREE_PLAN
4848

4949

5050
def _get_user_plan_from_comparison_id(comparison_id, *args, **kwargs) -> str:
@@ -60,7 +60,7 @@ def _get_user_plan_from_comparison_id(comparison_id, *args, **kwargs) -> str:
6060
and compare_commit.compare_commit.repository.author
6161
):
6262
return compare_commit.compare_commit.repository.author.plan
63-
return BillingPlan.users_basic.db_name
63+
return DEFAULT_FREE_PLAN
6464

6565

6666
def _get_user_plan_from_label_request_id(request_id, *args, **kwargs) -> str:
@@ -76,7 +76,7 @@ def _get_user_plan_from_label_request_id(request_id, *args, **kwargs) -> str:
7676
and label_analysis_request.head_commit.repository.author
7777
):
7878
return label_analysis_request.head_commit.repository.author.plan
79-
return BillingPlan.users_basic.db_name
79+
return DEFAULT_FREE_PLAN
8080

8181

8282
def _get_user_plan_from_suite_id(suite_id, *args, **kwargs) -> str:
@@ -92,7 +92,7 @@ def _get_user_plan_from_suite_id(suite_id, *args, **kwargs) -> str:
9292
and static_analysis_suite.commit.repository.author
9393
):
9494
return static_analysis_suite.commit.repository.author.plan
95-
return BillingPlan.users_basic.db_name
95+
return DEFAULT_FREE_PLAN
9696

9797

9898
def _get_user_plan_from_task(task_name: str, task_kwargs: dict) -> str:
@@ -119,7 +119,7 @@ def _get_user_plan_from_task(task_name: str, task_kwargs: dict) -> str:
119119
shared_celery_config.static_analysis_task_name: _get_user_plan_from_suite_id,
120120
}
121121
func_to_use = owner_plan_lookup_funcs.get(
122-
task_name, lambda *args, **kwargs: BillingPlan.users_basic.db_name
122+
task_name, lambda *args, **kwargs: DEFAULT_FREE_PLAN
123123
)
124124
return func_to_use(**task_kwargs)
125125

0 commit comments

Comments
 (0)