Merge pull request #1894 from qodo-ai/es/improve_response_ai_search

More informative error message in case search returned an error
This commit is contained in:
Tal
2025-06-24 20:17:52 +03:00
committed by GitHub

View File

@ -202,7 +202,23 @@ h1 {
<script> <script>
window.addEventListener('load', function() { window.addEventListener('load', function() {
function displayResults(responseText) { function extractText(responseText) {
try {
console.log('responseText: ', responseText);
const results = JSON.parse(responseText);
const msg = results.message;
if (!msg || msg.trim() === '') {
return "No results found";
}
return msg;
} catch (error) {
console.error('Error parsing results:', error);
throw new Error("Failed parsing response message");
}
}
function displayResults(msg) {
const resultsContainer = document.getElementById('results'); const resultsContainer = document.getElementById('results');
const spinner = document.getElementById('spinner'); const spinner = document.getElementById('spinner');
const searchContainer = document.querySelector('.search-container'); const searchContainer = document.querySelector('.search-container');
@ -214,8 +230,6 @@ window.addEventListener('load', function() {
searchContainer.scrollIntoView({ behavior: 'smooth', block: 'start' }); searchContainer.scrollIntoView({ behavior: 'smooth', block: 'start' });
try { try {
const results = JSON.parse(responseText);
marked.setOptions({ marked.setOptions({
breaks: true, breaks: true,
gfm: true, gfm: true,
@ -223,7 +237,7 @@ window.addEventListener('load', function() {
sanitize: false sanitize: false
}); });
const htmlContent = marked.parse(results.message); const htmlContent = marked.parse(msg);
resultsContainer.className = 'markdown-content'; resultsContainer.className = 'markdown-content';
resultsContainer.innerHTML = htmlContent; resultsContainer.innerHTML = htmlContent;
@ -242,7 +256,7 @@ window.addEventListener('load', function() {
}, 100); }, 100);
} catch (error) { } catch (error) {
console.error('Error parsing results:', error); console.error('Error parsing results:', error);
resultsContainer.innerHTML = '<div class="error-message">Error processing results</div>'; resultsContainer.innerHTML = '<div class="error-message">Cannot process results</div>';
} }
} }
@ -275,24 +289,25 @@ window.addEventListener('load', function() {
body: JSON.stringify(data) body: JSON.stringify(data)
}; };
// const API_ENDPOINT = 'http://0.0.0.0:3000/api/v1/docs_help'; //const API_ENDPOINT = 'http://0.0.0.0:3000/api/v1/docs_help';
const API_ENDPOINT = 'https://help.merge.qodo.ai/api/v1/docs_help'; const API_ENDPOINT = 'https://help.merge.qodo.ai/api/v1/docs_help';
const response = await fetch(API_ENDPOINT, options); const response = await fetch(API_ENDPOINT, options);
const responseText = await response.text();
const msg = extractText(responseText);
if (!response.ok) { if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`); throw new Error(`An error (${response.status}) occurred during search: "${msg}"`);
} }
const responseText = await response.text(); displayResults(msg);
displayResults(responseText);
} catch (error) { } catch (error) {
spinner.style.display = 'none'; spinner.style.display = 'none';
resultsContainer.innerHTML = ` const errorDiv = document.createElement('div');
<div class="error-message"> errorDiv.className = 'error-message';
An error occurred while searching. Please try again later. errorDiv.textContent = `${error}`;
</div> resultsContainer.value = "";
`; resultsContainer.appendChild(errorDiv);
} }
} }