43 lines
1.9 KiB
Python
43 lines
1.9 KiB
Python
from core.Constants import Constants
|
|
from core.controllers.ApplicationController import ApplicationController
|
|
from core.controllers.ApplicationVersionController import ApplicationVersionController
|
|
from core.controllers.ClientVersionController import ClientVersionController
|
|
from core.controllers.ConfigurationController import ConfigurationController
|
|
from core.controllers.LocationController import LocationController
|
|
from core.controllers.SubscriptionPlanController import SubscriptionPlanController
|
|
from core.observers import ClientObserver
|
|
from core.observers.ConnectionObserver import ConnectionObserver
|
|
from typing import Optional
|
|
import pathlib
|
|
|
|
|
|
class ClientController:
|
|
|
|
@staticmethod
|
|
def get_working_directory():
|
|
return str(pathlib.Path(__file__).resolve().parent.parent.parent)
|
|
|
|
@staticmethod
|
|
def sync(client_observer: ClientObserver = None, connection_observer: ConnectionObserver = None):
|
|
|
|
from core.controllers.ConnectionController import ConnectionController
|
|
ConnectionController.with_preferred_connection(task=ClientController.__sync, client_observer=client_observer, connection_observer=connection_observer)
|
|
|
|
@staticmethod
|
|
def __sync(client_observer: Optional[ClientObserver] = None, proxies: Optional[dict] = None):
|
|
|
|
if client_observer is not None:
|
|
client_observer.notify('synchronizing')
|
|
|
|
# noinspection PyProtectedMember
|
|
ApplicationController._sync(proxies=proxies)
|
|
# noinspection PyProtectedMember
|
|
ApplicationVersionController._sync(proxies=proxies)
|
|
# noinspection PyProtectedMember
|
|
ClientVersionController._sync(proxies=proxies)
|
|
# noinspection PyProtectedMember
|
|
LocationController._sync(proxies=proxies)
|
|
# noinspection PyProtectedMember
|
|
SubscriptionPlanController._sync(proxies=proxies)
|
|
|
|
ConfigurationController.update_last_synced_at()
|