From c8cc59415673532f7dd779cdfdc3984e61d69693 Mon Sep 17 00:00:00 2001 From: Collin Barrett Date: Wed, 26 Sep 2018 06:40:35 -0500 Subject: [PATCH] api controller tidies ref #505 --- src/FilterLists.Api/V1/Controllers/BaseController.cs | 5 +++-- .../V1/Controllers/DependentsController.cs | 3 ++- src/FilterLists.Api/V1/Controllers/ForksController.cs | 3 ++- .../V1/Controllers/LanguagesController.cs | 5 +++-- .../V1/Controllers/LicensesController.cs | 3 ++- src/FilterLists.Api/V1/Controllers/ListsController.cs | 5 +++-- .../V1/Controllers/ListsLanguagesController.cs | 3 ++- .../V1/Controllers/ListsMaintainersController.cs | 3 ++- .../V1/Controllers/ListsTagsController.cs | 3 ++- .../V1/Controllers/MaintainersController.cs | 3 ++- .../V1/Controllers/MergesController.cs | 3 ++- src/FilterLists.Api/V1/Controllers/RulesController.cs | 2 +- .../V1/Controllers/SoftwareController.cs | 11 +++++++++-- .../V1/Controllers/SoftwareSyntaxesController.cs | 3 ++- .../V1/Controllers/SyntaxesController.cs | 3 ++- src/FilterLists.Api/V1/Controllers/TagsController.cs | 11 +++++++++-- src/FilterLists.Api/V1/Interfaces/IGet.cs | 11 +++++++++++ src/FilterLists.Api/V1/Interfaces/ISeed.cs | 10 ++++++++++ 18 files changed, 69 insertions(+), 21 deletions(-) create mode 100644 src/FilterLists.Api/V1/Interfaces/IGet.cs create mode 100644 src/FilterLists.Api/V1/Interfaces/ISeed.cs diff --git a/src/FilterLists.Api/V1/Controllers/BaseController.cs b/src/FilterLists.Api/V1/Controllers/BaseController.cs index 8c924da3d..0b2cf318d 100644 --- a/src/FilterLists.Api/V1/Controllers/BaseController.cs +++ b/src/FilterLists.Api/V1/Controllers/BaseController.cs @@ -11,13 +11,13 @@ namespace FilterLists.Api.V1.Controllers //TODO: use versioning without needing to manually specify in swagger-ui (https://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/370) [Route("v{version:apiVersion}/[controller]")] [ResponseCache(Duration = 14400)] - public class BaseController : Controller + public abstract class BaseController : Controller { private static readonly TimeSpan MemoryCacheExpirationDefault = TimeSpan.FromHours(4); protected readonly SeedService SeedService; private readonly IMemoryCache memoryCache; - public BaseController() + protected BaseController() { } @@ -29,6 +29,7 @@ protected BaseController(IMemoryCache memoryCache, SeedService seedService) SeedService = seedService; } + //https://stackoverflow.com/a/52506210/2343739 protected async Task Get(Func> createAction, int? actionParam = null, [CallerMemberName] string actionName = null) { diff --git a/src/FilterLists.Api/V1/Controllers/DependentsController.cs b/src/FilterLists.Api/V1/Controllers/DependentsController.cs index a11dc6958..1a533d460 100644 --- a/src/FilterLists.Api/V1/Controllers/DependentsController.cs +++ b/src/FilterLists.Api/V1/Controllers/DependentsController.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using FilterLists.Api.V1.Interfaces; using FilterLists.Data.Entities.Junctions; using FilterLists.Services.Seed; using FilterLists.Services.Seed.Models.Junctions; @@ -7,7 +8,7 @@ namespace FilterLists.Api.V1.Controllers { - public class DependentsController : BaseController + public class DependentsController : BaseController, ISeed { public DependentsController(IMemoryCache memoryCache, SeedService seedService) : base(memoryCache, seedService) { diff --git a/src/FilterLists.Api/V1/Controllers/ForksController.cs b/src/FilterLists.Api/V1/Controllers/ForksController.cs index 1615b34ef..32a23d438 100644 --- a/src/FilterLists.Api/V1/Controllers/ForksController.cs +++ b/src/FilterLists.Api/V1/Controllers/ForksController.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using FilterLists.Api.V1.Interfaces; using FilterLists.Data.Entities.Junctions; using FilterLists.Services.Seed; using FilterLists.Services.Seed.Models.Junctions; @@ -7,7 +8,7 @@ namespace FilterLists.Api.V1.Controllers { - public class ForksController : BaseController + public class ForksController : BaseController, ISeed { public ForksController(IMemoryCache memoryCache, SeedService seedService) : base(memoryCache, seedService) { diff --git a/src/FilterLists.Api/V1/Controllers/LanguagesController.cs b/src/FilterLists.Api/V1/Controllers/LanguagesController.cs index b7f0e4769..17f5c73b3 100644 --- a/src/FilterLists.Api/V1/Controllers/LanguagesController.cs +++ b/src/FilterLists.Api/V1/Controllers/LanguagesController.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using FilterLists.Api.V1.Interfaces; using FilterLists.Data.Entities; using FilterLists.Services.Language; using FilterLists.Services.Seed; @@ -8,7 +9,7 @@ namespace FilterLists.Api.V1.Controllers { - public class LanguagesController : BaseController + public class LanguagesController : BaseController, IGet, ISeed { private readonly LanguageService languageService; @@ -16,7 +17,7 @@ public LanguagesController(IMemoryCache memoryCache, SeedService seedService, La base(memoryCache, seedService) => this.languageService = languageService; [HttpGet] - public async Task Index() => + public async Task GetAll() => await Get(() => languageService.GetAllTargetedAsync()); [HttpGet] diff --git a/src/FilterLists.Api/V1/Controllers/LicensesController.cs b/src/FilterLists.Api/V1/Controllers/LicensesController.cs index a205af9cb..c8f2b496c 100644 --- a/src/FilterLists.Api/V1/Controllers/LicensesController.cs +++ b/src/FilterLists.Api/V1/Controllers/LicensesController.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using FilterLists.Api.V1.Interfaces; using FilterLists.Data.Entities; using FilterLists.Services.Seed; using FilterLists.Services.Seed.Models; @@ -7,7 +8,7 @@ namespace FilterLists.Api.V1.Controllers { - public class LicensesController : BaseController + public class LicensesController : BaseController, ISeed { public LicensesController(IMemoryCache memoryCache, SeedService seedService) : base(memoryCache, seedService) { diff --git a/src/FilterLists.Api/V1/Controllers/ListsController.cs b/src/FilterLists.Api/V1/Controllers/ListsController.cs index f2726996f..05237fe70 100644 --- a/src/FilterLists.Api/V1/Controllers/ListsController.cs +++ b/src/FilterLists.Api/V1/Controllers/ListsController.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using FilterLists.Api.V1.Interfaces; using FilterLists.Data.Entities; using FilterLists.Services.FilterList; using FilterLists.Services.Seed; @@ -8,7 +9,7 @@ namespace FilterLists.Api.V1.Controllers { - public class ListsController : BaseController + public class ListsController : BaseController, IGet, ISeed { private readonly FilterListService filterListService; @@ -16,7 +17,7 @@ public ListsController(IMemoryCache memoryCache, SeedService seedService, Filter base(memoryCache, seedService) => this.filterListService = filterListService; [HttpGet] - public async Task Index() => + public async Task GetAll() => await Get(() => filterListService.GetAllAsync()); [HttpGet] diff --git a/src/FilterLists.Api/V1/Controllers/ListsLanguagesController.cs b/src/FilterLists.Api/V1/Controllers/ListsLanguagesController.cs index 454d1e1e8..c1c00dcca 100644 --- a/src/FilterLists.Api/V1/Controllers/ListsLanguagesController.cs +++ b/src/FilterLists.Api/V1/Controllers/ListsLanguagesController.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using FilterLists.Api.V1.Interfaces; using FilterLists.Data.Entities.Junctions; using FilterLists.Services.Seed; using FilterLists.Services.Seed.Models.Junctions; @@ -7,7 +8,7 @@ namespace FilterLists.Api.V1.Controllers { - public class ListsLanguagesController : BaseController + public class ListsLanguagesController : BaseController, ISeed { public ListsLanguagesController(IMemoryCache memoryCache, SeedService seedService) : base(memoryCache, seedService) diff --git a/src/FilterLists.Api/V1/Controllers/ListsMaintainersController.cs b/src/FilterLists.Api/V1/Controllers/ListsMaintainersController.cs index 335c858e9..bb26a28c0 100644 --- a/src/FilterLists.Api/V1/Controllers/ListsMaintainersController.cs +++ b/src/FilterLists.Api/V1/Controllers/ListsMaintainersController.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using FilterLists.Api.V1.Interfaces; using FilterLists.Data.Entities.Junctions; using FilterLists.Services.Seed; using FilterLists.Services.Seed.Models.Junctions; @@ -7,7 +8,7 @@ namespace FilterLists.Api.V1.Controllers { - public class ListsMaintainersController : BaseController + public class ListsMaintainersController : BaseController, ISeed { public ListsMaintainersController(IMemoryCache memoryCache, SeedService seedService) : base(memoryCache, seedService) diff --git a/src/FilterLists.Api/V1/Controllers/ListsTagsController.cs b/src/FilterLists.Api/V1/Controllers/ListsTagsController.cs index 0ceecaa7b..265f5b1c2 100644 --- a/src/FilterLists.Api/V1/Controllers/ListsTagsController.cs +++ b/src/FilterLists.Api/V1/Controllers/ListsTagsController.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using FilterLists.Api.V1.Interfaces; using FilterLists.Data.Entities.Junctions; using FilterLists.Services.Seed; using FilterLists.Services.Seed.Models.Junctions; @@ -7,7 +8,7 @@ namespace FilterLists.Api.V1.Controllers { - public class ListsTagsController : BaseController + public class ListsTagsController : BaseController, ISeed { public ListsTagsController(IMemoryCache memoryCache, SeedService seedService) : base(memoryCache, seedService) diff --git a/src/FilterLists.Api/V1/Controllers/MaintainersController.cs b/src/FilterLists.Api/V1/Controllers/MaintainersController.cs index 4034d4dfe..39b5226ef 100644 --- a/src/FilterLists.Api/V1/Controllers/MaintainersController.cs +++ b/src/FilterLists.Api/V1/Controllers/MaintainersController.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using FilterLists.Api.V1.Interfaces; using FilterLists.Data.Entities; using FilterLists.Services.Seed; using FilterLists.Services.Seed.Models; @@ -7,7 +8,7 @@ namespace FilterLists.Api.V1.Controllers { - public class MaintainersController : BaseController + public class MaintainersController : BaseController, ISeed { public MaintainersController(IMemoryCache memoryCache, SeedService seedService) : base(memoryCache, seedService) { diff --git a/src/FilterLists.Api/V1/Controllers/MergesController.cs b/src/FilterLists.Api/V1/Controllers/MergesController.cs index a3931c94d..1ea060ff7 100644 --- a/src/FilterLists.Api/V1/Controllers/MergesController.cs +++ b/src/FilterLists.Api/V1/Controllers/MergesController.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using FilterLists.Api.V1.Interfaces; using FilterLists.Data.Entities.Junctions; using FilterLists.Services.Seed; using FilterLists.Services.Seed.Models.Junctions; @@ -7,7 +8,7 @@ namespace FilterLists.Api.V1.Controllers { - public class MergesController : BaseController + public class MergesController : BaseController, ISeed { public MergesController(IMemoryCache memoryCache, SeedService seedService) : base(memoryCache, seedService) { diff --git a/src/FilterLists.Api/V1/Controllers/RulesController.cs b/src/FilterLists.Api/V1/Controllers/RulesController.cs index e3690f236..9d0e9d482 100644 --- a/src/FilterLists.Api/V1/Controllers/RulesController.cs +++ b/src/FilterLists.Api/V1/Controllers/RulesController.cs @@ -13,7 +13,7 @@ public RulesController(IMemoryCache memoryCache, RuleService ruleService) : base this.ruleService = ruleService; [HttpGet] - public async Task Index() => + public async Task GetCount() => await Get(() => ruleService.GetCountAll()); } } \ No newline at end of file diff --git a/src/FilterLists.Api/V1/Controllers/SoftwareController.cs b/src/FilterLists.Api/V1/Controllers/SoftwareController.cs index 22803bb91..af6744c09 100644 --- a/src/FilterLists.Api/V1/Controllers/SoftwareController.cs +++ b/src/FilterLists.Api/V1/Controllers/SoftwareController.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using FilterLists.Api.V1.Interfaces; using FilterLists.Data.Entities; using FilterLists.Services.Seed; using FilterLists.Services.Seed.Models; @@ -8,7 +9,7 @@ namespace FilterLists.Api.V1.Controllers { - public class SoftwareController : BaseController + public class SoftwareController : BaseController, ISeed, IGet { private readonly SoftwareService softwareService; @@ -16,9 +17,15 @@ public SoftwareController(IMemoryCache memoryCache, SeedService seedService, Sof base(memoryCache, seedService) => this.softwareService = softwareService; [HttpGet] - public async Task Index() => + public async Task GetAll() => await Get(() => softwareService.GetAll()); + // TODO + [HttpGet] + [Route("{id}")] + public async Task GetById(int id) => + await Task.FromResult((IActionResult)BadRequest()); + [HttpGet("seed")] public async Task Seed() => await Get(() => SeedService.GetAllAsync()); diff --git a/src/FilterLists.Api/V1/Controllers/SoftwareSyntaxesController.cs b/src/FilterLists.Api/V1/Controllers/SoftwareSyntaxesController.cs index 3131afacf..57e8dee45 100644 --- a/src/FilterLists.Api/V1/Controllers/SoftwareSyntaxesController.cs +++ b/src/FilterLists.Api/V1/Controllers/SoftwareSyntaxesController.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using FilterLists.Api.V1.Interfaces; using FilterLists.Data.Entities.Junctions; using FilterLists.Services.Seed; using FilterLists.Services.Seed.Models.Junctions; @@ -7,7 +8,7 @@ namespace FilterLists.Api.V1.Controllers { - public class SoftwareSyntaxesController : BaseController + public class SoftwareSyntaxesController : BaseController, ISeed { public SoftwareSyntaxesController(IMemoryCache memoryCache, SeedService seedService) : base(memoryCache, seedService) diff --git a/src/FilterLists.Api/V1/Controllers/SyntaxesController.cs b/src/FilterLists.Api/V1/Controllers/SyntaxesController.cs index e94e9624e..a1233576c 100644 --- a/src/FilterLists.Api/V1/Controllers/SyntaxesController.cs +++ b/src/FilterLists.Api/V1/Controllers/SyntaxesController.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using FilterLists.Api.V1.Interfaces; using FilterLists.Data.Entities; using FilterLists.Services.Seed; using FilterLists.Services.Seed.Models; @@ -7,7 +8,7 @@ namespace FilterLists.Api.V1.Controllers { - public class SyntaxesController : BaseController + public class SyntaxesController : BaseController, ISeed { public SyntaxesController(IMemoryCache memoryCache, SeedService seedService) : base(memoryCache, seedService) { diff --git a/src/FilterLists.Api/V1/Controllers/TagsController.cs b/src/FilterLists.Api/V1/Controllers/TagsController.cs index 3538f29e6..45e3f63dd 100644 --- a/src/FilterLists.Api/V1/Controllers/TagsController.cs +++ b/src/FilterLists.Api/V1/Controllers/TagsController.cs @@ -1,4 +1,5 @@ using System.Threading.Tasks; +using FilterLists.Api.V1.Interfaces; using FilterLists.Data.Entities; using FilterLists.Services.Seed; using FilterLists.Services.Seed.Models; @@ -8,7 +9,7 @@ namespace FilterLists.Api.V1.Controllers { - public class TagsController : BaseController + public class TagsController : BaseController, IGet, ISeed { private readonly TagService tagService; @@ -16,9 +17,15 @@ public TagsController(IMemoryCache memoryCache, SeedService seedService, TagServ base(memoryCache, seedService) => this.tagService = tagService; [HttpGet] - public async Task Index() => + public async Task GetAll() => await Get(() => tagService.GetAll()); + // TODO + [HttpGet] + [Route("{id}")] + public async Task GetById(int id) => + await Task.FromResult((IActionResult)BadRequest()); + [HttpGet("seed")] public async Task Seed() => await Get(() => SeedService.GetAllAsync()); diff --git a/src/FilterLists.Api/V1/Interfaces/IGet.cs b/src/FilterLists.Api/V1/Interfaces/IGet.cs new file mode 100644 index 000000000..2562f43c1 --- /dev/null +++ b/src/FilterLists.Api/V1/Interfaces/IGet.cs @@ -0,0 +1,11 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; + +namespace FilterLists.Api.V1.Interfaces +{ + public interface IGet + { + Task GetAll(); + Task GetById(int id); + } +} \ No newline at end of file diff --git a/src/FilterLists.Api/V1/Interfaces/ISeed.cs b/src/FilterLists.Api/V1/Interfaces/ISeed.cs new file mode 100644 index 000000000..b5dae43ea --- /dev/null +++ b/src/FilterLists.Api/V1/Interfaces/ISeed.cs @@ -0,0 +1,10 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; + +namespace FilterLists.Api.V1.Interfaces +{ + public interface ISeed + { + Task Seed(); + } +} \ No newline at end of file