🎨 Added correct json struct to API responses

This commit is contained in:
Florian Sylvain
2021-10-31 15:59:53 +01:00
parent b4b3132ae7
commit 14c3839803
2 changed files with 35 additions and 31 deletions
+5 -2
View File
@@ -21,6 +21,9 @@ $json_object = match ($q) {
default => NULL, default => NULL,
}; };
// TODO : Rajouter la structure status message data $json = json_encode(array(
$json = json_encode($json_object); "status" => 200,
"message" => "Results : " . count($json_object), "data" => $json_object
),JSON_PRETTY_PRINT);
print_r($json); print_r($json);
+11 -10
View File
@@ -13,8 +13,11 @@ let lastRequest = null
function requestToApi(author) { function requestToApi(author) {
if (lastRequest === null || (new Date().getTime() - lastRequest) > 1000) { if (lastRequest === null || (new Date().getTime() - lastRequest) > 1000) {
lastRequest = new Date().getTime() lastRequest = new Date().getTime()
document.querySelector('#results-count').innerHTML = ""
document.querySelector('#results').innerHTML = ""
loader.style.display = "block" loader.style.display = "block"
authorName = author authorName = author.replace(/[^a-zA-Z0-9]/g,'')
console.log(authorName)
fetch(`api.php?q=theses&author=${author}`) fetch(`api.php?q=theses&author=${author}`)
.then(response => response.json()) .then(response => response.json())
.then(data => displayResults(data)) .then(data => displayResults(data))
@@ -41,14 +44,10 @@ function displayResults(results) {
error.classList.add("fade-in"); error.classList.add("fade-in");
errorMessage.innerHTML = results.message errorMessage.innerHTML = results.message
return; return;
} } else if (results.status === 200) {
document.querySelector('#results-count').innerHTML = ""
document.querySelector('#results').innerHTML = ""
let count = 0 let count = 0
results.forEach(elem => { results.data.forEach(elem => {
let result = document.createElement('div') let result = document.createElement('div')
result.classList.add('result-element') result.classList.add('result-element')
let i = 0 let i = 0
@@ -72,22 +71,24 @@ function displayResults(results) {
window.addEventListener('scroll', fadeIn); window.addEventListener('scroll', fadeIn);
fadeIn() fadeIn()
} }
}
let lastSearch = "" let lastSearch = ""
let lastSuggestion = new Date().getTime() let lastSuggestion = new Date().getTime()
let suggestionsDisplayed = false let suggestionsDisplayed = false
function realTimeDisplay() { function realTimeDisplay() {
let search = document.getElementsByName("author")[0].value let search = document.querySelector('input[name=\'author\']').value
search = search.replace(/[^a-zA-Z0-9 ]/g,'')
if (search.length > 3 && (search !== lastSearch || (new Date().getTime() - lastSuggestion) > 500)) { if (search.length > 3 && (search !== lastSearch || (new Date().getTime() - lastSuggestion) > 500)) {
showSuggestions() showSuggestions()
lastSearch = search lastSearch = search
lastSuggestion = new Date().getTime() lastSuggestion = new Date().getTime()
fetch(`api.php?q=authors&author=${search}`) fetch(`api.php?q=authors&author=${search}`)
.then(response => response.json()) .then(response => response.json())
.then(function(data) { .then(results => {
suggestions.innerHTML = "" suggestions.innerHTML = ""
data.forEach(elem => { results.data.forEach(elem => {
let name = document.createElement('p') let name = document.createElement('p')
name.innerHTML = elem name.innerHTML = elem
name.addEventListener('click', () => { name.addEventListener('click', () => {