diff --git a/backend/api/routes/settings_api.py b/backend/api/routes/settings_api.py index 56653266a..7e836c42d 100644 --- a/backend/api/routes/settings_api.py +++ b/backend/api/routes/settings_api.py @@ -7,6 +7,12 @@ from app.models.database.settings import Settings from app.security import is_setup_required +from app.models.database.libraries import Libraries +from app.models.database.users import Users +from app.models.database.invitations import Invitations +from app.models.database.requests import Requests + + api = Namespace("Settings", description="Settings related operations", path="/settings") api.add_model("SettingsPostModel", SettingsPostModel) @@ -78,6 +84,17 @@ def put(self): else: Settings.update(value=value).where(Settings.key == key).execute() + if key == "server_type": + Libraries.delete().execute() + Users.delete().execute() + Invitations.delete().execute() + + if value == "plex": + Requests.delete().where(Requests.service == "jellyseerr").execute() + elif value == "jellyfin": + Requests.delete().where(Requests.service == "overseerr").execute() + + return response, 200 diff --git a/backend/api/routes/users_api.py b/backend/api/routes/users_api.py index 7c16d3b19..d9037eb0b 100644 --- a/backend/api/routes/users_api.py +++ b/backend/api/routes/users_api.py @@ -3,7 +3,7 @@ from flask_restx import Namespace, Resource from json import loads, dumps -from helpers.universal import global_sync_users, global_delete_user, global_get_user_profile_picture +from helpers.universal import global_sync_users_to_media_server, global_delete_user_from_media_server, global_get_user_profile_picture from app.models.database.users import Users from app.extensions import cache @@ -37,7 +37,7 @@ class UsersAPI(Resource): @api.doc(description="Delete a user from the database and media server") @api.response(500, "Internal server error") def delete(self, user_id): - return global_delete_user(user_id), 200 + return global_delete_user_from_media_server(user_id), 200 @api.route("//profile-picture") @@ -61,5 +61,5 @@ class UsersScanAPI(Resource): @api.doc(description="Scan for new users") @api.response(500, "Internal server error") def get(self): - return global_sync_users(), 200 + return global_sync_users_to_media_server(), 200 diff --git a/backend/api/routes/webhooks_api.py b/backend/api/routes/webhooks_api.py index 2d8e28b44..e08b32b65 100644 --- a/backend/api/routes/webhooks_api.py +++ b/backend/api/routes/webhooks_api.py @@ -24,8 +24,12 @@ def get(self): @api.response(200, "Successfully created a webhook") def post(self): """Create a webhook""" - webhook = Webhooks.create(name=str(request.form.get("name")), url=str(request.form.get("url"))) + + # Create the webhook + webhook = Webhooks.create(**request.form) webhook.created = datetime.utcnow() + + # Return the webhook return loads(dumps(model_to_dict(webhook), indent=4, sort_keys=True, default=str)), 200 @api.route("/") diff --git a/backend/app/scheduler.py b/backend/app/scheduler.py index 9789e5646..43eb19515 100644 --- a/backend/app/scheduler.py +++ b/backend/app/scheduler.py @@ -13,7 +13,7 @@ def check_expiring_users(): if not server_verified(): return # Import the function here to avoid circular imports - from helpers.universal import global_delete_user + from helpers.universal import global_delete_user_from_media_server from helpers.users import get_users_by_expiring # Log message to console @@ -26,7 +26,7 @@ def check_expiring_users(): # Delete all expired users for user in expiring: - global_delete_user(user.id) + global_delete_user_from_media_server(user.id) info(f"Deleting user { user.email if user.email else user.username } due to expired invite.") @@ -54,10 +54,10 @@ def scan_users(): if not server_verified(): return # Import the function here to avoid circular imports - from helpers.universal import global_sync_users + from helpers.universal import global_sync_users_to_media_server info("Scanning for new users") - global_sync_users() + global_sync_users_to_media_server() @schedule.task("interval", id="checkForUpdates", hours=1, misfire_grace_time=900) def check_for_updates(): diff --git a/backend/helpers/plex.py b/backend/helpers/plex.py index 731d9f33d..bfff9d457 100644 --- a/backend/helpers/plex.py +++ b/backend/helpers/plex.py @@ -255,12 +255,14 @@ def delete_plex_user(user_id: str, server_api_key: Optional[str] = None, server_ try: plex_account.removeFriend(user_id) except NotFound as e: - print(e) + print("NOT IMPORTANT: ", e) + print("The above error is not important, it just means that the user is not a Plex Friend.") try: plex_account.removeHomeUser(user_id) except NotFound as e: - print(e) + print("NOT IMPORTANT: ", e) + print("The above error is not important, it just means that the user is not a Plex Home User.") # ANCHOR - Plex Sync Users