Fixed application_versions insert on sync
This commit is contained in:
parent
8f184272b4
commit
1b609a9e5e
2 changed files with 10 additions and 53 deletions
|
|
@ -1,8 +1,10 @@
|
||||||
|
from core.services.sync import legacy_insert
|
||||||
from core.models.manage.session_management import init_session, close_session
|
from core.models.manage.session_management import init_session, close_session
|
||||||
from core.services.sync.sync_service import coordinate_cache_sync, save_metadata
|
from core.services.sync.sync_service import coordinate_cache_sync, save_metadata
|
||||||
from core.services.sync.insert_for_orm import insert_one_orm_model
|
from core.services.sync.insert_for_orm import insert_one_orm_model
|
||||||
from core.services.networking.httpx import connect
|
from core.services.networking.httpx import connect
|
||||||
|
|
||||||
|
# return objects
|
||||||
from core.services.networking.api_requests.ApiResponseModel import ApiResponse, ErrorType
|
from core.services.networking.api_requests.ApiResponseModel import ApiResponse, ErrorType
|
||||||
from core.models.DatabaseOperation import DatabaseOperation, DBErrorType
|
from core.models.DatabaseOperation import DatabaseOperation, DBErrorType
|
||||||
from core.models.Result import Result, ResultError
|
from core.models.Result import Result, ResultError
|
||||||
|
|
@ -15,8 +17,6 @@ from core.models.orm_models.Location import Location
|
||||||
from core.models.orm_models.Operator import Operator
|
from core.models.orm_models.Operator import Operator
|
||||||
from core.Constants import Constants
|
from core.Constants import Constants
|
||||||
|
|
||||||
from core.services.sync import legacy_insert
|
|
||||||
|
|
||||||
from core.controllers.ApplicationController import ApplicationController
|
from core.controllers.ApplicationController import ApplicationController
|
||||||
from core.controllers.ApplicationVersionController import ApplicationVersionController
|
from core.controllers.ApplicationVersionController import ApplicationVersionController
|
||||||
from core.controllers.ClientVersionController import ClientVersionController
|
from core.controllers.ClientVersionController import ClientVersionController
|
||||||
|
|
@ -26,7 +26,7 @@ from core.observers.ClientObserver import ClientObserver
|
||||||
from core.observers.ConnectionObserver import ConnectionObserver
|
from core.observers.ConnectionObserver import ConnectionObserver
|
||||||
from core.models.orm_models.ApplicationVersion import ApplicationVersion
|
from core.models.orm_models.ApplicationVersion import ApplicationVersion
|
||||||
|
|
||||||
|
# generic
|
||||||
import sys
|
import sys
|
||||||
import json
|
import json
|
||||||
|
|
||||||
|
|
@ -90,15 +90,6 @@ def new_sync(client_observer: ClientObserver, connection_observer: ConnectionObs
|
||||||
|
|
||||||
# We only make it past this point if there's New Data
|
# We only make it past this point if there's New Data
|
||||||
|
|
||||||
####################################
|
|
||||||
# MAKE SURE TO GET NEW APPS (subgroups)
|
|
||||||
####################################
|
|
||||||
if 'application_versions' in changed_tables:
|
|
||||||
logger.info("Adding the application_versions to changed tables!")
|
|
||||||
changed_tables.extend(APP_CODES.keys())
|
|
||||||
print(f"changed_tables is {changed_tables}")
|
|
||||||
|
|
||||||
|
|
||||||
####################################
|
####################################
|
||||||
# API CALLS: GET NEW DATA IN BULK
|
# API CALLS: GET NEW DATA IN BULK
|
||||||
####################################
|
####################################
|
||||||
|
|
@ -116,33 +107,28 @@ def new_sync(client_observer: ClientObserver, connection_observer: ConnectionObs
|
||||||
|
|
||||||
quantity_of_entries = len(results.data)
|
quantity_of_entries = len(results.data)
|
||||||
logger.info(f"We have valid API call results. There are {quantity_of_entries} entries")
|
logger.info(f"We have valid API call results. There are {quantity_of_entries} entries")
|
||||||
|
all_results = results.data
|
||||||
|
|
||||||
####################################
|
####################################
|
||||||
# LOOP INSERT INTO DATABASE
|
# LOOP INSERT INTO DATABASE
|
||||||
####################################
|
####################################
|
||||||
client_observer.notify('synchronizing', f'Inserting into Database..')
|
client_observer.notify('synchronizing', f'Inserting into Database..')
|
||||||
skipped = []
|
skipped = []
|
||||||
FIRST_APP_VERSION_LOOP_ITERATION = True
|
|
||||||
|
|
||||||
for key, each_api_result in results.data.items():
|
for key, each_api_result in all_results.items():
|
||||||
# logger.info(f"We are inserting {key}")
|
|
||||||
if not each_api_result.valid:
|
if not each_api_result.valid:
|
||||||
logger.info(f"Skipping invalid api response for {key}")
|
logger.info(f"Skipping invalid api response for {key}")
|
||||||
skipped.append(key)
|
skipped.append(key)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
logger.info(f"Inserting valid api data for {key} into the Database, and FIRST_APP_VERSION_LOOP_ITERATION is {FIRST_APP_VERSION_LOOP_ITERATION}")
|
logger.info(f"Inserting valid api data for {key} into the Database")
|
||||||
each_insert = insert_data(
|
each_insert = insert_data(
|
||||||
key=key,
|
key=key,
|
||||||
each_api_calls_data=each_api_result.data,
|
each_api_calls_data=each_api_result.data,
|
||||||
client_observer=client_observer,
|
client_observer=client_observer
|
||||||
FIRST_APP_VERSION_LOOP_ITERATION=FIRST_APP_VERSION_LOOP_ITERATION,
|
|
||||||
)
|
)
|
||||||
logger.info(f"Exited the insert data function with a result of {each_insert.valid}")
|
logger.info(f"Exited the insert data function with a result of {each_insert.valid}")
|
||||||
|
|
||||||
if each_insert.which_table == "application_versions":
|
|
||||||
FIRST_APP_VERSION_LOOP_ITERATION = False
|
|
||||||
|
|
||||||
if each_insert.valid:
|
if each_insert.valid:
|
||||||
logger.info(f"Success with insert of {key}")
|
logger.info(f"Success with insert of {key}")
|
||||||
client_observer.notify('synchronizing', f'Inserted {key}')
|
client_observer.notify('synchronizing', f'Inserted {key}')
|
||||||
|
|
@ -188,7 +174,6 @@ def insert_data(
|
||||||
key: str,
|
key: str,
|
||||||
each_api_calls_data: dict,
|
each_api_calls_data: dict,
|
||||||
client_observer: ClientObserver,
|
client_observer: ClientObserver,
|
||||||
FIRST_APP_VERSION_LOOP_ITERATION: bool
|
|
||||||
) -> DatabaseOperation:
|
) -> DatabaseOperation:
|
||||||
|
|
||||||
####################################
|
####################################
|
||||||
|
|
@ -205,20 +190,6 @@ def insert_data(
|
||||||
)
|
)
|
||||||
return db_result
|
return db_result
|
||||||
|
|
||||||
# application versions
|
|
||||||
if key in APP_CODES:
|
|
||||||
logger.info(f"{key} counts as a new ORM but uses 'application_versions' and FIRST_APP_VERSION_LOOP_ITERATION is {FIRST_APP_VERSION_LOOP_ITERATION}")
|
|
||||||
new_orm_model = get_orm_model("application_versions")
|
|
||||||
|
|
||||||
db_result = insert_one_orm_model(
|
|
||||||
which_key="application_versions",
|
|
||||||
which_model=new_orm_model,
|
|
||||||
new_data=each_api_calls_data,
|
|
||||||
override=FIRST_APP_VERSION_LOOP_ITERATION,
|
|
||||||
)
|
|
||||||
db_result.which_table = "application_versions"
|
|
||||||
return db_result
|
|
||||||
|
|
||||||
####################################
|
####################################
|
||||||
# LEGACY MANUAL SQL
|
# LEGACY MANUAL SQL
|
||||||
####################################
|
####################################
|
||||||
|
|
@ -228,14 +199,3 @@ def insert_data(
|
||||||
# UNKNOWN MODEL
|
# UNKNOWN MODEL
|
||||||
####################################
|
####################################
|
||||||
return DatabaseOperation(valid=False, error_type=DBErrorType.UNKNOWN_MODEL)
|
return DatabaseOperation(valid=False, error_type=DBErrorType.UNKNOWN_MODEL)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Legacy version:
|
|
||||||
# "firefox": legacy_insert.for_application_versions,
|
|
||||||
# "chromium": legacy_insert.for_application_versions,
|
|
||||||
# "brave": legacy_insert.for_application_versions,
|
|
||||||
# "librewolf": legacy_insert.for_application_versions,
|
|
||||||
|
|
||||||
# ISOLATION TESTS:
|
|
||||||
# changed_tables = ["locations", "operators", "applications", "client_version", "subscriptions", "applications", "firefox", "chromium", "brave", "librewolf"]
|
|
||||||
|
|
|
||||||
|
|
@ -9,10 +9,7 @@ def switch_endpoint_domain(domain: str) -> dict:
|
||||||
"client_version": f"https://{domain}/api/v1/platforms/linux-x86_64/appimage/client-versions",
|
"client_version": f"https://{domain}/api/v1/platforms/linux-x86_64/appimage/client-versions",
|
||||||
"subscriptions": f"https://{domain}/api/v1/subscription-plans",
|
"subscriptions": f"https://{domain}/api/v1/subscription-plans",
|
||||||
"applications": f"https://{domain}/api/v1/platforms/linux-x86_64/applications",
|
"applications": f"https://{domain}/api/v1/platforms/linux-x86_64/applications",
|
||||||
"firefox": f"https://{domain}/api/v1/platforms/linux-x86_64/applications/firefox/application-versions",
|
"application_versions": f"https://{domain}/api/v1/platforms/linux-x86_64/application-versions",
|
||||||
"chromium": f"https://{domain}/api/v1/platforms/linux-x86_64/applications/chromium/application-versions",
|
|
||||||
"brave": f"https://{domain}/api/v1/platforms/linux-x86_64/applications/brave/application-versions",
|
|
||||||
"librewolf": f"https://{domain}/api/v1/platforms/linux-x86_64/applications/librewolf/application-versions"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue