summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/SMAPI.Web/Controllers/ModsApiController.cs41
-rw-r--r--src/StardewModdingAPI.Toolkit/Framework/Clients/WebApi/ModEntryModel.cs44
-rw-r--r--src/StardewModdingAPI.Toolkit/Framework/Clients/WebApi/ModSeachModel.cs5
3 files changed, 6 insertions, 84 deletions
diff --git a/src/SMAPI.Web/Controllers/ModsApiController.cs b/src/SMAPI.Web/Controllers/ModsApiController.cs
index b500e19d..18d55665 100644
--- a/src/SMAPI.Web/Controllers/ModsApiController.cs
+++ b/src/SMAPI.Web/Controllers/ModsApiController.cs
@@ -83,31 +83,25 @@ namespace StardewModdingAPI.Web.Controllers
/// <summary>Fetch version metadata for the given mods.</summary>
/// <param name="model">The mod search criteria.</param>
[HttpPost]
- public async Task<object> PostAsync([FromBody] ModSearchModel model)
+ public async Task<IEnumerable<ModEntryModel>> PostAsync([FromBody] ModSearchModel model)
{
- // parse request data
- ISemanticVersion apiVersion = this.GetApiVersion();
- ModSearchEntryModel[] searchMods = this.GetSearchMods(model, apiVersion).ToArray();
+ if (model?.Mods == null)
+ return new ModEntryModel[0];
// fetch wiki data
WikiCompatibilityEntry[] wikiData = await this.GetWikiDataAsync();
-
- // fetch data
IDictionary<string, ModEntryModel> mods = new Dictionary<string, ModEntryModel>(StringComparer.CurrentCultureIgnoreCase);
- foreach (ModSearchEntryModel mod in searchMods)
+ foreach (ModSearchEntryModel mod in model.Mods)
{
if (string.IsNullOrWhiteSpace(mod.ID))
continue;
ModEntryModel result = await this.GetModData(mod, wikiData, model.IncludeExtendedMetadata);
- result.SetBackwardsCompatibility(apiVersion);
mods[mod.ID] = result;
}
- // return in expected structure
- return apiVersion.IsNewerThan("2.6-beta.18")
- ? mods.Values
- : (object)mods;
+ // return data
+ return mods.Values;
}
@@ -231,29 +225,6 @@ namespace StardewModdingAPI.Web.Controllers
return current != null && (other == null || other.IsOlderThan(current));
}
- /// <summary>Get the mods for which the API should return data.</summary>
- /// <param name="model">The search model.</param>
- /// <param name="apiVersion">The requested API version.</param>
- private IEnumerable<ModSearchEntryModel> GetSearchMods(ModSearchModel model, ISemanticVersion apiVersion)
- {
- if (model == null)
- yield break;
-
- // yield standard entries
- if (model.Mods != null)
- {
- foreach (ModSearchEntryModel mod in model.Mods)
- yield return mod;
- }
-
- // yield mod update keys if backwards compatible
- if (model.ModKeys != null && model.ModKeys.Any() && !apiVersion.IsNewerThan("2.6-beta.17"))
- {
- foreach (string updateKey in model.ModKeys.Distinct())
- yield return new ModSearchEntryModel(updateKey, new[] { updateKey });
- }
- }
-
/// <summary>Get mod data from the wiki compatibility list.</summary>
private async Task<WikiCompatibilityEntry[]> GetWikiDataAsync()
{
diff --git a/src/StardewModdingAPI.Toolkit/Framework/Clients/WebApi/ModEntryModel.cs b/src/StardewModdingAPI.Toolkit/Framework/Clients/WebApi/ModEntryModel.cs
index f3f22b93..2aafe199 100644
--- a/src/StardewModdingAPI.Toolkit/Framework/Clients/WebApi/ModEntryModel.cs
+++ b/src/StardewModdingAPI.Toolkit/Framework/Clients/WebApi/ModEntryModel.cs
@@ -1,6 +1,3 @@
-using System;
-using Newtonsoft.Json;
-
namespace StardewModdingAPI.Toolkit.Framework.Clients.WebApi
{
/// <summary>Metadata about a mod.</summary>
@@ -26,46 +23,5 @@ namespace StardewModdingAPI.Toolkit.Framework.Clients.WebApi
/// <summary>The errors that occurred while fetching update data.</summary>
public string[] Errors { get; set; } = new string[0];
-
- /****
- ** Backwards-compatible fields
- ****/
- /// <summary>The mod's latest version number.</summary>
- [Obsolete("Use " + nameof(ModEntryModel.Main))]
- [JsonProperty]
- internal string Version { get; private set; }
-
- /// <summary>The mod's web URL.</summary>
- [Obsolete("Use " + nameof(ModEntryModel.Main))]
- [JsonProperty]
- internal string Url { get; private set; }
-
- /// <summary>The mod's latest optional release, if newer than <see cref="Version"/>.</summary>
- [Obsolete("Use " + nameof(ModEntryModel.Optional))]
- [JsonProperty]
- internal string PreviewVersion { get; private set; }
-
- /// <summary>The web URL to the mod's latest optional release, if newer than <see cref="Version"/>.</summary>
- [Obsolete("Use " + nameof(ModEntryModel.Optional))]
- [JsonProperty]
- internal string PreviewUrl { get; private set; }
-
-
- /*********
- ** Public methods
- *********/
- /// <summary>Set backwards-compatible fields.</summary>
- /// <param name="version">The requested API version.</param>
- public void SetBackwardsCompatibility(ISemanticVersion version)
- {
- if (version.IsOlderThan("2.6-beta.19"))
- {
- this.Version = this.Main?.Version?.ToString();
- this.Url = this.Main?.Url;
-
- this.PreviewVersion = this.Optional?.Version?.ToString();
- this.PreviewUrl = this.Optional?.Url;
- }
- }
}
}
diff --git a/src/StardewModdingAPI.Toolkit/Framework/Clients/WebApi/ModSeachModel.cs b/src/StardewModdingAPI.Toolkit/Framework/Clients/WebApi/ModSeachModel.cs
index df0d8457..e352e1cc 100644
--- a/src/StardewModdingAPI.Toolkit/Framework/Clients/WebApi/ModSeachModel.cs
+++ b/src/StardewModdingAPI.Toolkit/Framework/Clients/WebApi/ModSeachModel.cs
@@ -1,4 +1,3 @@
-using System;
using System.Linq;
namespace StardewModdingAPI.Toolkit.Framework.Clients.WebApi
@@ -9,10 +8,6 @@ namespace StardewModdingAPI.Toolkit.Framework.Clients.WebApi
/*********
** Accessors
*********/
- /// <summary>The namespaced mod keys to search.</summary>
- [Obsolete]
- public string[] ModKeys { get; set; }
-
/// <summary>The mods for which to find data.</summary>
public ModSearchEntryModel[] Mods { get; set; }