From 50abb3ea054d33d97ede166a7a3c70df1505b11c Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Sun, 30 Jun 2019 14:18:44 -0500 Subject: [PATCH] refactor towards SRP --- .../Infrastructure/FilterListsApiClient.cs | 12 +++++-- .../ListArchiver/CaptureLists.cs | 31 ++----------------- .../ListArchiver/CommitDownloadedLists.cs | 31 +++++++++++++++++++ 3 files changed, 44 insertions(+), 30 deletions(-) create mode 100644 src/FilterLists.Agent/ListArchiver/CommitDownloadedLists.cs diff --git a/src/FilterLists.Agent/Infrastructure/FilterListsApiClient.cs b/src/FilterLists.Agent/Infrastructure/FilterListsApiClient.cs index 5d5667ca0..7e3f1c495 100644 --- a/src/FilterLists.Agent/Infrastructure/FilterListsApiClient.cs +++ b/src/FilterLists.Agent/Infrastructure/FilterListsApiClient.cs @@ -1,12 +1,14 @@ using System; +using System.Collections.Generic; using System.Threading.Tasks; +using FilterLists.Agent.Entities; using RestSharp; namespace FilterLists.Agent.Infrastructure { public interface IFilterListsApiClient { - Task ExecuteAsync(IRestRequest request); + Task> GetListInfo(); } public class FilterListsApiClient : IFilterListsApiClient @@ -20,7 +22,13 @@ public FilterListsApiClient() _restClient = new RestClient(FilterListsApiBaseUrl) {UserAgent = "FilterLists.Agent"}; } - public async Task ExecuteAsync(IRestRequest request) + public async Task> GetListInfo() + { + var listsRequest = new RestRequest("lists"); + return await ExecuteAsync>(listsRequest); + } + + private async Task ExecuteAsync(IRestRequest request) { var response = await _restClient.ExecuteTaskAsync(request); if (response.ErrorException == null) diff --git a/src/FilterLists.Agent/ListArchiver/CaptureLists.cs b/src/FilterLists.Agent/ListArchiver/CaptureLists.cs index ee5662ad8..5b4ee348b 100644 --- a/src/FilterLists.Agent/ListArchiver/CaptureLists.cs +++ b/src/FilterLists.Agent/ListArchiver/CaptureLists.cs @@ -1,12 +1,7 @@ -using System; -using System.Collections.Generic; -using System.Threading; +using System.Threading; using System.Threading.Tasks; -using FilterLists.Agent.Entities; using FilterLists.Agent.Infrastructure; -using LibGit2Sharp; using MediatR; -using RestSharp; namespace FilterLists.Agent.ListArchiver { @@ -18,7 +13,6 @@ public class Command : IRequest public class Handler : AsyncRequestHandler { - private const string GitRepoDirectory = @"archives"; private readonly IFilterListsApiClient _apiClient; private readonly IMediator _mediator; @@ -30,28 +24,9 @@ public Handler(IFilterListsApiClient apiClient, IMediator mediator) protected override async Task Handle(Command request, CancellationToken cancellationToken) { - var lists = await GetListInfo(); + var lists = await _apiClient.GetListInfo(); await _mediator.Send(new DownloadLists.Command(lists), cancellationToken); - CommitDownloadedLists(); - } - - private async Task> GetListInfo() - { - var listsRequest = new RestRequest("lists"); - return await _apiClient.ExecuteAsync>(listsRequest); - } - - private static void CommitDownloadedLists() - { - if (!Repository.IsValid(GitRepoDirectory)) - Repository.Init(GitRepoDirectory); - using (var repo = new Repository(GitRepoDirectory)) - { - Commands.Stage(repo, "*"); - var utcNow = DateTime.UtcNow; - var signature = new Signature("FilterLists.Agent", "noreply@filterlists.com", utcNow); - repo.Commit(utcNow.ToShortDateString() + " FilterLists archive by FilterLists.Agent", signature, signature); - } + await _mediator.Send(new CommitDownloadedLists.Command(), cancellationToken); } } } diff --git a/src/FilterLists.Agent/ListArchiver/CommitDownloadedLists.cs b/src/FilterLists.Agent/ListArchiver/CommitDownloadedLists.cs new file mode 100644 index 000000000..e35ede2cb --- /dev/null +++ b/src/FilterLists.Agent/ListArchiver/CommitDownloadedLists.cs @@ -0,0 +1,31 @@ +using System; +using LibGit2Sharp; +using MediatR; + +namespace FilterLists.Agent.ListArchiver +{ + public static class CommitDownloadedLists + { + public class Command : IRequest + { + } + + public class Handler : RequestHandler + { + private const string GitRepoDirectory = @"archives"; + + protected override void Handle(Command request) + { + if (!Repository.IsValid(GitRepoDirectory)) + Repository.Init(GitRepoDirectory); + using (var repo = new Repository(GitRepoDirectory)) + { + Commands.Stage(repo, "*"); + var utcNow = DateTime.UtcNow; + var signature = new Signature("FilterLists.Agent", "noreply@filterlists.com", utcNow); + repo.Commit(utcNow.ToShortDateString() + " FilterLists archive by FilterLists.Agent", signature, signature); + } + } + } + } +} \ No newline at end of file