diff --git a/src/FilterLists.Api/Startup.cs b/src/FilterLists.Api/Startup.cs index 535cf1344..02ae9c376 100644 --- a/src/FilterLists.Api/Startup.cs +++ b/src/FilterLists.Api/Startup.cs @@ -40,7 +40,9 @@ public void Configure(IApplicationBuilder app) app.UseStaticFiles(); app.UseMvc(routes => { - routes.MapRoute("default", "v{version:apiVersion}/{controller=Home}/{action=Index}/{id?}"); + routes.MapRoute("noAction", "v{version:apiVersion}/{controller}/{id:int}", + new {controller = "{controller}", action = "GetById", id = "{id}"}); + routes.MapRoute("default", "v{version:apiVersion}/{controller}/{action=Index}/{id:int?}"); }); MigrateAndSeedDatabase(app); } diff --git a/src/FilterLists.Api/V1/Controllers/ListsController.cs b/src/FilterLists.Api/V1/Controllers/ListsController.cs index b07d3673b..82c3924e0 100644 --- a/src/FilterLists.Api/V1/Controllers/ListsController.cs +++ b/src/FilterLists.Api/V1/Controllers/ListsController.cs @@ -24,6 +24,12 @@ public async Task Index() return Json(await filterListService.GetAllSummariesAsync()); } + [HttpGet] + public async Task GetById(int id) + { + return Json(await filterListService.GetDetailsAsync(id)); + } + [HttpGet] public async Task Seed() { diff --git a/src/FilterLists.Services/FilterListService/FilterListDetailsDto.cs b/src/FilterLists.Services/FilterListService/FilterListDetailsDto.cs new file mode 100644 index 000000000..5a5e4860d --- /dev/null +++ b/src/FilterLists.Services/FilterListService/FilterListDetailsDto.cs @@ -0,0 +1,11 @@ +namespace FilterLists.Services.FilterListService +{ + public class FilterListDetailsDto + { + public int Id { get; set; } + public string Description { get; set; } + public string DescriptionSourceUrl { get; set; } + public string Name { get; set; } + public string ViewUrl { get; set; } + } +} \ No newline at end of file diff --git a/src/FilterLists.Services/FilterListService/FilterListService.cs b/src/FilterLists.Services/FilterListService/FilterListService.cs index 588173d5d..f1f97b90c 100644 --- a/src/FilterLists.Services/FilterListService/FilterListService.cs +++ b/src/FilterLists.Services/FilterListService/FilterListService.cs @@ -25,5 +25,13 @@ public async Task> GetAllSummariesAsync() .ProjectTo() .ToListAsync(); } + + public async Task GetDetailsAsync(int id) + { + return await filterListsDbContext.Set() + .AsNoTracking() + .ProjectTo() + .FirstAsync(x => x.Id == id); + } } } \ No newline at end of file