var url_getMasterMessages = "https://digitalself.io/api_feed/exode/api_getMasterMessages.php"; var url_setMasterMessageAsRead = "https://digitalself.io/api_feed/exode/api_setMasterMessageAsRead.php"; // Checks new public messages for account, // and triggers a simple tutorial banner by default displaying that message // this is an API V2, so in case of an OK message it should be with: // OK|[my messages] var apiContent_targetSceneForDisplay = ""; var apiContent_lastMasterMessages = []; var apiContent_currentlyDisplayedMessage = {}; var apiContent_masterMessageIntervalChecker = undefined; // to be used for interval readings function network_checkMasterMessages(_account = "", _callback = function() { if (apiContent_lastMasterMessages.length > 0) { for (let km = 0; km < apiContent_lastMasterMessages.length; km++) { let currentMessage = apiContent_lastMasterMessages[km]; if (!currentMessage["isSeen"]) { apiContent_currentlyDisplayedMessage = currentMessage; exodeTutorial_activateSimpleMessage("masterMessage", { "welcome_title":"New message received!", "welcome_description":currentMessage["message"], "welcome_action_text":"OK", "withDefaultButton":true, // if we want several buttons, we set up a buttonChoices "buttonChoices":[], }, apiContent_targetSceneForDisplay, function() { network_setMasterMessageAsRead(myAccount, apiContent_currentlyDisplayedMessage["messageId"]); }); } } } }) { console.log("Checking Master Messages..."); let urlForThisAccount = url_getMasterMessages + "?account=" + _account; $.ajax(urlForThisAccount, { method: 'GET', complete: function(xhr, textStatus) { }, data:"" }) .done(function(data) { if (data.indexOf("ERROR") === 0) { console.log("We had an error when checking messages for that account (" + _account + ")."); console.log(data); } else if (data.indexOf("OK") === 0) { let apiFeedbackTable = data.split("|"); let apiContent = apiFeedbackTable[1]; apiContent_lastMasterMessages = JSON.parse(apiContent); _callback(); } else { // unknown situation console.log("We have an unknown message here when checking messages: "); console.log(data); } }) .fail(function(data) { console.log("Retour de feed network (erreur B) : " + data); }) .always(function() { // alert( "complete" ); }); } // will set the first non read message as read function network_setMasterMessageAsRead(_account = "", _messageId = "",) { console.log("Setting Master Message as read... for message id : " + _messageId); let urlForThisAccount = url_setMasterMessageAsRead + "?account=" + _account + "&messageId=" + _messageId; $.ajax(urlForThisAccount, { method: 'GET', complete: function(xhr, textStatus) { }, data:"" }) .done(function(data) { if (data.indexOf("ERROR") === 0) { console.log("We had an error when setting a message as read for this account (" + _account + ")."); console.log(data); } else if (data.indexOf("OK") === 0) { console.log("all ok (message set as read)"); } else { // unknown situation console.log("We have an unknown message here when checking messages: "); console.log(data); } }) .fail(function(data) { console.log("Retour de feed network (erreur B) : " + data); }) .always(function() { // alert( "complete" ); // we will hide the message now exodeTutorial_hideSimpleMessage("masterMessage"); }); } function network_startCheckingMasterMessages(_account = "", _duration = 30000) { if (apiContent_masterMessageIntervalChecker === undefined) { // network_checkMasterMessages(_account); } // apiContent_masterMessageIntervalChecker = setInterval("network_checkMasterMessages('" + _account + "')", _duration); }