summaryrefslogtreecommitdiff
path: root/src/SMAPI.Web/Framework/ModRepositories/CurseForgeRepository.cs
diff options
context:
space:
mode:
authorJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2020-06-20 12:43:08 -0400
committerJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2020-06-20 12:43:08 -0400
commite64ecc89f94641d4054162eff4943f660f43030f (patch)
treec43ca79f9947b3e16f946e1dc5fd1d02f70ce571 /src/SMAPI.Web/Framework/ModRepositories/CurseForgeRepository.cs
parentdf6e745c6b842290338317ed1d3e969ee222998c (diff)
parentcb9ff7019995eff92104703f097856d2523e02ce (diff)
downloadSMAPI-e64ecc89f94641d4054162eff4943f660f43030f.tar.gz
SMAPI-e64ecc89f94641d4054162eff4943f660f43030f.tar.bz2
SMAPI-e64ecc89f94641d4054162eff4943f660f43030f.zip
Merge branch 'develop' into stable
Diffstat (limited to 'src/SMAPI.Web/Framework/ModRepositories/CurseForgeRepository.cs')
-rw-r--r--src/SMAPI.Web/Framework/ModRepositories/CurseForgeRepository.cs63
1 files changed, 0 insertions, 63 deletions
diff --git a/src/SMAPI.Web/Framework/ModRepositories/CurseForgeRepository.cs b/src/SMAPI.Web/Framework/ModRepositories/CurseForgeRepository.cs
deleted file mode 100644
index 93ddc1eb..00000000
--- a/src/SMAPI.Web/Framework/ModRepositories/CurseForgeRepository.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-using System;
-using System.Threading.Tasks;
-using StardewModdingAPI.Toolkit.Framework.UpdateData;
-using StardewModdingAPI.Web.Framework.Clients.CurseForge;
-
-namespace StardewModdingAPI.Web.Framework.ModRepositories
-{
- /// <summary>An HTTP client for fetching mod metadata from CurseForge.</summary>
- internal class CurseForgeRepository : RepositoryBase
- {
- /*********
- ** Fields
- *********/
- /// <summary>The underlying CurseForge API client.</summary>
- private readonly ICurseForgeClient Client;
-
-
- /*********
- ** Public methods
- *********/
- /// <summary>Construct an instance.</summary>
- /// <param name="client">The underlying CurseForge API client.</param>
- public CurseForgeRepository(ICurseForgeClient client)
- : base(ModRepositoryKey.CurseForge)
- {
- this.Client = client;
- }
-
- /// <summary>Get metadata about a mod in the repository.</summary>
- /// <param name="id">The mod ID in this repository.</param>
- public override async Task<ModInfoModel> GetModInfoAsync(string id)
- {
- // validate ID format
- if (!uint.TryParse(id, out uint curseID))
- return new ModInfoModel().SetError(RemoteModStatus.DoesNotExist, $"The value '{id}' isn't a valid CurseForge mod ID, must be an integer ID.");
-
- // fetch info
- try
- {
- CurseForgeMod mod = await this.Client.GetModAsync(curseID);
- if (mod == null)
- return new ModInfoModel().SetError(RemoteModStatus.DoesNotExist, "Found no CurseForge mod with this ID.");
- if (mod.Error != null)
- {
- RemoteModStatus remoteStatus = RemoteModStatus.InvalidData;
- return new ModInfoModel().SetError(remoteStatus, mod.Error);
- }
-
- return new ModInfoModel(name: mod.Name, version: this.NormalizeVersion(mod.LatestVersion), url: mod.Url);
- }
- catch (Exception ex)
- {
- return new ModInfoModel().SetError(RemoteModStatus.TemporaryError, ex.ToString());
- }
- }
-
- /// <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
- public override void Dispose()
- {
- this.Client.Dispose();
- }
- }
-}