Merge pull request #309 from Phlogi/active-deezer-too

Enhancement: Set new deezer account to active (like spotify)
This commit is contained in:
Spotizerr
2025-08-23 06:41:15 -06:00
committed by GitHub
2 changed files with 18 additions and 13 deletions

View File

@@ -23,6 +23,22 @@ router = APIRouter()
init_credentials_db() init_credentials_db()
def _set_active_account_if_empty(service: str, name: str):
"""
Sets the newly created account as the active account in the main config
if no active account is currently set for the given service.
"""
try:
from routes.utils.celery_config import get_config_params as get_main_config_params
from routes.system.config import save_config
config = get_main_config_params()
if not config.get(service):
config[service] = name
save_config(config)
except Exception as e:
logger.warning(f"Could not set new {service.capitalize()} account '{name}' as active: {e}")
@router.get("/spotify_api_config") @router.get("/spotify_api_config")
@router.put("/spotify_api_config") @router.put("/spotify_api_config")
async def handle_spotify_api_config(request: Request, current_user: User = Depends(require_admin_from_state)): async def handle_spotify_api_config(request: Request, current_user: User = Depends(require_admin_from_state)):
@@ -130,18 +146,7 @@ async def handle_create_credential(service: str, name: str, request: Request, cu
# Validation is handled within create_credential utility function # Validation is handled within create_credential utility function
result = create_credential(service, name, data) result = create_credential(service, name, data)
# set as active Spotify account if none is set _set_active_account_if_empty(service, name)
if service == "spotify":
try:
from routes.utils.celery_config import get_config_params as get_main_config_params
from routes.system.config import save_config
config = get_main_config_params()
# The field is likely "spotify" (as used in frontend)
if not config.get("spotify"):
config["spotify"] = name
save_config(config)
except Exception as e:
logger.warning(f"Could not set new Spotify account '{name}' as active: {e}")
return { return {
"message": f"Credential for '{name}' ({service}) created successfully.", "message": f"Credential for '{name}' ({service}) created successfully.",

View File

@@ -85,7 +85,7 @@ export function AccountsTab() {
onSuccess: () => { onSuccess: () => {
toast.success("Account added successfully!"); toast.success("Account added successfully!");
queryClient.invalidateQueries({ queryKey: ["credentials", activeService] }); queryClient.invalidateQueries({ queryKey: ["credentials", activeService] });
queryClient.invalidateQueries({ queryKey: ["config"] }); // Invalidate config to update active Spotify account in UI queryClient.invalidateQueries({ queryKey: ["config"] }); // Invalidate config to update active Spotify/Deezer account in UI
setIsAdding(false); setIsAdding(false);
setSubmitError(null); setSubmitError(null);
reset(); reset();