Skip to content

Commit 63f285f

Browse files
authored
Remove govn add products (#3615)
1 parent 0268daa commit 63f285f

File tree

23 files changed

+106
-485
lines changed

23 files changed

+106
-485
lines changed

auth-api/src/auth_api/exceptions/errors.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,6 @@ class Error(Enum):
126126
)
127127
BCEID_USERS_CANT_BE_OWNERS = "BCEID Users cant be owners", HTTPStatus.BAD_REQUEST
128128
PAYMENT_ACCOUNT_UPSERT_FAILED = "Account upsert failed in Pay", HTTPStatus.INTERNAL_SERVER_ERROR
129-
ACCOUNT_FEES_FETCH_FAILED = "Failed to fetch account fees from Pay API", HTTPStatus.INTERNAL_SERVER_ERROR
130129
GOVM_ACCOUNT_DATA_MISSING = (
131130
"GOVM account creation needs payment info , gl code and mailing address",
132131
HTTPStatus.BAD_REQUEST,

auth-api/src/auth_api/models/dataclass.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,6 @@ class TaskSearch: # pylint: disable=too-many-instance-attributes
183183
submitted_sort_order: str = "asc"
184184
page: int = 1
185185
limit: int = 10
186-
action: str = ""
187186

188187

189188
@dataclass
@@ -202,7 +201,6 @@ class ProductReviewTask:
202201

203202
org_id: str
204203
org_name: str
205-
org_access_type: str
206204
product_code: str
207205
product_description: str
208206
product_subscription_id: int

auth-api/src/auth_api/models/task.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,6 @@ def fetch_tasks(cls, task_search: TaskSearch):
6666
query = query.filter(Task.type == task_search.type)
6767
if task_search.status:
6868
query = query.filter(Task.status.in_(task_search.status))
69-
if task_search.action:
70-
query = query.filter(Task.action.in_(task_search.action))
7169
start_date = None
7270
end_date = None
7371
if task_search.start_date:

auth-api/src/auth_api/resources/v1/task.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ def get_tasks():
4646
relationship_status=request.args.get("relationshipStatus", None),
4747
type=request.args.get("type", None),
4848
status=request.args.getlist("status", None),
49-
action=request.args.getlist("action", None),
5049
modified_by=request.args.get("modifiedBy", None),
5150
submitted_sort_order=request.args.get("submittedSortOrder", None),
5251
page=int(request.args.get("page", 1)),

auth-api/src/auth_api/services/org.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -141,16 +141,9 @@ def create_org(org_info: dict, user_id):
141141
# create the membership record for this user if its not created by staff and access_type is anonymous
142142
Org.create_membership(access_type, org, user_id)
143143

144-
# Send an email to staff to remind review the pending account
145-
is_staff_review_needed = access_type == AccessType.GOVN.value or (
146-
access_type in (AccessType.EXTRA_PROVINCIAL.value, AccessType.REGULAR_BCEID.value)
147-
and not AffidavitModel.find_approved_by_user_id(user_id=user_id)
148-
and current_app.config.get("SKIP_STAFF_APPROVAL_BCEID") is False
149-
)
150-
151144
if product_subscriptions is not None:
152145
ProductService.create_product_subscription(
153-
org.id, subscription_data={"subscriptions": product_subscriptions}, skip_auth=True, staff_review_for_create_org=is_staff_review_needed
146+
org.id, subscription_data={"subscriptions": product_subscriptions}, skip_auth=True
154147
)
155148

156149
ProductService.create_subscription_from_bcol_profile(org.id, bcol_profile_flags)
@@ -160,6 +153,13 @@ def create_org(org_info: dict, user_id):
160153
if payment_account_status == PaymentAccountStatus.FAILED and error is not None:
161154
current_app.logger.warning(f"Account update payment Error: {error}")
162155

156+
# Send an email to staff to remind review the pending account
157+
is_staff_review_needed = access_type == AccessType.GOVN.value or (
158+
access_type in (AccessType.EXTRA_PROVINCIAL.value, AccessType.REGULAR_BCEID.value)
159+
and not AffidavitModel.find_approved_by_user_id(user_id=user_id)
160+
and current_app.config.get("SKIP_STAFF_APPROVAL_BCEID") is False
161+
)
162+
163163
if is_staff_review_needed:
164164
Org._create_staff_review_task(org, UserModel.find_by_jwt_token())
165165

auth-api/src/auth_api/services/products.py

Lines changed: 21 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
get_product_notification_data,
5757
get_product_notification_type,
5858
)
59-
from auth_api.utils.roles import CLIENT_ADMIN_ROLES, CLIENT_AUTH_ROLES, GOV_ORG_TYPES, STAFF
59+
from auth_api.utils.roles import CLIENT_ADMIN_ROLES, CLIENT_AUTH_ROLES, STAFF
6060
from auth_api.utils.user_context import UserContext, user_context
6161

6262
from .activity_log_publisher import ActivityLogPublisher
@@ -170,7 +170,7 @@ def _is_previously_approved(org_id: int, product_code: str):
170170
)
171171
if task is None or (
172172
task.relationship_status != TaskRelationshipStatus.ACTIVE.value
173-
and task.action in (TaskAction.PRODUCT_REVIEW.value, TaskAction.NEW_PRODUCT_FEE_REVIEW.value)
173+
and task.action == TaskAction.PRODUCT_REVIEW.value
174174
):
175175
return False, None
176176

@@ -183,7 +183,6 @@ def create_product_subscription(
183183
is_new_transaction: bool = True,
184184
skip_auth=False,
185185
auto_approve=False,
186-
staff_review_for_create_org=False,
187186
):
188187
"""Create product subscription for the user.
189188
@@ -199,7 +198,6 @@ def create_product_subscription(
199198

200199
subscriptions_list = subscription_data.get("subscriptions")
201200
for subscription in subscriptions_list:
202-
auto_approve_current = auto_approve
203201
product_code = subscription.get("productCode")
204202
if ProductSubscriptionModel.find_by_org_id_product_code(org_id, product_code):
205203
raise BusinessException(Error.PRODUCT_SUBSCRIPTION_EXISTS, None)
@@ -210,11 +208,9 @@ def create_product_subscription(
210208
check_auth(system_required=True, org_id=org_id)
211209
previously_approved, inactive_sub = Product._is_previously_approved(org_id, product_code)
212210
if previously_approved:
213-
auto_approve_current = True
211+
auto_approve = True
214212

215-
subscription_status = Product.find_subscription_status(
216-
org, product_model, auto_approve_current, staff_review_for_create_org
217-
)
213+
subscription_status = Product.find_subscription_status(org, product_model, auto_approve)
218214
product_subscription = Product._subscribe_and_publish_activity(
219215
SubscriptionRequest(
220216
org_id=org_id,
@@ -249,7 +245,6 @@ def create_product_subscription(
249245
ProductReviewTask(
250246
org_id=org.id,
251247
org_name=org.name,
252-
org_access_type=org.access_type,
253248
product_code=product_subscription.product_code,
254249
product_description=product_model.description,
255250
product_subscription_id=product_subscription.id,
@@ -376,14 +371,11 @@ def _reset_subscription_and_review_task(
376371
@staticmethod
377372
def _create_review_task(review_task: ProductReviewTask):
378373
task_type = review_task.product_description
379-
380-
required_review_types = {AccessType.GOVM.value, AccessType.GOVN.value}
381-
if review_task.product_code in QUALIFIED_SUPPLIER_PRODUCT_CODES:
382-
action_type = TaskAction.QUALIFIED_SUPPLIER_REVIEW.value
383-
elif review_task.org_access_type in required_review_types:
384-
action_type = TaskAction.NEW_PRODUCT_FEE_REVIEW.value
385-
else:
386-
action_type = TaskAction.PRODUCT_REVIEW.value
374+
action_type = (
375+
TaskAction.QUALIFIED_SUPPLIER_REVIEW.value
376+
if review_task.product_code in QUALIFIED_SUPPLIER_PRODUCT_CODES
377+
else TaskAction.PRODUCT_REVIEW.value
378+
)
387379

388380
task_info = {
389381
"name": review_task.org_name,
@@ -401,13 +393,14 @@ def _create_review_task(review_task: ProductReviewTask):
401393
TaskService.create_task(task_info, False)
402394

403395
@staticmethod
404-
def find_subscription_status(org, product_model, auto_approve=False, staff_review_for_create_org=False):
396+
def find_subscription_status(org, product_model, auto_approve=False):
405397
"""Return the subscriptions status based on org type."""
406-
skip_review = org.access_type in GOV_ORG_TYPES and staff_review_for_create_org # prevent create second task when it's already added a staff review when creating org
407-
if (product_model.need_review or org.access_type in GOV_ORG_TYPES) and not auto_approve:
398+
# GOVM accounts has default active subscriptions
399+
skip_review_types = [AccessType.GOVM.value]
400+
if product_model.need_review and auto_approve is False:
408401
return (
409402
ProductSubscriptionStatus.ACTIVE.value
410-
if skip_review
403+
if (org.access_type in skip_review_types)
411404
else ProductSubscriptionStatus.PENDING_STAFF_REVIEW.value
412405
)
413406
return ProductSubscriptionStatus.ACTIVE.value
@@ -459,10 +452,7 @@ def get_all_product_subscription(org_id, skip_auth=False, **kwargs):
459452
check_auth(one_of_roles=(*CLIENT_AUTH_ROLES, STAFF), org_id=org_id)
460453

461454
product_subscriptions: list[ProductSubscriptionModel] = ProductSubscriptionModel.find_by_org_ids([org_id])
462-
subscription_by_code = {
463-
sub.product_code: sub
464-
for sub in product_subscriptions
465-
}
455+
subscriptions_dict = {x.product_code: x.status_code for x in product_subscriptions}
466456

467457
# Include hidden products only for staff and SBC staff
468458
include_hidden = (
@@ -474,9 +464,9 @@ def get_all_product_subscription(org_id, skip_auth=False, **kwargs):
474464

475465
products = Product.get_products(include_hidden=include_hidden, staff_check=False)
476466
for product in products:
477-
sub = subscription_by_code.get(product.get("code"))
478-
product["subscriptionStatus"] = getattr(sub, "status_code", ProductSubscriptionStatus.NOT_SUBSCRIBED.value)
479-
product["id"] = getattr(sub, "id", None)
467+
product["subscriptionStatus"] = subscriptions_dict.get(
468+
product.get("code"), ProductSubscriptionStatus.NOT_SUBSCRIBED.value
469+
)
480470

481471
return products
482472

@@ -490,6 +480,7 @@ def update_product_subscription(product_sub_info: ProductSubscriptionInfo, is_ne
490480
is_hold = product_sub_info.is_hold
491481
org_id = product_sub_info.org_id
492482
org_name = product_sub_info.org_name
483+
493484
# Approve/Reject Product subscription
494485
product_subscription: ProductSubscriptionModel = ProductSubscriptionModel.find_by_id(product_subscription_id)
495486

@@ -510,6 +501,7 @@ def update_product_subscription(product_sub_info: ProductSubscriptionInfo, is_ne
510501
product_model: ProductCodeModel = ProductCodeModel.find_by_code(product_subscription.product_code)
511502
# Find admin email addresses
512503
admin_emails = UserService.get_admin_emails_for_org(org_id)
504+
513505
if admin_emails != "" and not is_hold:
514506
Product.send_product_subscription_notification(
515507
ProductNotificationInfo(
@@ -519,7 +511,7 @@ def update_product_subscription(product_sub_info: ProductSubscriptionInfo, is_ne
519511
is_reapproved=is_reapproved,
520512
remarks=product_sub_info.task_remarks,
521513
org_id=org_id,
522-
org_name=org_name,
514+
org_name=org_name
523515
)
524516
)
525517

auth-api/src/auth_api/utils/enums.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,6 @@ class TaskAction(Enum):
328328
ACCOUNT_REVIEW = "ACCOUNT_REVIEW"
329329
PRODUCT_REVIEW = "PRODUCT_REVIEW"
330330
QUALIFIED_SUPPLIER_REVIEW = "QUALIFIED_SUPPLIER_REVIEW"
331-
NEW_PRODUCT_FEE_REVIEW = "NEW_PRODUCT_FEE_REVIEW"
332331

333332

334333
class ActivityAction(Enum):

auth-api/src/auth_api/utils/roles.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
from enum import Enum
1717

18-
from .enums import AccessType, OrgStatus, OrgType, ProductSubscriptionStatus, Status
18+
from .enums import OrgStatus, OrgType, ProductSubscriptionStatus, Status
1919

2020

2121
class Role(Enum):
@@ -88,5 +88,3 @@ class Role(Enum):
8888
EXCLUDED_FIELDS = ("status_code", "type_code")
8989

9090
PREMIUM_ORG_TYPES = (OrgType.PREMIUM.value, OrgType.SBC_STAFF.value, OrgType.STAFF.value)
91-
92-
GOV_ORG_TYPES = (AccessType.GOVM.value, AccessType.GOVN.value)

0 commit comments

Comments
 (0)