mirror of
https://github.com/collinbarrett/FilterLists.git
synced 2026-03-11 09:04:27 +00:00
parent
b4e8b32ec6
commit
c8cc594156
18 changed files with 69 additions and 21 deletions
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
@ -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>());
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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>());
|
||||
|
|
|
|||
11
src/FilterLists.Api/V1/Interfaces/IGet.cs
Normal file
11
src/FilterLists.Api/V1/Interfaces/IGet.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
10
src/FilterLists.Api/V1/Interfaces/ISeed.cs
Normal file
10
src/FilterLists.Api/V1/Interfaces/ISeed.cs
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace FilterLists.Api.V1.Interfaces
|
||||
{
|
||||
public interface ISeed
|
||||
{
|
||||
Task<IActionResult> Seed();
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue