From 3a161a30a7faa2d69ebe08938cd68f43921b4a81 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Wed, 18 May 2022 19:23:26 -0400 Subject: update for the new CurseForge API --- .../CurseForge/ResponseModels/ModLinksModel.cs | 7 ++++ .../Clients/CurseForge/ResponseModels/ModModel.cs | 41 ++++------------------ .../CurseForge/ResponseModels/ResponseModel.cs | 8 +++++ 3 files changed, 21 insertions(+), 35 deletions(-) create mode 100644 src/SMAPI.Web/Framework/Clients/CurseForge/ResponseModels/ModLinksModel.cs create mode 100644 src/SMAPI.Web/Framework/Clients/CurseForge/ResponseModels/ResponseModel.cs (limited to 'src/SMAPI.Web/Framework/Clients/CurseForge/ResponseModels') 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 +{ + /// A list of links for a mod. + /// The URL for the CurseForge mod page. + /// The URL for the mod's source code, if any. + 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 { - /// An mod from the CurseForge API. - public class ModModel - { - /********* - ** Accessors - *********/ - /// The mod's unique ID on CurseForge. - public int ID { get; } - - /// The mod name. - public string Name { get; } - - /// The web URL for the mod page. - public string WebsiteUrl { get; } - - /// The available file downloads. - public ModFileModel[] LatestFiles { get; } - - - /********* - ** Public methods - *********/ - /// Construct an instance. - /// The mod's unique ID on CurseForge. - /// The mod name. - /// The web URL for the mod page. - /// The available file downloads. - public ModModel(int id, string name, string websiteUrl, ModFileModel[] latestFiles) - { - this.ID = id; - this.Name = name; - this.WebsiteUrl = websiteUrl; - this.LatestFiles = latestFiles; - } - } + /// A mod from the CurseForge API. + /// The mod's unique ID on CurseForge. + /// The mod name. + /// The available file downloads. + /// The URLs for this mod. + 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 +{ + /// A response from the CurseForge API. + /// The data returned by the API. + public record ResponseModel(TData Data); +} -- cgit