Update and refactor synchronization-related logic
This commit is contained in:
parent
1ce2865564
commit
864c9c3242
6 changed files with 30 additions and 25 deletions
|
@ -65,7 +65,7 @@ class ApplicationController:
|
||||||
ProfileController.disable(profile, False, profile_observer=profile_observer)
|
ProfileController.disable(profile, False, profile_observer=profile_observer)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def fetch(proxies: Optional[dict] = None):
|
def _sync(proxies: Optional[dict] = None):
|
||||||
|
|
||||||
applications = WebServiceApiService.get_applications(proxies)
|
applications = WebServiceApiService.get_applications(proxies)
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,20 @@ class ApplicationVersionController:
|
||||||
return ApplicationVersion.find(application_code, version_number)
|
return ApplicationVersion.find(application_code, version_number)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def fetch(proxies: Optional[dict] = None):
|
def install(application_version: ApplicationVersion, application_version_observer: Optional[ApplicationVersionObserver] = None, connection_observer: Optional[ConnectionObserver] = None):
|
||||||
|
|
||||||
|
if not application_version.is_supported():
|
||||||
|
raise UnsupportedApplicationVersionError('The application version in question is not supported.')
|
||||||
|
|
||||||
|
from core.controllers.ConnectionController import ConnectionController
|
||||||
|
ConnectionController.with_preferred_connection(application_version, task=ApplicationVersionController._install, application_version_observer=application_version_observer, connection_observer=connection_observer)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def uninstall(application_version: ApplicationVersion):
|
||||||
|
shutil.rmtree(application_version.installation_path, ignore_errors=True)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _sync(proxies: Optional[dict] = None):
|
||||||
|
|
||||||
applications = ApplicationController.get_all()
|
applications = ApplicationController.get_all()
|
||||||
application_versions = []
|
application_versions = []
|
||||||
|
@ -34,19 +47,6 @@ class ApplicationVersionController:
|
||||||
ApplicationVersion.truncate()
|
ApplicationVersion.truncate()
|
||||||
ApplicationVersion.save_many(application_versions)
|
ApplicationVersion.save_many(application_versions)
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def install(application_version: ApplicationVersion, application_version_observer: Optional[ApplicationVersionObserver] = None, connection_observer: Optional[ConnectionObserver] = None):
|
|
||||||
|
|
||||||
if not application_version.is_supported():
|
|
||||||
raise UnsupportedApplicationVersionError('The application version in question is not supported.')
|
|
||||||
|
|
||||||
from core.controllers.ConnectionController import ConnectionController
|
|
||||||
ConnectionController.with_preferred_connection(application_version, task=ApplicationVersionController._install, application_version_observer=application_version_observer, connection_observer=connection_observer)
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def uninstall(application_version: ApplicationVersion):
|
|
||||||
shutil.rmtree(application_version.installation_path, ignore_errors=True)
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _install(application_version: ApplicationVersion, application_version_observer: Optional[ApplicationVersionObserver] = None, proxies: Optional[dict] = None):
|
def _install(application_version: ApplicationVersion, application_version_observer: Optional[ApplicationVersionObserver] = None, proxies: Optional[dict] = None):
|
||||||
|
|
||||||
|
|
|
@ -31,18 +31,23 @@ class ClientController:
|
||||||
def sync(client_observer: ClientObserver = None, connection_observer: ConnectionObserver = None):
|
def sync(client_observer: ClientObserver = None, connection_observer: ConnectionObserver = None):
|
||||||
|
|
||||||
from core.controllers.ConnectionController import ConnectionController
|
from core.controllers.ConnectionController import ConnectionController
|
||||||
ConnectionController.with_preferred_connection(task=ClientController._sync, client_observer=client_observer, connection_observer=connection_observer)
|
ConnectionController.with_preferred_connection(task=ClientController.__sync, client_observer=client_observer, connection_observer=connection_observer)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _sync(client_observer: Optional[ClientObserver] = None, proxies: Optional[dict] = None):
|
def __sync(client_observer: Optional[ClientObserver] = None, proxies: Optional[dict] = None):
|
||||||
|
|
||||||
if client_observer is not None:
|
if client_observer is not None:
|
||||||
client_observer.notify('synchronizing')
|
client_observer.notify('synchronizing')
|
||||||
|
|
||||||
ApplicationController.fetch(proxies)
|
# noinspection PyProtectedMember
|
||||||
ApplicationVersionController.fetch(proxies)
|
ApplicationController._sync(proxies=proxies)
|
||||||
ClientVersionController.fetch(proxies)
|
# noinspection PyProtectedMember
|
||||||
LocationController.fetch(proxies)
|
ApplicationVersionController._sync(proxies=proxies)
|
||||||
SubscriptionPlanController.fetch(proxies)
|
# noinspection PyProtectedMember
|
||||||
|
ClientVersionController._sync(proxies=proxies)
|
||||||
|
# noinspection PyProtectedMember
|
||||||
|
LocationController._sync(proxies=proxies)
|
||||||
|
# noinspection PyProtectedMember
|
||||||
|
SubscriptionPlanController._sync(proxies=proxies)
|
||||||
|
|
||||||
ConfigurationController.update_last_synced_at()
|
ConfigurationController.update_last_synced_at()
|
||||||
|
|
|
@ -22,7 +22,7 @@ class ClientVersionController:
|
||||||
return ClientVersion.all()
|
return ClientVersion.all()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def fetch(proxies: Optional[dict] = None):
|
def _sync(proxies: Optional[dict] = None):
|
||||||
|
|
||||||
client_versions = WebServiceApiService.get_client_versions(proxies)
|
client_versions = WebServiceApiService.get_client_versions(proxies)
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ class LocationController:
|
||||||
return Location.all()
|
return Location.all()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def fetch(proxies: Optional[dict] = None):
|
def _sync(proxies: Optional[dict] = None):
|
||||||
|
|
||||||
locations = WebServiceApiService.get_locations(proxies)
|
locations = WebServiceApiService.get_locations(proxies)
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ class SubscriptionPlanController:
|
||||||
return SubscriptionPlan.all(connection)
|
return SubscriptionPlan.all(connection)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def fetch(proxies: Optional[dict] = None):
|
def _sync(proxies: Optional[dict] = None):
|
||||||
|
|
||||||
subscription_plans = WebServiceApiService.get_subscription_plans(proxies)
|
subscription_plans = WebServiceApiService.get_subscription_plans(proxies)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue