feat(push): add service-owned firebase channels and delivery
Add push contracts, provider delivery and channel diagnostics. Link email channels to services and document migration and validation. Ref: IT-1074
This commit is contained in:
+1
-2
@@ -1,10 +1,9 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using HrynCo.NotificationService.DAL.Abstract.Providers;
|
||||
|
||||
namespace HrynCo.NotificationService.Web.Controllers.Api.EmailChannels;
|
||||
|
||||
public sealed record CreateEmailChannelRequest(
|
||||
[Required, StringLength(100)] string ServiceName,
|
||||
Guid ServiceId,
|
||||
int Priority,
|
||||
EmailChannelType ChannelType,
|
||||
SmtpChannelSettingsDto Settings,
|
||||
|
||||
@@ -2,6 +2,6 @@ using HrynCo.NotificationService.DAL.Abstract.Providers;
|
||||
|
||||
namespace HrynCo.NotificationService.Web.Controllers.Api.EmailChannels;
|
||||
|
||||
public sealed record EmailChannelDto(Guid Id, string ServiceName, int Priority, EmailChannelType EmailChannelType,
|
||||
public sealed record EmailChannelDto(Guid Id, Guid ServiceId, string ServiceName, int Priority, EmailChannelType EmailChannelType,
|
||||
SmtpChannelSettingsDto Settings, int? DailyLimit, int? MonthlyLimit, int WarnThresholdPercent,
|
||||
bool IsActive, DateTimeOffset Created, DateTimeOffset? Updated);
|
||||
|
||||
@@ -13,7 +13,7 @@ internal static class EmailChannelMapping
|
||||
public static EmailChannelDto Map(EmailChannel channel)
|
||||
{
|
||||
var smtp = (SmtpChannelSettings)channel.Settings;
|
||||
return new EmailChannelDto(channel.Id, channel.ServiceName, channel.Priority, channel.EmailChannelType,
|
||||
return new EmailChannelDto(channel.Id, channel.ServiceId, channel.ServiceName, channel.Priority, channel.EmailChannelType,
|
||||
new SmtpChannelSettingsDto
|
||||
{
|
||||
Host = smtp.Host, Port = smtp.Port, Username = smtp.Username, Password = smtp.Password,
|
||||
|
||||
+2
-1
@@ -48,7 +48,7 @@ public sealed class EmailChannelsController : ApiControllerBase
|
||||
if (request.ChannelType != EmailChannelType.Smtp)
|
||||
return MapServiceError(new ServiceError("Only SMTP channels are supported.", ServiceErrorCode.InvalidRequest));
|
||||
var command = new CreateEmailChannelCommand(
|
||||
request.ServiceName,
|
||||
request.ServiceId,
|
||||
request.Priority,
|
||||
request.ChannelType,
|
||||
EmailChannelMapping.ToSettings(request.Settings),
|
||||
@@ -72,6 +72,7 @@ public sealed class EmailChannelsController : ApiControllerBase
|
||||
{
|
||||
var command = new UpdateEmailChannelCommand(
|
||||
id,
|
||||
request.ServiceId,
|
||||
request.Priority,
|
||||
EmailChannelMapping.ToSettings(request.Settings),
|
||||
request.DailyLimit,
|
||||
|
||||
+1
@@ -3,6 +3,7 @@ using HrynCo.NotificationService.DAL.Abstract.Providers;
|
||||
namespace HrynCo.NotificationService.Web.Controllers.Api.EmailChannels;
|
||||
|
||||
public sealed record UpdateEmailChannelRequest(
|
||||
Guid ServiceId,
|
||||
int Priority,
|
||||
SmtpChannelSettingsDto Settings,
|
||||
int? DailyLimit,
|
||||
|
||||
Reference in New Issue
Block a user