Implement temporary file configuration endpoint (#15518)
* Implement temporary file configuration endpoint * Update MaxfileSize to be a string. * Make max file size a nullable integer --------- Co-authored-by: Elitsa <elm@umbraco.dk>
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
using Asp.Versioning;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Umbraco.Cms.Api.Management.Factories;
|
||||
using Umbraco.Cms.Api.Management.ViewModels.TemporaryFile;
|
||||
|
||||
namespace Umbraco.Cms.Api.Management.Controllers.TemporaryFile;
|
||||
|
||||
[ApiVersion("1.0")]
|
||||
public class ConfigurationTemporaryFileController : TemporaryFileControllerBase
|
||||
{
|
||||
private readonly ITemporaryFileConfigurationPresentationFactory _temporaryFileConfigurationPresentationFactory;
|
||||
|
||||
public ConfigurationTemporaryFileController(
|
||||
ITemporaryFileConfigurationPresentationFactory temporaryFileConfigurationPresentationFactory) =>
|
||||
_temporaryFileConfigurationPresentationFactory = temporaryFileConfigurationPresentationFactory;
|
||||
|
||||
[HttpGet("configuration")]
|
||||
[MapToApiVersion("1.0")]
|
||||
[ProducesResponseType(StatusCodes.Status200OK)]
|
||||
public Task<IActionResult> Configuration()
|
||||
{
|
||||
TemporaryFileConfigurationResponseModel responseModel = _temporaryFileConfigurationPresentationFactory.Create();
|
||||
return Task.FromResult<IActionResult>(Ok(responseModel));
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,6 @@
|
||||
using Umbraco.Cms.Api.Management.Mapping.TemporaryFile;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Umbraco.Cms.Api.Management.Factories;
|
||||
using Umbraco.Cms.Api.Management.Mapping.TemporaryFile;
|
||||
using Umbraco.Cms.Core.DependencyInjection;
|
||||
using Umbraco.Cms.Core.Mapping;
|
||||
|
||||
@@ -10,6 +12,7 @@ internal static class TTemporaryFileBuilderExtensions
|
||||
{
|
||||
builder.WithCollectionBuilder<MapDefinitionCollectionBuilder>()
|
||||
.Add<TemporaryFileViewModelsMapDefinition>();
|
||||
builder.Services.AddTransient<ITemporaryFileConfigurationPresentationFactory, TemporaryFileConfigurationPresentationFactory>();
|
||||
|
||||
return builder;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
using Umbraco.Cms.Api.Management.ViewModels.TemporaryFile;
|
||||
|
||||
namespace Umbraco.Cms.Api.Management.Factories;
|
||||
|
||||
public interface ITemporaryFileConfigurationPresentationFactory
|
||||
{
|
||||
TemporaryFileConfigurationResponseModel Create();
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
using Microsoft.Extensions.Options;
|
||||
using Umbraco.Cms.Api.Management.ViewModels.TemporaryFile;
|
||||
using Umbraco.Cms.Core.Configuration.Models;
|
||||
using Umbraco.Cms.Core.Media;
|
||||
|
||||
namespace Umbraco.Cms.Api.Management.Factories;
|
||||
|
||||
public class TemporaryFileConfigurationPresentationFactory : ITemporaryFileConfigurationPresentationFactory
|
||||
{
|
||||
private readonly RuntimeSettings _runtimeSettings;
|
||||
private readonly IImageUrlGenerator _imageUrlGenerator;
|
||||
private readonly ContentSettings _contentSettings;
|
||||
|
||||
public TemporaryFileConfigurationPresentationFactory(IOptionsSnapshot<ContentSettings> contentSettings, IOptionsSnapshot<RuntimeSettings> runtimeSettings, IImageUrlGenerator imageUrlGenerator)
|
||||
{
|
||||
_runtimeSettings = runtimeSettings.Value;
|
||||
_imageUrlGenerator = imageUrlGenerator;
|
||||
_contentSettings = contentSettings.Value;
|
||||
}
|
||||
|
||||
public TemporaryFileConfigurationResponseModel Create() =>
|
||||
new()
|
||||
{
|
||||
ImageFileTypes = _imageUrlGenerator.SupportedImageFileTypes.ToArray(),
|
||||
DisallowedUploadedFilesExtensions = _contentSettings.DisallowedUploadedFileExtensions,
|
||||
AllowedUploadedFileExtensions = _contentSettings.AllowedUploadedFileExtensions,
|
||||
MaxFileSize = _runtimeSettings.MaxRequestLength,
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
namespace Umbraco.Cms.Api.Management.ViewModels.TemporaryFile;
|
||||
|
||||
public class TemporaryFileConfigurationResponseModel
|
||||
{
|
||||
public string[] ImageFileTypes { get; set; } = Array.Empty<string>();
|
||||
|
||||
public string[] DisallowedUploadedFilesExtensions { get; set; } = Array.Empty<string>();
|
||||
|
||||
public string[] AllowedUploadedFileExtensions { get; set; } = Array.Empty<string>();
|
||||
|
||||
public int? MaxFileSize { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user