diff --git a/src/Controllers/ImageManipulationController.cs b/src/Controllers/ImageManipulationController.cs index 23b753a..7e83ef0 100644 --- a/src/Controllers/ImageManipulationController.cs +++ b/src/Controllers/ImageManipulationController.cs @@ -47,7 +47,15 @@ public class ImageManipulationController : BaseController), StatusCodes.Status200OK)] + public Task GetTemplates() + { + return Task.FromResult(HttpContext.Send(EventResult.FromSuccess(ImageManager.GetManipulationEndpoints()))); + } + [HttpGet("{template}")] [EndpointMetrics("image.manipulation.generate")] [ProducesResponseType(typeof(Stream), StatusCodes.Status200OK, "image/png")] diff --git a/src/Managers/ImageManager.Manipulation.cs b/src/Managers/ImageManager.Manipulation.cs index 1344aef..1aa9b95 100644 --- a/src/Managers/ImageManager.Manipulation.cs +++ b/src/Managers/ImageManager.Manipulation.cs @@ -17,6 +17,15 @@ public static partial class ImageManager ManipulationEndpoints = configuration.GetSection("ImageManipulation:Templates").Get>(); } + public static IEnumerable GetManipulationEndpoints() + { + return ManipulationEndpoints.Select(e => new ImageManipulationImageRead + { + Name = e.Name, + TextRequired = e.TextPositions.Count() + }); + } + public static async Task GenerateMemeImageAsync(string template, string[] texts) { ImageManipulationImage imageTemplate = ManipulationEndpoints.FirstOrDefault(e => e.Name.ToLowerInvariant().Equals(template.ToLowerInvariant())); diff --git a/src/Managers/Models/ImageManipulationImage.cs b/src/Managers/Models/ImageManipulationImage.cs index e1e187d..1b5cc45 100644 --- a/src/Managers/Models/ImageManipulationImage.cs +++ b/src/Managers/Models/ImageManipulationImage.cs @@ -6,4 +6,10 @@ public class ImageManipulationImage : ImageEndpoint { [JsonPropertyName("textpositions"), ConfigurationKeyName("textpositions")] public ICollection TextPositions { get; set; } +} + +public class ImageManipulationImageRead : ImageEndpoint +{ + [JsonPropertyName("textrequired"), ConfigurationKeyName("textrequired")] + public int TextRequired { get; set; } } \ No newline at end of file