summaryrefslogtreecommitdiff
path: root/src/StardewModdingAPI.Web/Models
diff options
context:
space:
mode:
authorJesse Plamondon-Willard <github@jplamondonw.com>2017-09-21 23:39:12 -0400
committerJesse Plamondon-Willard <github@jplamondonw.com>2017-09-21 23:39:12 -0400
commitcddcd9a8cfde182e843f8b2224d00ba742596c76 (patch)
tree5b389133ceb0506a651a8da0116bed9fe0b1bad0 /src/StardewModdingAPI.Web/Models
parent9791de306c22c744732219dadfd97b7dd556a5b2 (diff)
downloadSMAPI-cddcd9a8cfde182e843f8b2224d00ba742596c76.tar.gz
SMAPI-cddcd9a8cfde182e843f8b2224d00ba742596c76.tar.bz2
SMAPI-cddcd9a8cfde182e843f8b2224d00ba742596c76.zip
standardise project name (#336)
Diffstat (limited to 'src/StardewModdingAPI.Web/Models')
-rw-r--r--src/StardewModdingAPI.Web/Models/IModModel.cs12
-rw-r--r--src/StardewModdingAPI.Web/Models/ModGenericModel.cs27
-rw-r--r--src/StardewModdingAPI.Web/Models/NexusResponseModel.cs41
3 files changed, 80 insertions, 0 deletions
diff --git a/src/StardewModdingAPI.Web/Models/IModModel.cs b/src/StardewModdingAPI.Web/Models/IModModel.cs
new file mode 100644
index 00000000..2eadcaec
--- /dev/null
+++ b/src/StardewModdingAPI.Web/Models/IModModel.cs
@@ -0,0 +1,12 @@
+namespace StardewModdingAPI.Web.Models
+{
+ /// <summary>A mod metadata response which provides a method to extract generic info.</summary>
+ internal interface IModModel
+ {
+ /*********
+ ** Public methods
+ *********/
+ /// <summary>Get basic mod metadata.</summary>
+ ModGenericModel ModInfo();
+ }
+}
diff --git a/src/StardewModdingAPI.Web/Models/ModGenericModel.cs b/src/StardewModdingAPI.Web/Models/ModGenericModel.cs
new file mode 100644
index 00000000..208af416
--- /dev/null
+++ b/src/StardewModdingAPI.Web/Models/ModGenericModel.cs
@@ -0,0 +1,27 @@
+namespace StardewModdingAPI.Web.Models
+{
+ /// <summary>Generic metadata about a mod.</summary>
+ public class ModGenericModel
+ {
+ /*********
+ ** Accessors
+ *********/
+ /// <summary>The unique mod ID.</summary>
+ public int ID { get; set; }
+
+ /// <summary>The mod name.</summary>
+ public string Name { get; set; }
+
+ /// <summary>The mod's vendor ID.</summary>
+ public string Vendor { get; set; }
+
+ /// <summary>The mod's semantic version number.</summary>
+ public string Version { get; set; }
+
+ /// <summary>The mod's web URL.</summary>
+ public string Url { get; set; }
+
+ /// <summary>Whether the mod is valid.</summary>
+ public bool Valid { get; set; } = true;
+ }
+}
diff --git a/src/StardewModdingAPI.Web/Models/NexusResponseModel.cs b/src/StardewModdingAPI.Web/Models/NexusResponseModel.cs
new file mode 100644
index 00000000..ae5c691c
--- /dev/null
+++ b/src/StardewModdingAPI.Web/Models/NexusResponseModel.cs
@@ -0,0 +1,41 @@
+using Newtonsoft.Json;
+
+namespace StardewModdingAPI.Web.Models
+{
+ /// <summary>A mod metadata response from Nexus Mods.</summary>
+ public class NexusResponseModel : IModModel
+ {
+ /*********
+ ** Accessors
+ *********/
+ /// <summary>The unique mod ID.</summary>
+ public int ID { get; set; }
+
+ /// <summary>The mod name.</summary>
+ public string Name { get; set; }
+
+ /// <summary>The mod's semantic version number.</summary>
+ public string Version { get; set; }
+
+ /// <summary>The mod's web URL.</summary>
+ [JsonProperty("mod_page_uri")]
+ public string Url { get; set; }
+
+
+ /*********
+ ** Public methods
+ *********/
+ /// <summary>Get basic mod metadata.</summary>
+ public ModGenericModel ModInfo()
+ {
+ return new ModGenericModel
+ {
+ ID = this.ID,
+ Version = this.Version,
+ Name = this.Name,
+ Url = this.Url,
+ Vendor = "Nexus"
+ };
+ }
+ }
+}