Fixed application_versions insert on sync

This commit is contained in:
SimplifiedPrivacy 2026-08-06 10:58:44 -04:00
parent 8f184272b4
commit 1b609a9e5e
2 changed files with 10 additions and 53 deletions

View file

@ -1,8 +1,10 @@
from core.services.sync import legacy_insert
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.insert_for_orm import insert_one_orm_model
from core.services.networking.httpx import connect
# return objects
from core.services.networking.api_requests.ApiResponseModel import ApiResponse, ErrorType
from core.models.DatabaseOperation import DatabaseOperation, DBErrorType
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.Constants import Constants
from core.services.sync import legacy_insert
from core.controllers.ApplicationController import ApplicationController
from core.controllers.ApplicationVersionController import ApplicationVersionController
from core.controllers.ClientVersionController import ClientVersionController
@ -26,7 +26,7 @@ from core.observers.ClientObserver import ClientObserver
from core.observers.ConnectionObserver import ConnectionObserver
from core.models.orm_models.ApplicationVersion import ApplicationVersion
# generic
import sys
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
####################################
# 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
####################################
@ -116,33 +107,28 @@ def new_sync(client_observer: ClientObserver, connection_observer: ConnectionObs
quantity_of_entries = len(results.data)
logger.info(f"We have valid API call results. There are {quantity_of_entries} entries")
all_results = results.data
####################################
# LOOP INSERT INTO DATABASE
####################################
client_observer.notify('synchronizing', f'Inserting into Database..')
skipped = []
FIRST_APP_VERSION_LOOP_ITERATION = True
for key, each_api_result in results.data.items():
# logger.info(f"We are inserting {key}")
for key, each_api_result in all_results.items():
if not each_api_result.valid:
logger.info(f"Skipping invalid api response for {key}")
skipped.append(key)
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(
key=key,
each_api_calls_data=each_api_result.data,
client_observer=client_observer,
FIRST_APP_VERSION_LOOP_ITERATION=FIRST_APP_VERSION_LOOP_ITERATION,
client_observer=client_observer
)
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:
logger.info(f"Success with insert of {key}")
client_observer.notify('synchronizing', f'Inserted {key}')
@ -188,7 +174,6 @@ def insert_data(
key: str,
each_api_calls_data: dict,
client_observer: ClientObserver,
FIRST_APP_VERSION_LOOP_ITERATION: bool
) -> DatabaseOperation:
####################################
@ -205,20 +190,6 @@ def insert_data(
)
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
####################################
@ -228,14 +199,3 @@ def insert_data(
# 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"]

View file

@ -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",
"subscriptions": f"https://{domain}/api/v1/subscription-plans",
"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",
"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"
"application_versions": f"https://{domain}/api/v1/platforms/linux-x86_64/application-versions",
}