diff --git a/app.js b/app.js new file mode 100644 index 0000000..63c0ac5 --- /dev/null +++ b/app.js @@ -0,0 +1,114 @@ +const candidateImage = document.querySelector("#candidate") +const loadingDiv = document.querySelector("#loading") +const likeButton = document.querySelector("#like") +const likeValue = 1 +const dislikeButton = document.querySelector("#dislike") +const dislikeValue = 0 +const helpButton = document.querySelector("#help") +const cookieName = "session" +const serverPort = "8000" +// const nextButton = document.querySelector("#next") + +const presentAlert = function (header, message) { + const ialert = document.createElement('ion-alert'); + ialert.header = header; + ialert.message = message; + ialert.buttons = ['OK']; + + document.body.appendChild(ialert); + return ialert.present(); +} + + +const getDocumentCookie = function (name) { + const value = `; ${document.cookie}`; + const parts = value.split(`; ${name}=`); + if (parts.length === 2) return parts.pop().split(';').shift(); +} + + // const showLoading = function() { + // candidateImage.style.display = "none" + // loadingDiv.style.display = "block" + // } + + // const hideLoading = function() { + // loadingDiv.style.display = "none" + // candidateImage.style.display = "block" + // } + + const nextImage = function () { + const cookie = getDocumentCookie(cookieName) + // showLoading() + fetch(`http://127.0.0.1:8000/next_picture/${cookie}`) + .then(response => { + if (response.status === 200) { + console.log('ok') + return response.json() + } else if (response.status === 204) { + // alert("You did it! You voted for everything") + presentAlert('Спасибо!', 'Вы оценили все фото, что у нас были') + likeButton.disabled = true + dislikeButton.disabled = true + candidateImage.alt = "Дело сделано!" + throw "Дело сделано!" + } else { + throw new Error("Ошибка") + } + }) + .then(data => { + console.log(data) + console.log(data.picture_uri) + console.log(`http://127.0.0.1:5500/${data.picture_uri}`) + const pictureUrl = data.picture_uri + candidateImage.src = `http://127.0.0.1:5500/${data.picture_uri}` + // hideLoading() + pictureId = data.picture_id + console.log({ pictureId }) + return pictureId + }) + // .catch(error => console.error('Error:', error)) + } + + + const vote = function (picture_id, mark) { + const cookie = getDocumentCookie(cookieName) + fetch(`http://127.0.0.1:${serverPort}/rate_picture/${cookie}/${picture_id}/${mark}`) + .then(response => response.json()) + .then(data => console.log(data)) + .catch(error => console.error('Error:', error)) + + pictureId = nextImage(cookie) + } + + likeButton.onclick = function () { + vote(pictureId, likeValue) // like оценивается на 1 + } + dislikeButton.onclick = function () { + vote(pictureId, dislikeValue) // dislike оценивается на 0 + } + helpButton.onclick = function () { + presentModal() + } + + // nextButton.onclick = function() { + // nextImage(sessionCookie) + // } + + // // Get a reference to an element. + // const candidateImage = document.querySelector("#candidate") + + + if (document.cookie) { + const sessionCookie = getDocumentCookie(cookieName) + let pictureId = nextImage() + } else { + const pictureId = fetch(`http://127.0.0.1:${serverPort}/new_session`) + .then(response => response.json()) + .then(data => { + const cookie = data.cookie + document.cookie = `${cookieName}=${cookie}` + return cookie + }) + .then(cookie => nextImage()) + .catch(error => console.error('Error:', error)) + } \ No newline at end of file