From e0357f558a84e6d05e4299109b971fe6ecd1f9cc Mon Sep 17 00:00:00 2001 From: Chris Woodward Date: Fri, 20 Feb 2015 15:39:50 -0800 Subject: [PATCH] Added error handling around github user repo viewing. Fixes #10 --- Modules/Github/Github.cs | 28 +++++++++++++++++----------- Modules/Github/Module.config | 2 +- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/Modules/Github/Github.cs b/Modules/Github/Github.cs index 3e10972..254b602 100755 --- a/Modules/Github/Github.cs +++ b/Modules/Github/Github.cs @@ -43,22 +43,29 @@ namespace Combot.Modules.Plugins if (foundUser.TotalCount > 0) { User user = await github.User.Get(foundUser.Items.First().Login); - if (command.Arguments.ContainsKey("Repository ID")) + if (command.Arguments.ContainsKey("Repository")) { - string repo = command.Arguments["Repository ID"]; - Repository foundRepo = await github.Repository.Get(user.Login, repo); - if (foundRepo != null) + string repo = command.Arguments["Repository"]; + try { - string repoMessage = string.Format("\u0002{0}\u0002 | Created On \u0002{1}\u0002 | \u0002{2}\u0002 Open Issues | \u0002{3}\u0002 Forks | \u0002{4}\u0002 Stargazers | {5}", foundRepo.FullName, foundRepo.CreatedAt.ToString("d"), foundRepo.OpenIssuesCount, foundRepo.ForksCount, foundRepo.StargazersCount, foundRepo.HtmlUrl); - SendResponse(command.MessageType, command.Location, command.Nick.Nickname, repoMessage); - if (foundRepo.Description != string.Empty) + Repository foundRepo = await github.Repository.Get(user.Login, repo); + if (foundRepo != null) { - SendResponse(command.MessageType, command.Location, command.Nick.Nickname, foundRepo.Description); + string repoMessage = string.Format("\u0002{0}\u0002 | Created On \u0002{1}\u0002 | \u0002{2}\u0002 Open Issues | \u0002{3}\u0002 Forks | \u0002{4}\u0002 Stargazers | {5}", foundRepo.FullName, foundRepo.CreatedAt.ToString("d"), foundRepo.OpenIssuesCount, foundRepo.ForksCount, foundRepo.StargazersCount, foundRepo.HtmlUrl); + SendResponse(command.MessageType, command.Location, command.Nick.Nickname, repoMessage); + if (foundRepo.Description != string.Empty) + { + SendResponse(command.MessageType, command.Location, command.Nick.Nickname, foundRepo.Description); + } + } + else + { + SendResponse(command.MessageType, command.Location, command.Nick.Nickname, "Invalid Repository Name"); } } - else + catch (Octokit.NotFoundException ex) { - SendResponse(command.MessageType, command.Location, command.Nick.Nickname, "Invalid Repository ID"); + SendResponse(command.MessageType, command.Location, command.Nick.Nickname, "Invalid Repository Name"); } } else @@ -79,7 +86,6 @@ namespace Combot.Modules.Plugins catch (Octokit.ApiValidationException ex) { OnError(ex.Message); - return; } } diff --git a/Modules/Github/Module.config b/Modules/Github/Module.config index 5fb6b0e..d82c278 100755 --- a/Modules/Github/Module.config +++ b/Modules/Github/Module.config @@ -29,7 +29,7 @@ "Required": false }, { - "Name": "Repository ID", + "Name": "Repository", "Description": "The repository you want information on.", "AllowedValues": [], "MessageTypes": [