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() {
$(".server-loading-item").show();
try {
let response = await generateServers();
$(".server-loading-item").hide();
if (response.hasOwnProperty("retry_after")) {
$(".server-rate-limit").show();
return;
}
response.forEach(server => {
addToLoadedServers(server, false);
generateServers()
.then(servers => {
servers.forEach(server => addToLoadedServers(server, false));
})
.catch(error => {
switch (error.status) {
case 401:
window.location.href = "/login"; // discord token has expired
break;
case 429:
$(".server-rate-limit").show();
break;
default:
logError(error);
break;
}
})
.finally(() => {
$(".server-loading-item").hide();
});
}
catch (error) {
logError(error);
}
}
// #endregion

View File

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