"use strict"; function ApiCall() { let url = "https://api.schachklub-ettlingen.de/"; let timeout = 15000; this.getRegisteredPlayers = function (group, callback) { getApi( "registrations?" + $.param(group), "Lade gemeldete Spieler", callback ); }; this.getCountRegistered = function (callback) { getApi("registrations/groups", "Zähle gemeldete Spieler", callback); }; this.getPlayersFromClub = function (clubZps, callback) { getApi("players/list?" + $.param(clubZps), "Lade Spielerliste", callback); }; this.getClubList = function (callback) { getApi("clubs", "Lade Vereinsliste", callback); }; this.searchPlayer = function (formData, callback) { getApi("players/search?" + $.param(formData), "Suche Spieler", callback); }; this.registerDsbPlayer = function (dsb_players, callback) { postApi( "registration/dsb_players", dsb_players, "Registriere Spieler", callback ); }; this.registerNewPlayer = function (new_player, callback) { postApi( "registration/new_player", new_player, "Registriere Spieler", callback ); }; function getApi(route, strLoadingMsg, callback) { callApi("GET", route, null, strLoadingMsg, callback); } function postApi(route, data, strLoadingMsg, callback) { callApi("POST", route, data, strLoadingMsg, callback); } function callApi(method, route, data, strLoadingMsg, callback) { showLoadingModal(strLoadingMsg); setTimeout(function () { $.ajax({ method: method, url: url + route, crossDomain: true, timeout: timeout, data: data ? JSON.stringify(data) : "", contentType: "application/json", success: function (response) { closeLoadingModal(); callback(true, response); }, error: function (xhr, status, error) { console.log({ method, route, data, xhr, status, error }); showOnError({ method, route, data, status, error }); }, }); }, 450); } function closeLoadingModal() { $("#loadingModal").modal("hide"); } function showLoadingModal(text) { if (!text) text = "Lade"; setLoadingText(text); $("#loadingModal").modal("show"); } function showOnError(oError) { closeLoadingModal(); oError.timestamp = new Date().toLocaleString(); $("#errorModalMessage").text(JSON.stringify(oError, null, "\t")); $("#errorModal").modal("show"); } function setLoadingText(text) { let nonbreakingText = text.replace(/ /g, " "); document.getElementById("loadingText").innerHTML = nonbreakingText; } }