handle error based on HTTP status

This commit is contained in:
Corban-Lee Jones 2024-10-02 16:16:50 +01:00
parent 024a26325b
commit 64b569fd4d
2 changed files with 22 additions and 18 deletions

View File

@ -156,23 +156,26 @@ $(document).on("selectedServerChange", function() {
async function loadServers() { async function loadServers() {
$(".server-loading-item").show(); $(".server-loading-item").show();
try { generateServers()
let response = await generateServers(); .then(servers => {
$(".server-loading-item").hide(); servers.forEach(server => addToLoadedServers(server, false));
})
if (response.hasOwnProperty("retry_after")) { .catch(error => {
$(".server-rate-limit").show(); switch (error.status) {
return; case 401:
} window.location.href = "/login"; // discord token has expired
break;
response.forEach(server => { case 429:
addToLoadedServers(server, false); $(".server-rate-limit").show();
break;
default:
logError(error);
break;
}
})
.finally(() => {
$(".server-loading-item").hide();
}); });
}
catch (error) {
logError(error);
}
} }
// #endregion // #endregion

View File

@ -35,10 +35,11 @@ class GuildsView(View):
url=f"{settings.DISCORD_API_URL}/users/@me/guilds", url=f"{settings.DISCORD_API_URL}/users/@me/guilds",
headers={"Authorization": f"Bearer {access_token}"} headers={"Authorization": f"Bearer {access_token}"}
) )
status = response.status_code
guild_data = response.json() guild_data = response.json()
if "retry_after" in guild_data: if status != 200:
return JsonResponse(guild_data, safe=False) return JsonResponse(guild_data, status=status, safe=False)
# guilds where the user either administrates or owns # guilds where the user either administrates or owns
cleaned_guild_data = [] cleaned_guild_data = []