Skip to content

Commit 8c3cead

Browse files
committed
fix: use the same ef pattern for storing lists of strings as elsewhere in project
1 parent 51358bf commit 8c3cead

4 files changed

Lines changed: 23 additions & 4 deletions

File tree

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using Microsoft.EntityFrameworkCore;
2+
using Microsoft.EntityFrameworkCore.Metadata.Builders;
3+
using VirtualFinland.UserAPI.Helpers;
4+
using VirtualFinland.UserAPI.Models.UsersDatabase;
5+
6+
namespace VirtualFinland.UserAPI.Data.Configuration;
7+
8+
public class ExternalIdentityConfiguration : IEntityTypeConfiguration<ExternalIdentity>
9+
{
10+
public void Configure(EntityTypeBuilder<ExternalIdentity> entity)
11+
{
12+
_ = entity.Property(c => c.Audiences).HasConversion(
13+
v => string.Join(',', v ?? new List<string>()),
14+
v => v.Split(',', StringSplitOptions.RemoveEmptyEntries).ToList(),
15+
new CommaSeparatedListComparator()
16+
);
17+
}
18+
}

VirtualFinland.UserAPI/src/VirtualFinland.UsersAPI/Data/UsersDBContext.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
4848
modelBuilder.ApplyConfiguration(new WorkPreferencesConfiguration());
4949
modelBuilder.ApplyConfiguration(new CertificationConfiguration());
5050
modelBuilder.ApplyConfiguration(new TermsOfServiceConfiguration());
51+
modelBuilder.ApplyConfiguration(new ExternalIdentityConfiguration());
5152

5253
if (_isTesting) modelBuilder.ApplyConfiguration(new SearchProfileConfiguration());
5354
}

VirtualFinland.UserAPI/src/VirtualFinland.UsersAPI/Migrations/20231027073616_AddAudienceToExternalId.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ protected override void Up(MigrationBuilder migrationBuilder)
1111
migrationBuilder.AddColumn<List<string>>(
1212
name: "Audiences",
1313
table: "ExternalIdentities",
14-
type: "text[]",
14+
type: "text",
1515
nullable: true);
1616

1717
migrationBuilder.Sql(@"
18-
UPDATE ""ExternalIdentities"" SET ""Audiences"" = array['6fa88191-477e-4082-a119-e1e3ad09b7be'] WHERE ""Audiences"" IS NULL AND ""Issuer"" = 'https://login.iam.qa.sinuna.fi';
19-
UPDATE ""ExternalIdentities"" SET ""Audiences"" = array['e6a5a645-0cf6-48a1-9f08-3d72be3aceaf'] WHERE ""Audiences"" IS NULL AND ""Issuer"" = 'https://login.testbed.fi';
18+
UPDATE ""ExternalIdentities"" SET ""Audiences"" = '6fa88191-477e-4082-a119-e1e3ad09b7be' WHERE ""Audiences"" IS NULL AND ""Issuer"" = 'https://login.iam.qa.sinuna.fi';
19+
UPDATE ""ExternalIdentities"" SET ""Audiences"" = 'e6a5a645-0cf6-48a1-9f08-3d72be3aceaf' WHERE ""Audiences"" IS NULL AND ""Issuer"" = 'https://login.testbed.fi';
2020
");
2121
}
2222

VirtualFinland.UserAPI/src/VirtualFinland.UsersAPI/Migrations/UsersDbContextModelSnapshot.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ protected override void BuildModel(ModelBuilder modelBuilder)
156156
.HasColumnType("uuid");
157157

158158
b.Property<string>("Audiences")
159-
.HasColumnType("text[]");
159+
.HasColumnType("text");
160160

161161
b.Property<DateTime>("Created")
162162
.HasColumnType("timestamp with time zone");

0 commit comments

Comments
 (0)