diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 9afd29f7b..e0468c425 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -1,5 +1,17 @@
version: 2
updates:
+- package-ecosystem: nuget
+ directory: "/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients"
+ schedule:
+ interval: daily
+ time: "11:00"
+ open-pull-requests-limit: 99
+- package-ecosystem: nuget
+ directory: "/services/SharedKernel/FilterLists.SharedKernel.Apis.Contracts"
+ schedule:
+ interval: daily
+ time: "11:00"
+ open-pull-requests-limit: 99
- package-ecosystem: nuget
directory: "/services/SharedKernel/FilterLists.SharedKernel.Logging"
schedule:
diff --git a/services/Archival/FilterLists.Archival.Api/Dockerfile b/services/Archival/FilterLists.Archival.Api/Dockerfile
index 8ba6e8627..f36aa4e90 100644
--- a/services/Archival/FilterLists.Archival.Api/Dockerfile
+++ b/services/Archival/FilterLists.Archival.Api/Dockerfile
@@ -9,6 +9,8 @@ ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
# restore API
WORKDIR /app
+COPY SharedKernel/FilterLists.SharedKernel.Apis.Contracts/FilterLists.SharedKernel.Apis.Contracts.csproj SharedKernel/FilterLists.SharedKernel.Apis.Contracts/
+COPY SharedKernel/FilterLists.SharedKernel.Apis.Clients/FilterLists.SharedKernel.Apis.Clients.csproj SharedKernel/FilterLists.SharedKernel.Apis.Clients/
COPY SharedKernel/FilterLists.SharedKernel.Logging/FilterLists.SharedKernel.Logging.csproj SharedKernel/FilterLists.SharedKernel.Logging/
COPY Archival/FilterLists.Archival.Infrastructure/FilterLists.Archival.Infrastructure.csproj Archival/FilterLists.Archival.Infrastructure/
COPY Archival/FilterLists.Archival.Application/FilterLists.Archival.Application.csproj Archival/FilterLists.Archival.Application/
@@ -18,6 +20,8 @@ RUN dotnet restore
# build API
WORKDIR /app
+COPY SharedKernel/FilterLists.SharedKernel.Apis.Contracts/. SharedKernel/FilterLists.SharedKernel.Apis.Contracts/
+COPY SharedKernel/FilterLists.SharedKernel.Apis.Clients/. SharedKernel/FilterLists.SharedKernel.Apis.Clients/
COPY SharedKernel/FilterLists.SharedKernel.Logging/. SharedKernel/FilterLists.SharedKernel.Logging/
COPY Archival/FilterLists.Archival.Infrastructure/. Archival/FilterLists.Archival.Infrastructure/
COPY Archival/FilterLists.Archival.Application/. Archival/FilterLists.Archival.Application/
diff --git a/services/Archival/FilterLists.Archival.Api/Dockerfile.dev b/services/Archival/FilterLists.Archival.Api/Dockerfile.dev
index c44c08048..d26c1b799 100644
--- a/services/Archival/FilterLists.Archival.Api/Dockerfile.dev
+++ b/services/Archival/FilterLists.Archival.Api/Dockerfile.dev
@@ -8,6 +8,8 @@ ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
# restore API
WORKDIR /app
+COPY SharedKernel/FilterLists.SharedKernel.Apis.Contracts/FilterLists.SharedKernel.Apis.Contracts.csproj SharedKernel/FilterLists.SharedKernel.Apis.Contracts/
+COPY SharedKernel/FilterLists.SharedKernel.Apis.Clients/FilterLists.SharedKernel.Apis.Clients.csproj SharedKernel/FilterLists.SharedKernel.Apis.Clients/
COPY SharedKernel/FilterLists.SharedKernel.Logging/FilterLists.SharedKernel.Logging.csproj SharedKernel/FilterLists.SharedKernel.Logging/
COPY Archival/FilterLists.Archival.Infrastructure/FilterLists.Archival.Infrastructure.csproj Archival/FilterLists.Archival.Infrastructure/
COPY Archival/FilterLists.Archival.Application/FilterLists.Archival.Application.csproj Archival/FilterLists.Archival.Application/
@@ -17,6 +19,8 @@ RUN dotnet restore
# build API
WORKDIR /app
+COPY SharedKernel/FilterLists.SharedKernel.Apis.Contracts/. SharedKernel/FilterLists.SharedKernel.Apis.Contracts/
+COPY SharedKernel/FilterLists.SharedKernel.Apis.Clients/. SharedKernel/FilterLists.SharedKernel.Apis.Clients/
COPY SharedKernel/FilterLists.SharedKernel.Logging/. SharedKernel/FilterLists.SharedKernel.Logging/
COPY Archival/FilterLists.Archival.Infrastructure/. Archival/FilterLists.Archival.Infrastructure/
COPY Archival/FilterLists.Archival.Application/. Archival/FilterLists.Archival.Application/
diff --git a/services/Archival/FilterLists.Archival.Infrastructure/ConfigurationExtensions.cs b/services/Archival/FilterLists.Archival.Infrastructure/ConfigurationExtensions.cs
index a4c5030c9..4797e0b1b 100644
--- a/services/Archival/FilterLists.Archival.Infrastructure/ConfigurationExtensions.cs
+++ b/services/Archival/FilterLists.Archival.Infrastructure/ConfigurationExtensions.cs
@@ -1,6 +1,7 @@
using System;
using FilterLists.Archival.Infrastructure.Persistence;
using FilterLists.Archival.Infrastructure.Scheduling;
+using FilterLists.SharedKernel.Apis.Clients;
using FilterLists.SharedKernel.Logging;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Configuration;
@@ -21,8 +22,9 @@ public static void AddInfrastructureServices(this IServiceCollection services, I
_ = configuration ?? throw new ArgumentNullException(nameof(configuration));
services.AddSharedKernelLogging();
- services.AddPersistenceServices(configuration);
services.AddSchedulingServices(configuration);
+ services.AddApiClients();
+ services.AddPersistenceServices(configuration);
}
public static void UseInfrastructure(this IApplicationBuilder app)
diff --git a/services/Archival/FilterLists.Archival.Infrastructure/FilterLists.Archival.Infrastructure.csproj b/services/Archival/FilterLists.Archival.Infrastructure/FilterLists.Archival.Infrastructure.csproj
index c05e1c0f6..f7e211158 100644
--- a/services/Archival/FilterLists.Archival.Infrastructure/FilterLists.Archival.Infrastructure.csproj
+++ b/services/Archival/FilterLists.Archival.Infrastructure/FilterLists.Archival.Infrastructure.csproj
@@ -39,6 +39,7 @@
+
diff --git a/services/Directory/FilterLists.Directory.Api/Controllers/LanguagesController.cs b/services/Directory/FilterLists.Directory.Api/Controllers/LanguagesController.cs
index aa19799f5..9ab3b196c 100644
--- a/services/Directory/FilterLists.Directory.Api/Controllers/LanguagesController.cs
+++ b/services/Directory/FilterLists.Directory.Api/Controllers/LanguagesController.cs
@@ -20,7 +20,7 @@ public LanguagesController(IMediator mediator)
}
[HttpGet]
- [ProducesResponseType(typeof(IEnumerable), (int)HttpStatusCode.OK)]
+ [ProducesResponseType(typeof(IEnumerable), (int)HttpStatusCode.OK)]
public async Task Get(CancellationToken cancellationToken)
{
return Ok(await _mediator.Send(new GetLanguages.Query(), cancellationToken));
diff --git a/services/Directory/FilterLists.Directory.Api/Controllers/LicensesController.cs b/services/Directory/FilterLists.Directory.Api/Controllers/LicensesController.cs
index 5eff378b4..b7ed3373f 100644
--- a/services/Directory/FilterLists.Directory.Api/Controllers/LicensesController.cs
+++ b/services/Directory/FilterLists.Directory.Api/Controllers/LicensesController.cs
@@ -20,7 +20,7 @@ public LicensesController(IMediator mediator)
}
[HttpGet]
- [ProducesResponseType(typeof(IEnumerable), (int)HttpStatusCode.OK)]
+ [ProducesResponseType(typeof(IEnumerable), (int)HttpStatusCode.OK)]
public async Task Get(CancellationToken cancellationToken)
{
return Ok(await _mediator.Send(new GetLicenses.Query(), cancellationToken));
diff --git a/services/Directory/FilterLists.Directory.Api/Controllers/ListsController.cs b/services/Directory/FilterLists.Directory.Api/Controllers/ListsController.cs
index bab5fc1de..6ea329d3f 100644
--- a/services/Directory/FilterLists.Directory.Api/Controllers/ListsController.cs
+++ b/services/Directory/FilterLists.Directory.Api/Controllers/ListsController.cs
@@ -3,6 +3,7 @@
using System.Threading;
using System.Threading.Tasks;
using FilterLists.Directory.Application.Queries;
+using FilterLists.SharedKernel.Apis.Contracts.Directory;
using MediatR;
using Microsoft.AspNetCore.Mvc;
@@ -20,14 +21,14 @@ public ListsController(IMediator mediator)
}
[HttpGet]
- [ProducesResponseType(typeof(IEnumerable), (int)HttpStatusCode.OK)]
+ [ProducesResponseType(typeof(IEnumerable), (int)HttpStatusCode.OK)]
public async Task Get(CancellationToken cancellationToken)
{
return Ok(await _mediator.Send(new GetLists.Query(), cancellationToken));
}
[HttpGet("{id}")]
- [ProducesResponseType(typeof(GetListDetails.ListViewModel), (int)HttpStatusCode.OK)]
+ [ProducesResponseType(typeof(ListDetailsVm), (int)HttpStatusCode.OK)]
public async Task GetDetails(int id, CancellationToken cancellationToken)
{
return Ok(await _mediator.Send(new GetListDetails.Query(id), cancellationToken));
diff --git a/services/Directory/FilterLists.Directory.Api/Controllers/MaintainersController.cs b/services/Directory/FilterLists.Directory.Api/Controllers/MaintainersController.cs
index db993afee..2e259a2f2 100644
--- a/services/Directory/FilterLists.Directory.Api/Controllers/MaintainersController.cs
+++ b/services/Directory/FilterLists.Directory.Api/Controllers/MaintainersController.cs
@@ -20,7 +20,7 @@ public MaintainersController(IMediator mediator)
}
[HttpGet]
- [ProducesResponseType(typeof(IEnumerable), (int)HttpStatusCode.OK)]
+ [ProducesResponseType(typeof(IEnumerable), (int)HttpStatusCode.OK)]
public async Task Get(CancellationToken cancellationToken)
{
return Ok(await _mediator.Send(new GetMaintainers.Query(), cancellationToken));
diff --git a/services/Directory/FilterLists.Directory.Api/Controllers/SoftwareController.cs b/services/Directory/FilterLists.Directory.Api/Controllers/SoftwareController.cs
index 65a54dc16..fb08bc5ef 100644
--- a/services/Directory/FilterLists.Directory.Api/Controllers/SoftwareController.cs
+++ b/services/Directory/FilterLists.Directory.Api/Controllers/SoftwareController.cs
@@ -20,7 +20,7 @@ public SoftwareController(IMediator mediator)
}
[HttpGet]
- [ProducesResponseType(typeof(IEnumerable), (int)HttpStatusCode.OK)]
+ [ProducesResponseType(typeof(IEnumerable), (int)HttpStatusCode.OK)]
public async Task Get(CancellationToken cancellationToken)
{
return Ok(await _mediator.Send(new GetSoftware.Query(), cancellationToken));
diff --git a/services/Directory/FilterLists.Directory.Api/Controllers/SyntaxesController.cs b/services/Directory/FilterLists.Directory.Api/Controllers/SyntaxesController.cs
index d9fcf3ae9..e6e869a7e 100644
--- a/services/Directory/FilterLists.Directory.Api/Controllers/SyntaxesController.cs
+++ b/services/Directory/FilterLists.Directory.Api/Controllers/SyntaxesController.cs
@@ -20,7 +20,7 @@ public SyntaxesController(IMediator mediator)
}
[HttpGet]
- [ProducesResponseType(typeof(IEnumerable), (int)HttpStatusCode.OK)]
+ [ProducesResponseType(typeof(IEnumerable), (int)HttpStatusCode.OK)]
public async Task Get(CancellationToken cancellationToken)
{
return Ok(await _mediator.Send(new GetSyntaxes.Query(), cancellationToken));
diff --git a/services/Directory/FilterLists.Directory.Api/Controllers/TagsController.cs b/services/Directory/FilterLists.Directory.Api/Controllers/TagsController.cs
index 7cdda63d4..ecc660cd2 100644
--- a/services/Directory/FilterLists.Directory.Api/Controllers/TagsController.cs
+++ b/services/Directory/FilterLists.Directory.Api/Controllers/TagsController.cs
@@ -20,7 +20,7 @@ public TagsController(IMediator mediator)
}
[HttpGet]
- [ProducesResponseType(typeof(IEnumerable), (int)HttpStatusCode.OK)]
+ [ProducesResponseType(typeof(IEnumerable), (int)HttpStatusCode.OK)]
public async Task Get(CancellationToken cancellationToken)
{
return Ok(await _mediator.Send(new GetTags.Query(), cancellationToken));
diff --git a/services/Directory/FilterLists.Directory.Api/Dockerfile b/services/Directory/FilterLists.Directory.Api/Dockerfile
index ec5c7f8a7..2be9a12a9 100644
--- a/services/Directory/FilterLists.Directory.Api/Dockerfile
+++ b/services/Directory/FilterLists.Directory.Api/Dockerfile
@@ -10,6 +10,7 @@ ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
# restore API
WORKDIR /app
+COPY SharedKernel/FilterLists.SharedKernel.Apis.Contracts/FilterLists.SharedKernel.Apis.Contracts.csproj SharedKernel/FilterLists.SharedKernel.Apis.Contracts/
COPY SharedKernel/FilterLists.SharedKernel.Logging/FilterLists.SharedKernel.Logging.csproj SharedKernel/FilterLists.SharedKernel.Logging/
COPY Directory/FilterLists.Directory.Domain/FilterLists.Directory.Domain.csproj Directory/FilterLists.Directory.Domain/
COPY Directory/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj Directory/FilterLists.Directory.Infrastructure/
@@ -21,6 +22,7 @@ RUN dotnet restore
# build API
WORKDIR /app
+COPY SharedKernel/FilterLists.SharedKernel.Apis.Contracts/. SharedKernel/FilterLists.SharedKernel.Apis.Contracts/
COPY SharedKernel/FilterLists.SharedKernel.Logging/. SharedKernel/FilterLists.SharedKernel.Logging/
COPY Directory/FilterLists.Directory.Domain/. Directory/FilterLists.Directory.Domain/
COPY Directory/FilterLists.Directory.Infrastructure/. Directory/FilterLists.Directory.Infrastructure/
diff --git a/services/Directory/FilterLists.Directory.Api/Dockerfile.dev b/services/Directory/FilterLists.Directory.Api/Dockerfile.dev
index ccfa99795..dde3e3c42 100644
--- a/services/Directory/FilterLists.Directory.Api/Dockerfile.dev
+++ b/services/Directory/FilterLists.Directory.Api/Dockerfile.dev
@@ -9,6 +9,7 @@ ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
# restore API
WORKDIR /app
+COPY SharedKernel/FilterLists.SharedKernel.Apis.Contracts/FilterLists.SharedKernel.Apis.Contracts.csproj SharedKernel/FilterLists.SharedKernel.Apis.Contracts/
COPY SharedKernel/FilterLists.SharedKernel.Logging/FilterLists.SharedKernel.Logging.csproj SharedKernel/FilterLists.SharedKernel.Logging/
COPY Directory/FilterLists.Directory.Domain/FilterLists.Directory.Domain.csproj Directory/FilterLists.Directory.Domain/
COPY Directory/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj Directory/FilterLists.Directory.Infrastructure/
@@ -20,6 +21,7 @@ RUN dotnet restore
# build API
WORKDIR /app
+COPY SharedKernel/FilterLists.SharedKernel.Apis.Contracts/. SharedKernel/FilterLists.SharedKernel.Apis.Contracts/
COPY SharedKernel/FilterLists.SharedKernel.Logging/. SharedKernel/FilterLists.SharedKernel.Logging/
COPY Directory/FilterLists.Directory.Domain/. Directory/FilterLists.Directory.Domain/
COPY Directory/FilterLists.Directory.Infrastructure/. Directory/FilterLists.Directory.Infrastructure/
diff --git a/services/Directory/FilterLists.Directory.Application/Queries/GetLanguages.cs b/services/Directory/FilterLists.Directory.Application/Queries/GetLanguages.cs
index 29866e88e..21d5b2eda 100644
--- a/services/Directory/FilterLists.Directory.Application/Queries/GetLanguages.cs
+++ b/services/Directory/FilterLists.Directory.Application/Queries/GetLanguages.cs
@@ -13,11 +13,11 @@ namespace FilterLists.Directory.Application.Queries
{
public static class GetLanguages
{
- public class Query : IRequest>
+ public class Query : IRequest>
{
}
- public class Handler : IRequestHandler>
+ public class Handler : IRequestHandler>
{
private readonly IQueryContext _context;
private readonly IMapper _mapper;
@@ -28,30 +28,30 @@ public Handler(IQueryContext context, IMapper mapper)
_mapper = mapper;
}
- public async Task> Handle(
+ public async Task> Handle(
Query request,
CancellationToken cancellationToken)
{
return await _context.Languages
.Where(l => l.FilterListLanguages.Any())
.OrderBy(l => l.Iso6391)
- .ProjectTo(_mapper.ConfigurationProvider)
+ .ProjectTo(_mapper.ConfigurationProvider)
.ToListAsync(cancellationToken);
}
}
- public class LicenseViewModelProfile : Profile
+ public class LanguageVmProfile : Profile
{
- public LicenseViewModelProfile()
+ public LanguageVmProfile()
{
- CreateMap()
+ CreateMap()
.ForMember(l => l.FilterListIds,
o => o.MapFrom(l =>
l.FilterListLanguages.Select(fll => fll.FilterListId).OrderBy(flid => flid)));
}
}
- public class LanguageViewModel
+ public class LanguageVm
{
public string Iso6391 { get; private set; } = null!;
public string Name { get; private set; } = null!;
diff --git a/services/Directory/FilterLists.Directory.Application/Queries/GetLicenses.cs b/services/Directory/FilterLists.Directory.Application/Queries/GetLicenses.cs
index d7f653da7..f8a3f72cf 100644
--- a/services/Directory/FilterLists.Directory.Application/Queries/GetLicenses.cs
+++ b/services/Directory/FilterLists.Directory.Application/Queries/GetLicenses.cs
@@ -14,11 +14,11 @@ namespace FilterLists.Directory.Application.Queries
{
public static class GetLicenses
{
- public class Query : IRequest>
+ public class Query : IRequest>
{
}
- public class Handler : IRequestHandler>
+ public class Handler : IRequestHandler>
{
private readonly IQueryContext _context;
private readonly IMapper _mapper;
@@ -29,29 +29,29 @@ public Handler(IQueryContext context, IMapper mapper)
_mapper = mapper;
}
- public async Task> Handle(
+ public async Task> Handle(
Query request,
CancellationToken cancellationToken)
{
return await _context.Licenses
.OrderBy(l => l.Id)
- .ProjectTo(_mapper.ConfigurationProvider)
+ .ProjectTo(_mapper.ConfigurationProvider)
.ToListAsync(cancellationToken);
}
}
- public class LicenseViewModelProfile : Profile
+ public class LicenseVmProfile : Profile
{
- public LicenseViewModelProfile()
+ public LicenseVmProfile()
{
- CreateMap()
+ CreateMap()
.ForMember(l => l.FilterListIds,
o => o.MapFrom(l =>
l.FilterLists.Select(fl => fl.Id).OrderBy(flid => flid)));
}
}
- public class LicenseViewModel
+ public class LicenseVm
{
public int Id { get; private set; }
public string Name { get; private set; } = null!;
diff --git a/services/Directory/FilterLists.Directory.Application/Queries/GetListDetails.cs b/services/Directory/FilterLists.Directory.Application/Queries/GetListDetails.cs
index d4dc824c4..a5f3582ad 100644
--- a/services/Directory/FilterLists.Directory.Application/Queries/GetListDetails.cs
+++ b/services/Directory/FilterLists.Directory.Application/Queries/GetListDetails.cs
@@ -1,12 +1,11 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
+using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using AutoMapper;
using AutoMapper.QueryableExtensions;
using FilterLists.Directory.Infrastructure.Persistence.Queries.Context;
using FilterLists.Directory.Infrastructure.Persistence.Queries.Entities;
+using FilterLists.SharedKernel.Apis.Contracts.Directory;
using MediatR;
using Microsoft.EntityFrameworkCore;
@@ -14,7 +13,7 @@ namespace FilterLists.Directory.Application.Queries
{
public static class GetListDetails
{
- public class Query : IRequest
+ public class Query : IRequest
{
public Query(int id)
{
@@ -24,7 +23,7 @@ public Query(int id)
public int Id { get; }
}
- public class Handler : IRequestHandler
+ public class Handler : IRequestHandler
{
private readonly IQueryContext _context;
private readonly IMapper _mapper;
@@ -35,21 +34,21 @@ public Handler(IQueryContext context, IMapper mapper)
_mapper = mapper;
}
- public async Task Handle(
+ public async Task Handle(
Query request,
CancellationToken cancellationToken)
{
return await _context.FilterLists
- .ProjectTo(_mapper.ConfigurationProvider)
+ .ProjectTo(_mapper.ConfigurationProvider)
.SingleOrDefaultAsync(fl => fl.Id == request.Id, cancellationToken);
}
}
- public class ListViewModelProfile : Profile
+ public class ListDetailsVmProfile : Profile
{
- public ListViewModelProfile()
+ public ListDetailsVmProfile()
{
- CreateMap()
+ CreateMap()
.ForMember(fl => fl.SyntaxIds,
o => o.MapFrom(fl =>
fl.FilterListSyntaxes.Select(fls => fls.SyntaxId).OrderBy(sid => sid)))
@@ -86,47 +85,12 @@ public ListViewModelProfile()
}
}
- public class ViewUrlViewModelProfile : Profile
+ public class ListDetailsViewUrlVmProfile : Profile
{
- public ViewUrlViewModelProfile()
+ public ListDetailsViewUrlVmProfile()
{
- CreateMap();
+ CreateMap();
}
}
-
- public class ListViewModel
- {
- public int Id { get; private set; }
- public string Name { get; private set; } = null!;
- public string? Description { get; private set; }
- public int? LicenseId { get; private set; }
- public IEnumerable? SyntaxIds { get; private set; }
- public IEnumerable? Iso6391s { get; private set; }
- public IEnumerable? TagIds { get; private set; }
- public IEnumerable? ViewUrls { get; private set; }
- public Uri? HomeUrl { get; private set; }
- public Uri? OnionUrl { get; private set; }
- public Uri? PolicyUrl { get; private set; }
- public Uri? SubmissionUrl { get; private set; }
- public Uri? IssuesUrl { get; private set; }
- public Uri? ForumUrl { get; private set; }
- public Uri? ChatUrl { get; private set; }
- public string? EmailAddress { get; private set; }
- public Uri? DonateUrl { get; private set; }
- public IEnumerable? MaintainerIds { get; private set; }
- public IEnumerable? UpstreamFilterListIds { get; private set; }
- public IEnumerable? ForkFilterListIds { get; private set; }
- public IEnumerable? IncludedInFilterListIds { get; private set; }
- public IEnumerable? IncludesFilterListIds { get; private set; }
- public IEnumerable? DependencyFilterListIds { get; private set; }
- public IEnumerable? DependentFilterListIds { get; private set; }
- }
-
- public class ViewUrlViewModel
- {
- public short SegmentNumber { get; private set; }
- public short Primariness { get; private set; }
- public Uri Url { get; private set; } = null!;
- }
}
}
\ No newline at end of file
diff --git a/services/Directory/FilterLists.Directory.Application/Queries/GetLists.cs b/services/Directory/FilterLists.Directory.Application/Queries/GetLists.cs
index edf70afbf..10a0218e3 100644
--- a/services/Directory/FilterLists.Directory.Application/Queries/GetLists.cs
+++ b/services/Directory/FilterLists.Directory.Application/Queries/GetLists.cs
@@ -13,11 +13,11 @@ namespace FilterLists.Directory.Application.Queries
{
public static class GetLists
{
- public class Query : IRequest>
+ public class Query : IRequest>
{
}
- public class Handler : IRequestHandler>
+ public class Handler : IRequestHandler>
{
private readonly IQueryContext _context;
private readonly IMapper _mapper;
@@ -28,22 +28,22 @@ public Handler(IQueryContext context, IMapper mapper)
_mapper = mapper;
}
- public async Task> Handle(
+ public async Task> Handle(
Query request,
CancellationToken cancellationToken)
{
return await _context.FilterLists
.OrderBy(fl => fl.Id)
- .ProjectTo(_mapper.ConfigurationProvider)
+ .ProjectTo(_mapper.ConfigurationProvider)
.ToListAsync(cancellationToken);
}
}
- public class ListViewModelProfile : Profile
+ public class ListVmProfile : Profile
{
- public ListViewModelProfile()
+ public ListVmProfile()
{
- CreateMap()
+ CreateMap()
.ForMember(fl => fl.SyntaxIds,
o => o.MapFrom(fl =>
fl.FilterListSyntaxes.Select(fls => fls.SyntaxId).OrderBy(sid => sid)))
@@ -59,7 +59,7 @@ public ListViewModelProfile()
}
}
- public class ListViewModel
+ public class ListVm
{
public int Id { get; private set; }
public string Name { get; private set; } = null!;
diff --git a/services/Directory/FilterLists.Directory.Application/Queries/GetMaintainers.cs b/services/Directory/FilterLists.Directory.Application/Queries/GetMaintainers.cs
index 2bd1f4f7e..7d1879636 100644
--- a/services/Directory/FilterLists.Directory.Application/Queries/GetMaintainers.cs
+++ b/services/Directory/FilterLists.Directory.Application/Queries/GetMaintainers.cs
@@ -14,11 +14,11 @@ namespace FilterLists.Directory.Application.Queries
{
public static class GetMaintainers
{
- public class Query : IRequest>
+ public class Query : IRequest>
{
}
- public class Handler : IRequestHandler>
+ public class Handler : IRequestHandler>
{
private readonly IQueryContext _context;
private readonly IMapper _mapper;
@@ -29,29 +29,29 @@ public Handler(IQueryContext context, IMapper mapper)
_mapper = mapper;
}
- public async Task> Handle(
+ public async Task> Handle(
Query request,
CancellationToken cancellationToken)
{
return await _context.Maintainers
.OrderBy(m => m.Id)
- .ProjectTo(_mapper.ConfigurationProvider)
+ .ProjectTo(_mapper.ConfigurationProvider)
.ToListAsync(cancellationToken);
}
}
- public class MaintainerViewModelProfile : Profile
+ public class MaintainerVmProfile : Profile
{
- public MaintainerViewModelProfile()
+ public MaintainerVmProfile()
{
- CreateMap()
+ CreateMap()
.ForMember(m => m.FilterListIds,
o => o.MapFrom(m =>
m.FilterListMaintainers.Select(flm => flm.FilterListId).OrderBy(flid => flid)));
}
}
- public class MaintainerViewModel
+ public class MaintainerVm
{
public int Id { get; private set; }
public string Name { get; private set; } = null!;
diff --git a/services/Directory/FilterLists.Directory.Application/Queries/GetSoftware.cs b/services/Directory/FilterLists.Directory.Application/Queries/GetSoftware.cs
index 13ea20828..77396cac3 100644
--- a/services/Directory/FilterLists.Directory.Application/Queries/GetSoftware.cs
+++ b/services/Directory/FilterLists.Directory.Application/Queries/GetSoftware.cs
@@ -14,11 +14,11 @@ namespace FilterLists.Directory.Application.Queries
{
public static class GetSoftware
{
- public class Query : IRequest>
+ public class Query : IRequest>
{
}
- public class Handler : IRequestHandler>
+ public class Handler : IRequestHandler>
{
private readonly IQueryContext _context;
private readonly IMapper _mapper;
@@ -29,29 +29,29 @@ public Handler(IQueryContext context, IMapper mapper)
_mapper = mapper;
}
- public async Task> Handle(
+ public async Task> Handle(
Query request,
CancellationToken cancellationToken)
{
return await _context.Software
.OrderBy(s => s.Id)
- .ProjectTo(_mapper.ConfigurationProvider)
+ .ProjectTo(_mapper.ConfigurationProvider)
.ToListAsync(cancellationToken);
}
}
- public class SoftwareViewModelProfile : Profile
+ public class SoftwareVmProfile : Profile
{
- public SoftwareViewModelProfile()
+ public SoftwareVmProfile()
{
- CreateMap()
+ CreateMap()
.ForMember(s => s.SyntaxIds,
o => o.MapFrom(s =>
s.SoftwareSyntaxes.Select(ss => ss.SyntaxId).OrderBy(sid => sid)));
}
}
- public class SoftwareViewModel
+ public class SoftwareVm
{
public int Id { get; private set; }
public string Name { get; private set; } = null!;
diff --git a/services/Directory/FilterLists.Directory.Application/Queries/GetSyntaxes.cs b/services/Directory/FilterLists.Directory.Application/Queries/GetSyntaxes.cs
index 821a1acb0..5981e2c7f 100644
--- a/services/Directory/FilterLists.Directory.Application/Queries/GetSyntaxes.cs
+++ b/services/Directory/FilterLists.Directory.Application/Queries/GetSyntaxes.cs
@@ -14,11 +14,11 @@ namespace FilterLists.Directory.Application.Queries
{
public static class GetSyntaxes
{
- public class Query : IRequest>
+ public class Query : IRequest>
{
}
- public class Handler : IRequestHandler>
+ public class Handler : IRequestHandler>
{
private readonly IQueryContext _context;
private readonly IMapper _mapper;
@@ -29,22 +29,22 @@ public Handler(IQueryContext context, IMapper mapper)
_mapper = mapper;
}
- public async Task> Handle(
+ public async Task> Handle(
Query request,
CancellationToken cancellationToken)
{
return await _context.Syntaxes
.OrderBy(s => s.Id)
- .ProjectTo(_mapper.ConfigurationProvider)
+ .ProjectTo(_mapper.ConfigurationProvider)
.ToListAsync(cancellationToken);
}
}
- public class SyntaxViewModelProfile : Profile
+ public class SyntaxVmProfile : Profile
{
- public SyntaxViewModelProfile()
+ public SyntaxVmProfile()
{
- CreateMap()
+ CreateMap()
.ForMember(s => s.FilterListIds,
o => o.MapFrom(s =>
s.FilterListSyntaxes.Select(sls => sls.FilterListId).OrderBy(flid => flid)))
@@ -54,7 +54,7 @@ public SyntaxViewModelProfile()
}
}
- public class SyntaxViewModel
+ public class SyntaxVm
{
public int Id { get; private set; }
public string Name { get; private set; } = null!;
diff --git a/services/Directory/FilterLists.Directory.Application/Queries/GetTags.cs b/services/Directory/FilterLists.Directory.Application/Queries/GetTags.cs
index 4e083abe5..b83216afc 100644
--- a/services/Directory/FilterLists.Directory.Application/Queries/GetTags.cs
+++ b/services/Directory/FilterLists.Directory.Application/Queries/GetTags.cs
@@ -13,11 +13,11 @@ namespace FilterLists.Directory.Application.Queries
{
public static class GetTags
{
- public class Query : IRequest>
+ public class Query : IRequest>
{
}
- public class Handler : IRequestHandler>
+ public class Handler : IRequestHandler>
{
private readonly IQueryContext _context;
private readonly IMapper _mapper;
@@ -28,29 +28,29 @@ public Handler(IQueryContext context, IMapper mapper)
_mapper = mapper;
}
- public async Task> Handle(
+ public async Task> Handle(
Query request,
CancellationToken cancellationToken)
{
return await _context.Tags
.OrderBy(t => t.Id)
- .ProjectTo(_mapper.ConfigurationProvider)
+ .ProjectTo(_mapper.ConfigurationProvider)
.ToListAsync(cancellationToken);
}
}
- public class TagViewModelProfile : Profile
+ public class TagVmProfile : Profile
{
- public TagViewModelProfile()
+ public TagVmProfile()
{
- CreateMap()
+ CreateMap()
.ForMember(t => t.FilterListIds,
o => o.MapFrom(t =>
t.FilterListTags.Select(flt => flt.FilterListId).OrderBy(flid => flid)));
}
}
- public class TagViewModel
+ public class TagVm
{
public int Id { get; private set; }
public string Name { get; private set; } = null!;
diff --git a/services/Directory/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj b/services/Directory/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj
index 9e89977ff..b80b23a6d 100644
--- a/services/Directory/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj
+++ b/services/Directory/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj
@@ -34,6 +34,7 @@
+
diff --git a/services/FilterLists.sln b/services/FilterLists.sln
index 483670f72..75ef2f749 100644
--- a/services/FilterLists.sln
+++ b/services/FilterLists.sln
@@ -60,7 +60,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FilterLists.Archival.Infras
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SharedKernel", "SharedKernel", "{59197818-6C72-4A3C-A595-49F3D7D2EB18}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FilterLists.SharedKernel.Logging", "SharedKernel\FilterLists.SharedKernel.Logging\FilterLists.SharedKernel.Logging.csproj", "{5485F55E-DFED-4DA0-8A00-220B081FAC96}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FilterLists.SharedKernel.Logging", "SharedKernel\FilterLists.SharedKernel.Logging\FilterLists.SharedKernel.Logging.csproj", "{5485F55E-DFED-4DA0-8A00-220B081FAC96}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FilterLists.SharedKernel.Apis.Contracts", "SharedKernel\FilterLists.SharedKernel.Apis.Contracts\FilterLists.SharedKernel.Apis.Contracts.csproj", "{D8B65709-B68E-42D6-8500-68EE309177D5}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FilterLists.SharedKernel.Apis.Clients", "SharedKernel\FilterLists.SharedKernel.Apis.Clients\FilterLists.SharedKernel.Apis.Clients.csproj", "{FF6F3D83-A96C-412C-BAFF-63BA89ADD31F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -112,6 +116,14 @@ Global
{5485F55E-DFED-4DA0-8A00-220B081FAC96}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5485F55E-DFED-4DA0-8A00-220B081FAC96}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5485F55E-DFED-4DA0-8A00-220B081FAC96}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D8B65709-B68E-42D6-8500-68EE309177D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D8B65709-B68E-42D6-8500-68EE309177D5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D8B65709-B68E-42D6-8500-68EE309177D5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D8B65709-B68E-42D6-8500-68EE309177D5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FF6F3D83-A96C-412C-BAFF-63BA89ADD31F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FF6F3D83-A96C-412C-BAFF-63BA89ADD31F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FF6F3D83-A96C-412C-BAFF-63BA89ADD31F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FF6F3D83-A96C-412C-BAFF-63BA89ADD31F}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -128,6 +140,8 @@ Global
{11669839-E666-477B-A1B6-276041AD3768} = {5E52FEF9-9605-4ACB-8A42-A20E06331599}
{A0B77015-E8C4-41D3-B63D-BF818026298C} = {5E52FEF9-9605-4ACB-8A42-A20E06331599}
{5485F55E-DFED-4DA0-8A00-220B081FAC96} = {59197818-6C72-4A3C-A595-49F3D7D2EB18}
+ {D8B65709-B68E-42D6-8500-68EE309177D5} = {59197818-6C72-4A3C-A595-49F3D7D2EB18}
+ {FF6F3D83-A96C-412C-BAFF-63BA89ADD31F} = {59197818-6C72-4A3C-A595-49F3D7D2EB18}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {758B57EF-7505-4BE2-90A2-E2DE2EC32909}
diff --git a/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/ConfigurationExtensions.cs b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/ConfigurationExtensions.cs
new file mode 100644
index 000000000..d9a570253
--- /dev/null
+++ b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/ConfigurationExtensions.cs
@@ -0,0 +1,13 @@
+using Microsoft.Extensions.DependencyInjection;
+using RestSharp;
+
+namespace FilterLists.SharedKernel.Apis.Clients
+{
+ public static class ConfigurationExtensions
+ {
+ public static void AddApiClients(this IServiceCollection services)
+ {
+ services.AddTransient();
+ }
+ }
+}
\ No newline at end of file
diff --git a/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/FilterLists.SharedKernel.Apis.Clients.csproj b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/FilterLists.SharedKernel.Apis.Clients.csproj
new file mode 100644
index 000000000..c05a1a4fe
--- /dev/null
+++ b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/FilterLists.SharedKernel.Apis.Clients.csproj
@@ -0,0 +1,40 @@
+
+
+
+ netstandard2.1
+ latest
+ enable
+
+
+
+ Collin M. Barrett
+ FilterLists
+ FilterLists Shared Kernel API Clients
+ The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.
+ Copyright (c) 2020 Collin M. Barrett
+ https://github.com/collinbarrett/FilterLists
+ https://filterlists.com
+
+
+
+ 1701;1702;CA2007
+
+
+
+ CA2007
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/services/SharedKernel/FilterLists.SharedKernel.Apis.Contracts/Directory/ListDetailsVm.cs b/services/SharedKernel/FilterLists.SharedKernel.Apis.Contracts/Directory/ListDetailsVm.cs
new file mode 100644
index 000000000..43dd0af0c
--- /dev/null
+++ b/services/SharedKernel/FilterLists.SharedKernel.Apis.Contracts/Directory/ListDetailsVm.cs
@@ -0,0 +1,40 @@
+using System;
+using System.Collections.Generic;
+
+namespace FilterLists.SharedKernel.Apis.Contracts.Directory
+{
+ public class ListDetailsVm
+ {
+ public int Id { get; private set; }
+ public string Name { get; private set; } = null!;
+ public string? Description { get; private set; }
+ public int? LicenseId { get; private set; }
+ public IEnumerable? SyntaxIds { get; private set; }
+ public IEnumerable? Iso6391s { get; private set; }
+ public IEnumerable? TagIds { get; private set; }
+ public IEnumerable? ViewUrls { get; private set; }
+ public Uri? HomeUrl { get; private set; }
+ public Uri? OnionUrl { get; private set; }
+ public Uri? PolicyUrl { get; private set; }
+ public Uri? SubmissionUrl { get; private set; }
+ public Uri? IssuesUrl { get; private set; }
+ public Uri? ForumUrl { get; private set; }
+ public Uri? ChatUrl { get; private set; }
+ public string? EmailAddress { get; private set; }
+ public Uri? DonateUrl { get; private set; }
+ public IEnumerable? MaintainerIds { get; private set; }
+ public IEnumerable? UpstreamFilterListIds { get; private set; }
+ public IEnumerable? ForkFilterListIds { get; private set; }
+ public IEnumerable? IncludedInFilterListIds { get; private set; }
+ public IEnumerable? IncludesFilterListIds { get; private set; }
+ public IEnumerable? DependencyFilterListIds { get; private set; }
+ public IEnumerable? DependentFilterListIds { get; private set; }
+ }
+
+ public class ListDetailsViewUrlVm
+ {
+ public short SegmentNumber { get; private set; }
+ public short Primariness { get; private set; }
+ public Uri Url { get; private set; } = null!;
+ }
+}
\ No newline at end of file
diff --git a/services/SharedKernel/FilterLists.SharedKernel.Apis.Contracts/FilterLists.SharedKernel.Apis.Contracts.csproj b/services/SharedKernel/FilterLists.SharedKernel.Apis.Contracts/FilterLists.SharedKernel.Apis.Contracts.csproj
new file mode 100644
index 000000000..1eb6e1ec3
--- /dev/null
+++ b/services/SharedKernel/FilterLists.SharedKernel.Apis.Contracts/FilterLists.SharedKernel.Apis.Contracts.csproj
@@ -0,0 +1,30 @@
+
+
+
+ netstandard2.1
+ latest
+ enable
+
+
+
+ Collin M. Barrett
+ FilterLists
+ FilterLists Shared Kernel API Contracts
+ The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.
+ Copyright (c) 2020 Collin M. Barrett
+ https://github.com/collinbarrett/FilterLists
+ https://filterlists.com
+
+
+
+ 1701;1702
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
\ No newline at end of file