feat(smtp): UpdateSmtpConfigCommand carries TlsMode + Credentials
Add two optional nullable fields (TlsMode, Credentials) to the UpdateSmtpConfigCommand record. The handler applies preserve-if-null semantics: an update that omits a field leaves the existing value intact, so existing 5-arg callers remain non-breaking.
This commit is contained in:
@@ -6,4 +6,4 @@ public record CreateNotificationListCommand(string Name, IReadOnlyList<string> R
|
||||
public record UpdateNotificationListCommand(int NotificationListId, string Name, IReadOnlyList<string> RecipientEmails);
|
||||
public record DeleteNotificationListCommand(int NotificationListId);
|
||||
public record ListSmtpConfigsCommand;
|
||||
public record UpdateSmtpConfigCommand(int SmtpConfigId, string Server, int Port, string AuthMode, string FromAddress);
|
||||
public record UpdateSmtpConfigCommand(int SmtpConfigId, string Server, int Port, string AuthMode, string FromAddress, string? TlsMode = null, string? Credentials = null);
|
||||
|
||||
@@ -1124,6 +1124,10 @@ public class ManagementActor : ReceiveActor
|
||||
config.Port = cmd.Port;
|
||||
config.AuthType = cmd.AuthMode;
|
||||
config.FromAddress = cmd.FromAddress;
|
||||
// Preserve-if-null: an update that omits TlsMode/Credentials leaves the
|
||||
// existing values intact (non-breaking for callers that do not send them).
|
||||
if (cmd.TlsMode is not null) config.TlsMode = cmd.TlsMode;
|
||||
if (cmd.Credentials is not null) config.Credentials = cmd.Credentials;
|
||||
await repo.UpdateSmtpConfigurationAsync(config);
|
||||
await repo.SaveChangesAsync();
|
||||
await AuditAsync(sp, user, "Update", "SmtpConfiguration", config.Id.ToString(), config.Host, config);
|
||||
|
||||
Reference in New Issue
Block a user