added error message if signing up fails

This commit is contained in:
Sarah Faey 2022-12-03 14:47:19 +01:00
parent 766faf7b66
commit 2246624917
6 changed files with 79 additions and 40 deletions

View file

@ -103,8 +103,14 @@ namespace DiscordBot.CommandHandlers
if(accounts.Count == 1)
{
ApiGuildWars2Account account = accounts.First();
await SignUp(buttonType, raidId, roleId, userIdToSignUp, account.GuildWars2AccountId, signedUpByUserId);
await UpdateOrRespond(component, "successfully signed up", null, roleMessageExists);
if(await SignUp(buttonType, raidId, roleId, userIdToSignUp, account.GuildWars2AccountId, signedUpByUserId))
{
await UpdateOrRespond(component, "successfully signed up", null, roleMessageExists);
}
else
{
await UpdateOrRespond(component, "signing up failed", null, roleMessageExists);
}
}
else if(accounts.Count > 1)
{
@ -116,7 +122,7 @@ namespace DiscordBot.CommandHandlers
}
}
public async Task SignUp(string buttonType, int raidId, int roleId, ulong userIdToSignUp, int gw2AccountId, ulong signedUpByUserId)
public async Task<bool> SignUp(string buttonType, int raidId, int roleId, ulong userIdToSignUp, int gw2AccountId, ulong signedUpByUserId)
{
ApiSignUp signUp = new ApiSignUp()
{
@ -130,17 +136,19 @@ namespace DiscordBot.CommandHandlers
switch(buttonType)
{
case Constants.ComponentIds.SIGN_UP_BUTTON:
await _httpService.SignUp(signUp);
return await _httpService.SignUp(signUp);
break;
case Constants.ComponentIds.MAYBE_BUTTON:
await _httpService.SignUpMaybe(signUp);
return await _httpService.SignUpMaybe(signUp);
break;
case Constants.ComponentIds.BACKUP_BUTTON:
await _httpService.SignUpBackup(signUp);
return await _httpService.SignUpBackup(signUp);
break;
case Constants.ComponentIds.FLEX_BUTTON:
await _httpService.SignUpFlex(signUp);
return await _httpService.SignUpFlex(signUp);
break;
default:
return false;
}
}

View file

@ -54,8 +54,14 @@ namespace DiscordBot.CommandHandlers
signedUpByUserId = modal.User.Id,
roleId = modalParameters.RoleId
};
await _httpService.SignUp(signUpExternal);
await modal.RespondAsync($"signed up {userName}", ephemeral: true);
if(await _httpService.SignUp(signUpExternal))
{
await modal.RespondAsync($"signed up {userName}", ephemeral: true);
}
else
{
await modal.RespondAsync($"signing up failed", ephemeral: true);
}
break;
}
}

View file

@ -36,12 +36,22 @@ namespace DiscordBot.CommandHandlers
case Constants.ComponentIds.ACCOUNT_SELECT_DROP_DOWN:
AccountSelectionMessage.Parameters accountParameters = AccountSelectionMessage.ParseId(component.Data.CustomId);
int accountId = int.Parse(component.Data.Values.First());
await _handlerFunctions.SignUp(accountParameters.ButtonType, accountParameters.RaidId, accountParameters.RoleId, accountParameters.UserIdToSignUp, accountId, accountParameters.SignedUpByUserId);
await component.UpdateAsync(x =>
if(await _handlerFunctions.SignUp(accountParameters.ButtonType, accountParameters.RaidId, accountParameters.RoleId, accountParameters.UserIdToSignUp, accountId, accountParameters.SignedUpByUserId))
{
x.Content = "successfully signed up";
x.Components = null;
});
await component.UpdateAsync(x =>
{
x.Content = "successfully signed up";
x.Components = null;
});
}
else
{
await component.UpdateAsync(x =>
{
x.Content = "signing up failed";
x.Components = null;
});
}
break;
}
}

View file

@ -99,24 +99,24 @@ namespace DiscordBot.Services
return new List<ApiRole>();
}
public async Task SignUp(ApiSignUp signUp)
public async Task<bool> SignUp(ApiSignUp signUp)
{
await SendSignUp(signUp, "DiscordBot/SignUp");
return await SendSignUp(signUp, "DiscordBot/SignUp");
}
public async Task SignUpMaybe(ApiSignUp signUp)
public async Task<bool> SignUpMaybe(ApiSignUp signUp)
{
await SendSignUp(signUp, "DiscordBot/SignUpMaybe");
return await SendSignUp(signUp, "DiscordBot/SignUpMaybe");
}
public async Task SignUpBackup(ApiSignUp signUp)
public async Task<bool> SignUpBackup(ApiSignUp signUp)
{
await SendSignUp(signUp, "DiscordBot/SignUpBackup");
return await SendSignUp(signUp, "DiscordBot/SignUpBackup");
}
public async Task SignUpFlex(ApiSignUp signUp)
public async Task<bool> SignUpFlex(ApiSignUp signUp)
{
await SendSignUp(signUp, "DiscordBot/SignUpFlex");
return await SendSignUp(signUp, "DiscordBot/SignUpFlex");
}
public async Task SignOff(ApiSignUp signUp)
@ -124,7 +124,7 @@ namespace DiscordBot.Services
await SendSignUp(signUp, "DiscordBot/SignOff");
}
private async Task SendSignUp(ApiSignUp signUp, string requestUri)
private async Task<bool> SendSignUp(ApiSignUp signUp, string requestUri)
{
var httpClient = _httpClientFactory.CreateClient(Constants.HTTP_CLIENT_NAME);
@ -134,6 +134,14 @@ namespace DiscordBot.Services
Application.Json);
var httpResponseMessage = await httpClient.PostAsync(requestUri, raidItemJson);
if (httpResponseMessage.IsSuccessStatusCode)
{
using var contentStream =
await httpResponseMessage.Content.ReadAsStreamAsync();
return await JsonSerializer.DeserializeAsync<bool>(contentStream, _serializerOptions);
}
return false;
}
public async Task<Tuple<bool, string>> CreateAccount(ApiRaid.Role.User user)