make web controllers internal (#336)
This is needed to support internal models, which is needed to share the models with the main SMAPI assembly without making them visible to mods.
This commit is contained in:
parent
eaabd91f31
commit
c2d8760c56
|
@ -13,7 +13,7 @@ namespace StardewModdingAPI.Web.Controllers
|
|||
{
|
||||
/// <summary>Provides an API to perform mod update checks.</summary>
|
||||
[Produces("application/json")]
|
||||
public class ModsController : Controller
|
||||
internal class ModsController : Controller
|
||||
{
|
||||
/*********
|
||||
** Properties
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
using System;
|
||||
using System.Reflection;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Mvc.Controllers;
|
||||
|
||||
namespace StardewModdingAPI.Web.Framework
|
||||
{
|
||||
/// <summary>Discovers controllers with support for non-public controllers.</summary>
|
||||
internal class InternalControllerFeatureProvider : ControllerFeatureProvider
|
||||
{
|
||||
/*********
|
||||
** Public methods
|
||||
*********/
|
||||
/// <summary>Determines if a given type is a controller.</summary>
|
||||
/// <param name="type">The <see cref="T:System.Reflection.TypeInfo" /> candidate.</param>
|
||||
/// <returns><code>true</code> if the type is a controller; otherwise <code>false</code>.</returns>
|
||||
protected override bool IsController(TypeInfo type)
|
||||
{
|
||||
return
|
||||
type.IsClass
|
||||
&& !type.IsAbstract
|
||||
&& (/*type.IsPublic &&*/ !type.ContainsGenericParameters)
|
||||
&& (!type.IsDefined(typeof(NonControllerAttribute))
|
||||
&& (type.Name.EndsWith("Controller", StringComparison.OrdinalIgnoreCase) || type.IsDefined(typeof(ControllerAttribute))));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -5,7 +5,7 @@ namespace StardewModdingAPI.Web.Framework
|
|||
{
|
||||
/// <summary>Rewrite requests to prepend the subdomain portion (if any) to the path.</summary>
|
||||
/// <remarks>Derived from <a href="https://stackoverflow.com/a/44526747/262123" />.</remarks>
|
||||
public class RewriteSubdomainRule : IRule
|
||||
internal class RewriteSubdomainRule : IRule
|
||||
{
|
||||
/// <summary>Applies the rule. Implementations of ApplyRule should set the value for <see cref="RewriteContext.Result" /> (defaults to RuleResult.ContinueRules).</summary>
|
||||
/// <param name="context">The rewrite context.</param>
|
||||
|
|
|
@ -3,7 +3,7 @@ using Newtonsoft.Json;
|
|||
namespace StardewModdingAPI.Web.Models
|
||||
{
|
||||
/// <summary>Generic metadata about a mod.</summary>
|
||||
public class ModInfoModel
|
||||
internal class ModInfoModel
|
||||
{
|
||||
/*********
|
||||
** Accessors
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
namespace StardewModdingAPI.Web.Models
|
||||
{
|
||||
/// <summary>Metadata for mods to look up.</summary>
|
||||
public class ModSearchModel
|
||||
internal class ModSearchModel
|
||||
{
|
||||
/// <summary>The namespaced mod keys to search.</summary>
|
||||
public string[] ModKeys { get; set; }
|
||||
|
|
|
@ -11,7 +11,7 @@ using StardewModdingAPI.Web.Framework.ConfigModels;
|
|||
namespace StardewModdingAPI.Web
|
||||
{
|
||||
/// <summary>The web app startup configuration.</summary>
|
||||
public class Startup
|
||||
internal class Startup
|
||||
{
|
||||
/*********
|
||||
** Accessors
|
||||
|
@ -44,6 +44,7 @@ namespace StardewModdingAPI.Web
|
|||
.Configure<ModUpdateCheckConfig>(this.Configuration.GetSection("ModUpdateCheck"))
|
||||
.AddMemoryCache()
|
||||
.AddMvc()
|
||||
.ConfigureApplicationPartManager(manager => manager.FeatureProviders.Add(new InternalControllerFeatureProvider()))
|
||||
.AddJsonOptions(options =>
|
||||
{
|
||||
options.SerializerSettings.Formatting = Formatting.Indented;
|
||||
|
|
Loading…
Reference in New Issue