summaryrefslogtreecommitdiff
path: root/src/SMAPI.Web/Framework/Clients/CurseForge/ResponseModels
diff options
context:
space:
mode:
authorJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2022-05-22 14:38:57 -0400
committerJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2022-05-22 14:38:57 -0400
commit2ab2182645179129997eac3fccb63f6f0683dbe1 (patch)
treeddea4c6e4531a10c698d9757a57ae24c6732bff7 /src/SMAPI.Web/Framework/Clients/CurseForge/ResponseModels
parent5731b015a0c548ac72e0d7ce9c4153aa52da3562 (diff)
parent336cc1cc0f250c96ee23d45e1e08569b67a2e562 (diff)
downloadSMAPI-2ab2182645179129997eac3fccb63f6f0683dbe1.tar.gz
SMAPI-2ab2182645179129997eac3fccb63f6f0683dbe1.tar.bz2
SMAPI-2ab2182645179129997eac3fccb63f6f0683dbe1.zip
Merge branch 'develop' into stable
Diffstat (limited to 'src/SMAPI.Web/Framework/Clients/CurseForge/ResponseModels')
-rw-r--r--src/SMAPI.Web/Framework/Clients/CurseForge/ResponseModels/ModLinksModel.cs7
-rw-r--r--src/SMAPI.Web/Framework/Clients/CurseForge/ResponseModels/ModModel.cs41
-rw-r--r--src/SMAPI.Web/Framework/Clients/CurseForge/ResponseModels/ResponseModel.cs8
3 files changed, 21 insertions, 35 deletions
diff --git a/src/SMAPI.Web/Framework/Clients/CurseForge/ResponseModels/ModLinksModel.cs b/src/SMAPI.Web/Framework/Clients/CurseForge/ResponseModels/ModLinksModel.cs
new file mode 100644
index 00000000..2f9abe4f
--- /dev/null
+++ b/src/SMAPI.Web/Framework/Clients/CurseForge/ResponseModels/ModLinksModel.cs
@@ -0,0 +1,7 @@
+namespace StardewModdingAPI.Web.Framework.Clients.CurseForge.ResponseModels
+{
+ /// <summary>A list of links for a mod.</summary>
+ /// <param name="WebsiteUrl">The URL for the CurseForge mod page.</param>
+ /// <param name="SourceUrl">The URL for the mod's source code, if any.</param>
+ public record ModLinksModel(string WebsiteUrl, string? SourceUrl);
+}
diff --git a/src/SMAPI.Web/Framework/Clients/CurseForge/ResponseModels/ModModel.cs b/src/SMAPI.Web/Framework/Clients/CurseForge/ResponseModels/ModModel.cs
index fd7796f2..7018be54 100644
--- a/src/SMAPI.Web/Framework/Clients/CurseForge/ResponseModels/ModModel.cs
+++ b/src/SMAPI.Web/Framework/Clients/CurseForge/ResponseModels/ModModel.cs
@@ -1,38 +1,9 @@
namespace StardewModdingAPI.Web.Framework.Clients.CurseForge.ResponseModels
{
- /// <summary>An mod from the CurseForge API.</summary>
- public class ModModel
- {
- /*********
- ** Accessors
- *********/
- /// <summary>The mod's unique ID on CurseForge.</summary>
- public int ID { get; }
-
- /// <summary>The mod name.</summary>
- public string Name { get; }
-
- /// <summary>The web URL for the mod page.</summary>
- public string WebsiteUrl { get; }
-
- /// <summary>The available file downloads.</summary>
- public ModFileModel[] LatestFiles { get; }
-
-
- /*********
- ** Public methods
- *********/
- /// <summary>Construct an instance.</summary>
- /// <param name="id">The mod's unique ID on CurseForge.</param>
- /// <param name="name">The mod name.</param>
- /// <param name="websiteUrl">The web URL for the mod page.</param>
- /// <param name="latestFiles">The available file downloads.</param>
- public ModModel(int id, string name, string websiteUrl, ModFileModel[] latestFiles)
- {
- this.ID = id;
- this.Name = name;
- this.WebsiteUrl = websiteUrl;
- this.LatestFiles = latestFiles;
- }
- }
+ /// <summary>A mod from the CurseForge API.</summary>
+ /// <param name="Id">The mod's unique ID on CurseForge.</param>
+ /// <param name="Name">The mod name.</param>
+ /// <param name="LatestFiles">The available file downloads.</param>
+ /// <param name="Links">The URLs for this mod.</param>
+ public record ModModel(int Id, string Name, ModFileModel[] LatestFiles, ModLinksModel Links);
}
diff --git a/src/SMAPI.Web/Framework/Clients/CurseForge/ResponseModels/ResponseModel.cs b/src/SMAPI.Web/Framework/Clients/CurseForge/ResponseModels/ResponseModel.cs
new file mode 100644
index 00000000..4d538a93
--- /dev/null
+++ b/src/SMAPI.Web/Framework/Clients/CurseForge/ResponseModels/ResponseModel.cs
@@ -0,0 +1,8 @@
+using Newtonsoft.Json;
+
+namespace StardewModdingAPI.Web.Framework.Clients.CurseForge.ResponseModels
+{
+ /// <summary>A response from the CurseForge API.</summary>
+ /// <param name="Data">The data returned by the API.</param>
+ public record ResponseModel<TData>(TData Data);
+}