67 lines
No EOL
3 KiB
Python
67 lines
No EOL
3 KiB
Python
from core.models.SubscriptionPlan import SubscriptionPlan
|
|
from core.models.session.SessionProfile import SessionProfile
|
|
from core.models.system.SystemProfile import SystemProfile
|
|
from core.observers.ConnectionObserver import ConnectionObserver
|
|
from core.services.WebServiceApiService import WebServiceApiService
|
|
from typing import Union
|
|
|
|
class SubscriptionController:
|
|
|
|
@staticmethod
|
|
def get(billing_code: str, connection_observer: ConnectionObserver = None):
|
|
|
|
from core.controllers.ConnectionController import ConnectionController
|
|
return ConnectionController.with_preferred_connection(billing_code, task=WebServiceApiService.get_subscription, connection_observer=connection_observer)
|
|
|
|
@staticmethod
|
|
def create(subscription_plan: SubscriptionPlan, profile: Union[SessionProfile, SystemProfile], connection_observer: ConnectionObserver = None):
|
|
|
|
from core.controllers.ConnectionController import ConnectionController
|
|
|
|
if profile.location:
|
|
return ConnectionController.with_preferred_connection(
|
|
subscription_plan.id,
|
|
profile.location.id,
|
|
task=WebServiceApiService.post_subscription,
|
|
connection_observer=connection_observer
|
|
)
|
|
else:
|
|
return ConnectionController.with_preferred_connection(
|
|
subscription_plan.id,
|
|
operator_id=profile.connection.operator_id,
|
|
task=WebServiceApiService.post_subscription,
|
|
connection_observer=connection_observer
|
|
)
|
|
|
|
from core.controllers.ConnectionController import ConnectionController
|
|
|
|
if profile.location:
|
|
return ConnectionController.with_preferred_connection(
|
|
subscription_plan.id,
|
|
profile.location.id,
|
|
task=WebServiceApiService.post_subscription,
|
|
connection_observer=connection_observer
|
|
)
|
|
else:
|
|
return ConnectionController.with_preferred_connection(
|
|
subscription_plan.id,
|
|
task=WebServiceApiService.post_subscription,
|
|
connection_observer=connection_observer
|
|
)
|
|
|
|
from core.controllers.ConnectionController import ConnectionController
|
|
|
|
if profile.location:
|
|
# Para WireGuard (con location)
|
|
return ConnectionController.with_preferred_connection(
|
|
subscription_plan.id,
|
|
profile.location.id,
|
|
task=WebServiceApiService.post_subscription,
|
|
connection_observer=connection_observer
|
|
)
|
|
else:
|
|
return ConnectionController.with_preferred_connection(
|
|
subscription_plan.id,
|
|
task=WebServiceApiService.post_subscription,
|
|
connection_observer=connection_observer
|
|
) |