api controller tidies

ref #505
This commit is contained in:
Collin Barrett 2018-09-26 06:40:35 -05:00
parent b4e8b32ec6
commit c8cc594156
18 changed files with 69 additions and 21 deletions

View file

@ -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<IActionResult> Get<T>(Func<Task<T>> createAction, int? actionParam = null,
[CallerMemberName] string actionName = null)
{

View file

@ -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)
{

View file

@ -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)
{

View file

@ -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<IActionResult> Index() =>
public async Task<IActionResult> GetAll() =>
await Get(() => languageService.GetAllTargetedAsync());
[HttpGet]

View file

@ -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)
{

View file

@ -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<IActionResult> Index() =>
public async Task<IActionResult> GetAll() =>
await Get(() => filterListService.GetAllAsync());
[HttpGet]

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)
{

View file

@ -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)
{

View file

@ -13,7 +13,7 @@ public RulesController(IMemoryCache memoryCache, RuleService ruleService) : base
this.ruleService = ruleService;
[HttpGet]
public async Task<IActionResult> Index() =>
public async Task<IActionResult> GetCount() =>
await Get(() => ruleService.GetCountAll());
}
}

View file

@ -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<IActionResult> Index() =>
public async Task<IActionResult> GetAll() =>
await Get(() => softwareService.GetAll());
// TODO
[HttpGet]
[Route("{id}")]
public async Task<IActionResult> GetById(int id) =>
await Task.FromResult((IActionResult)BadRequest());
[HttpGet("seed")]
public async Task<IActionResult> Seed() =>
await Get(() => SeedService.GetAllAsync<Software, SoftwareSeedDto>());

View file

@ -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)

View file

@ -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)
{

View file

@ -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<IActionResult> Index() =>
public async Task<IActionResult> GetAll() =>
await Get(() => tagService.GetAll());
// TODO
[HttpGet]
[Route("{id}")]
public async Task<IActionResult> GetById(int id) =>
await Task.FromResult((IActionResult)BadRequest());
[HttpGet("seed")]
public async Task<IActionResult> Seed() =>
await Get(() => SeedService.GetAllAsync<Tag, TagSeedDto>());

View file

@ -0,0 +1,11 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
namespace FilterLists.Api.V1.Interfaces
{
public interface IGet
{
Task<IActionResult> GetAll();
Task<IActionResult> GetById(int id);
}
}

View file

@ -0,0 +1,10 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
namespace FilterLists.Api.V1.Interfaces
{
public interface ISeed
{
Task<IActionResult> Seed();
}
}