diff --git a/src/khoj/interface/web/content_source_github_input.html b/src/khoj/interface/web/content_source_github_input.html index ff82b1f2..705e5672 100644 --- a/src/khoj/interface/web/content_source_github_input.html +++ b/src/khoj/interface/web/content_source_github_input.html @@ -124,6 +124,7 @@ return; } + // Save Github config on server const csrfToken = document.cookie.split('; ').find(row => row.startsWith('csrftoken'))?.split('=')[1]; fetch('/api/config/data/content-source/github', { method: 'POST', @@ -137,15 +138,26 @@ }) }) .then(response => response.json()) + .then(data => { data["status"] === "ok" ? data : Promise.reject(data) }) + .catch(error => { + document.getElementById("success").innerHTML = "⚠️ Failed to update settings"; + document.getElementById("success").style.display = "block"; + return; + }); + + // Index Github content on server + fetch('/api/update?t=github') + .then(response => response.json()) + .then(data => { data["status"] == "ok" ? data : Promise.reject(data) }) .then(data => { - if (data["status"] == "ok") { - document.getElementById("success").innerHTML = "✅ Successfully updated. Go to your settings page to complete setup."; - document.getElementById("success").style.display = "block"; - } else { - document.getElementById("success").innerHTML = "⚠️ Failed to update settings."; - document.getElementById("success").style.display = "block"; - } + document.getElementById("success").innerHTML = "✅ Successfully updated"; + document.getElementById("success").style.display = "block"; }) + .catch(error => { + document.getElementById("success").innerHTML = "⚠️ Failed to update settings"; + document.getElementById("success").style.display = "block"; + }); + }); {% endblock %} diff --git a/src/khoj/interface/web/content_source_notion_input.html b/src/khoj/interface/web/content_source_notion_input.html index 18eb5a7f..4bc4a20d 100644 --- a/src/khoj/interface/web/content_source_notion_input.html +++ b/src/khoj/interface/web/content_source_notion_input.html @@ -41,6 +41,7 @@ return; } + // Save Notion config on server const csrfToken = document.cookie.split('; ').find(row => row.startsWith('csrftoken'))?.split('=')[1]; fetch('/api/config/data/content-source/notion', { method: 'POST', @@ -53,15 +54,25 @@ }) }) .then(response => response.json()) + .then(data => { data["status"] === "ok" ? data : Promise.reject(data) }) + .catch(error => { + document.getElementById("success").innerHTML = "⚠️ Failed to update settings"; + document.getElementById("success").style.display = "block"; + return; + }); + + // Index Notion content on server + fetch('/api/update?t=notion') + .then(response => response.json()) + .then(data => { data["status"] == "ok" ? data : Promise.reject(data) }) .then(data => { - if (data["status"] == "ok") { - document.getElementById("success").innerHTML = "✅ Successfully updated. Go to your settings page to complete setup."; - document.getElementById("success").style.display = "block"; - } else { - document.getElementById("success").innerHTML = "⚠️ Failed to update settings."; - document.getElementById("success").style.display = "block"; - } + document.getElementById("success").innerHTML = "✅ Successfully updated"; + document.getElementById("success").style.display = "block"; }) + .catch(error => { + document.getElementById("success").innerHTML = "⚠️ Failed to update settings"; + document.getElementById("success").style.display = "block"; + }); }); {% endblock %} diff --git a/src/khoj/routers/api.py b/src/khoj/routers/api.py index ddfe9bc1..4e050eee 100644 --- a/src/khoj/routers/api.py +++ b/src/khoj/routers/api.py @@ -177,11 +177,15 @@ async def set_content_config_github_data( user = request.user.object - await adapters.set_user_github_config( - user=user, - pat_token=updated_config.pat_token, - repos=updated_config.repos, - ) + try: + await adapters.set_user_github_config( + user=user, + pat_token=updated_config.pat_token, + repos=updated_config.repos, + ) + except Exception as e: + logger.error(e, exc_info=True) + raise HTTPException(status_code=500, detail="Failed to set Github config") update_telemetry_state( request=request, @@ -205,10 +209,14 @@ async def set_content_config_notion_data( user = request.user.object - await adapters.set_notion_config( - user=user, - token=updated_config.token, - ) + try: + await adapters.set_notion_config( + user=user, + token=updated_config.token, + ) + except Exception as e: + logger.error(e, exc_info=True) + raise HTTPException(status_code=500, detail="Failed to set Github config") update_telemetry_state( request=request,