Skip to content

Commit c83080e

Browse files
committed
Fix email template setup
1 parent 4bc8376 commit c83080e

4 files changed

Lines changed: 18 additions & 12 deletions

File tree

API/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ static void DefaultOptions(RemoteAuthenticationOptions options, string provider)
106106
builder.AddSwaggerExt<Program>();
107107

108108
builder.AddCloudflareTurnstileService();
109-
builder.AddEmailService();
109+
await builder.AddEmailService();
110110

111111
//services.AddHealthChecks().AddCheck<DatabaseHealthCheck>("database");
112112

API/Services/Email/EmailServiceExtension.cs

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace OpenShock.API.Services.Email;
66

77
public static class EmailServiceExtension
88
{
9-
public static WebApplicationBuilder AddEmailService(this WebApplicationBuilder builder)
9+
public static async Task<WebApplicationBuilder> AddEmailService(this WebApplicationBuilder builder)
1010
{
1111
var mailOptions = builder.Configuration.GetRequiredSection(MailOptions.SectionName).Get<MailOptions>() ?? throw new NullReferenceException();
1212

@@ -18,7 +18,7 @@ public static WebApplicationBuilder AddEmailService(this WebApplicationBuilder b
1818

1919
// Add sender contact configuration
2020
builder.AddSenderContactConfiguration();
21-
builder.AddEmailServiceTemplates();
21+
await builder.AddEmailServiceTemplates();
2222

2323
switch (mailOptions.Type)
2424
{
@@ -41,14 +41,21 @@ private static WebApplicationBuilder AddSenderContactConfiguration(this WebAppli
4141
return builder;
4242
}
4343

44-
private static WebApplicationBuilder AddEmailServiceTemplates(this WebApplicationBuilder builder)
44+
private static async Task<WebApplicationBuilder> AddEmailServiceTemplates(this WebApplicationBuilder builder)
4545
{
46+
var accountActivation = EmailTemplate.ParseFromFileThrow("SmtpTemplates/AccountActivation.liquid");
47+
var passwordReset = EmailTemplate.ParseFromFileThrow("SmtpTemplates/PasswordReset.liquid");
48+
var emailVerification = EmailTemplate.ParseFromFileThrow("SmtpTemplates/EmailVerification.liquid");
49+
var emailChangeNotice = EmailTemplate.ParseFromFileThrow("SmtpTemplates/EmailChangeNotice.liquid");
50+
51+
await Task.WhenAll(accountActivation, passwordReset, emailVerification, emailChangeNotice);
52+
4653
builder.Services.AddSingleton(new EmailServiceTemplates
4754
{
48-
AccountActivation = EmailTemplate.ParseFromFileThrow("SmtpTemplates/AccountActivation.liquid").Result,
49-
PasswordReset = EmailTemplate.ParseFromFileThrow("SmtpTemplates/PasswordReset.liquid").Result,
50-
EmailVerification = EmailTemplate.ParseFromFileThrow("SmtpTemplates/EmailVerification.liquid").Result,
51-
EmailChangeNotice = EmailTemplate.ParseFromFileThrow("SmtpTemplates/EmailChangeNotice.liquid").Result,
55+
AccountActivation = await accountActivation,
56+
PasswordReset = await passwordReset,
57+
EmailVerification = await emailVerification,
58+
EmailChangeNotice = await emailChangeNotice,
5259
});
5360
return builder;
5461
}

API/Services/Email/EmailTemplate.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,13 @@ private static TemplateOptions CreateOptions()
3030
public static async Task<EmailTemplate> ParseFromFileThrow(string filePath)
3131
{
3232
var result = await ParseFromFile(filePath);
33-
if (result.IsT0) return result.AsT0;
34-
throw new InvalidDataException(result.AsT1);
33+
return result.IsT0 ? result.AsT0 : throw new InvalidDataException(result.AsT1);
3534
}
3635

37-
public static Task<OneOf.OneOf<EmailTemplate, string>> ParseFromFile(string filePath) =>
36+
private static Task<OneOf.OneOf<EmailTemplate, string>> ParseFromFile(string filePath) =>
3837
ParseFromFile(File.OpenRead(filePath));
3938

40-
public static async Task<OneOf.OneOf<EmailTemplate, string>> ParseFromFile(FileStream fileStream)
39+
private static async Task<OneOf.OneOf<EmailTemplate, string>> ParseFromFile(FileStream fileStream)
4140
{
4241
using var streamReader = new StreamReader(fileStream);
4342
var subject = await streamReader.ReadLineAsync();
File renamed without changes.

0 commit comments

Comments
 (0)