Skip to content

Commit

Permalink
feat: or-2334 dont return dubbele vereniging for publiek zoeken
Browse files Browse the repository at this point in the history
  • Loading branch information
emalfroy committed Dec 13, 2024
1 parent 05852b9 commit 42b0616
Show file tree
Hide file tree
Showing 9 changed files with 42 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ namespace AssociationRegistry.Public.Api.Queries;

using Constants;
using Framework;
using Marten.Linq.SoftDeletes;
using Nest;
using Schema;
using Schema.Constants;
Expand Down Expand Up @@ -44,7 +45,8 @@ public async Task<ISearchResponse<VerenigingZoekDocument>> ExecuteAsync(PubliekV
)
.MustNot(
BeUitgeschrevenUitPubliekeDatastroom,
BeRemoved)
BeRemoved,
BeDubbel)
)
)
.Aggregations(
Expand Down Expand Up @@ -204,6 +206,12 @@ private static QueryContainer BeRemoved<T>(QueryContainerDescriptor<T> q)
{
return q.Term(field: arg => arg.IsVerwijderd, value: true);
}

private static QueryContainer BeDubbel<T>(QueryContainerDescriptor<T> q)
where T : class, IIsDubbel
{
return q.Term(field: arg => arg.IsDubbel, value: true);
}
}

public record PubliekVerenigingenZoekFilter
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -498,13 +498,12 @@ await _elasticRepository.RemoveLidmaatschap(
message.Data.Lidmaatschap.LidmaatschapId);
}

// public async Task Handle(EventEnvelope<LidmaatschapWerdGewijzigd> message)
// {
// await _elasticRepository.UpdateLidmaatschap(
// message.VCode,
// Map(message.Data.Lidmaatschap, message.VCode));
// }

public async Task Handle(EventEnvelope<VerenigingWerdGemarkeerdAlsDubbelVan> message)
{
await _elasticRepository
.UpdateAsync(message.VCode, new VerenigingZoekDocument
{ IsDubbel = true });
}

private static VerenigingZoekDocument.Lidmaatschap Map(Registratiedata.Lidmaatschap lidmaatschap, string vCode)
=> new()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ public async Task ConsumeAsync(IReadOnlyList<StreamAction> streamActions)
case nameof(LidmaatschapWerdToegevoegd):
case nameof(LidmaatschapWerdGewijzigd):
case nameof(LidmaatschapWerdVerwijderd):
case nameof(VerenigingWerdGemarkeerdAlsDubbelVan):
try
{
await _handler.Handle(eventEnvelope);
Expand Down
6 changes: 6 additions & 0 deletions src/AssociationRegistry.Public.Schema/IIsDubbel.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
namespace AssociationRegistry.Public.Schema;

public interface IIsDubbel
{
public bool IsDubbel { get; }
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ namespace AssociationRegistry.Public.Schema.Search;

using Detail;

public class VerenigingZoekDocument : ICanBeUitgeschrevenUitPubliekeDatastroom, IHasStatus, IDeletable
public class VerenigingZoekDocument : ICanBeUitgeschrevenUitPubliekeDatastroom, IHasStatus, IDeletable, IIsDubbel
{
public string JsonLdMetadataType { get; set; }
public string VCode { get; set; } = null!;
Expand All @@ -21,6 +21,7 @@ public class VerenigingZoekDocument : ICanBeUitgeschrevenUitPubliekeDatastroom,
public bool? IsUitgeschrevenUitPubliekeDatastroom { get; set; }
public string Status { get; set; } = null!;
public bool IsVerwijderd { get; set; }
public bool IsDubbel { get; set; }

public class Locatie
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public void With_Context()
}

[Fact]
public async Task WithFeitelijkeVereniging()
public async Task With_Verenigingen_Empty()
{
Response.Verenigingen.Should().BeEmpty();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,10 @@
public class Returns_SearchVerenigingenResponse : End2EndTest<MarkeerAlsDubbelVanContext, MarkeerAlsDubbelVanRequest, SearchVerenigingenResponse>
{
private readonly MarkeerAlsDubbelVanContext _testContext;
private readonly FeitelijkeVerenigingWerdGeregistreerd FeitelijkeVerenigingWerdGeregistreerd;

public Returns_SearchVerenigingenResponse(MarkeerAlsDubbelVanContext testContext) : base(testContext)
{
_testContext = testContext;
FeitelijkeVerenigingWerdGeregistreerd = testContext.Scenario.FeitelijkeVerenigingWerdGeregistreerd;
}

[Fact]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
namespace AssociationRegistry.Test.E2E.When_Markeer_Als_Dubbel_Van.Beheer.Zoeken;
namespace AssociationRegistry.Test.E2E.When_Markeer_Als_Dubbel_Van.Publiek.Zoeken;

using Admin.Api.Verenigingen.Dubbels.FeitelijkeVereniging.MarkeerAlsDubbelVan.RequestModels;
using Admin.Api.Verenigingen.Search.ResponseModels;
using Events;
using FluentAssertions;
using Framework.AlbaHost;
using Framework.ApiSetup;
using Framework.TestClasses;
using KellermanSoftware.CompareNetObjects;
using Public.Api.Verenigingen.Search.ResponseModels;
using Xunit;

[Collection(FullBlownApiCollection.Name)]
Expand All @@ -25,15 +25,15 @@ public Returns_SearchVerenigingenResponse(MarkeerAlsDubbelVanContext testContext
[Fact]
public void With_Context()
{
Response.Context.ShouldCompare("http://127.0.0.1:11003/v1/contexten/beheer/zoek-verenigingen-context.json");
Response.Context.ShouldCompare("http://127.0.0.1:11003/v1/contexten/publiek/zoek-verenigingen-context.json");
}

[Fact]
public async Task WithFeitelijkeVereniging()
public async Task With_Verenigingen_Empty()
{
Response.Verenigingen.Should().BeEmpty();
}

public override Func<IApiSetup, SearchVerenigingenResponse> GetResponse
=> setup => setup.AdminApiHost.GetBeheerZoeken($"vCode:{_testContext.VCode}");
=> setup => setup.PublicApiHost.GetPubliekZoeken($"vCode:{_testContext.VCode}");
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
namespace AssociationRegistry.Test.Projections.Publiek.Zoeken.Dubbels;

using Public.Schema.Constants;

[Collection(nameof(ProjectionContext))]
public class Given_VerenigingWerdGemarkeerdAlsDubbel(PubliekZoekenScenarioFixture<VerenigingWerdGemarkeerdAlsDubbelVanScenario> fixture)
: PubliekZoekenScenarioClassFixture<VerenigingWerdGemarkeerdAlsDubbelVanScenario>
{
[Fact]
public void Status_Is_Dubbel()
=> fixture.Result.IsDubbel.Should().BeTrue();
}

0 comments on commit 42b0616

Please sign in to comment.