diff --git a/src/FaluCli/Client/Events/EventDeliveryRetry.cs b/src/FaluCli/Client/Events/EventDeliveryRetryOptions.cs similarity index 81% rename from src/FaluCli/Client/Events/EventDeliveryRetry.cs rename to src/FaluCli/Client/Events/EventDeliveryRetryOptions.cs index 1abc195f..83f586bc 100644 --- a/src/FaluCli/Client/Events/EventDeliveryRetry.cs +++ b/src/FaluCli/Client/Events/EventDeliveryRetryOptions.cs @@ -2,7 +2,7 @@ namespace Falu.Client.Events; -public class EventDeliveryRetry +public class EventDeliveryRetryOptions { [JsonPropertyName("webhook_endpoint")] public string? WebhookEndpoint { get; set; } diff --git a/src/FaluCli/Client/Events/ExtendedEventsServiceClient.cs b/src/FaluCli/Client/Events/ExtendedEventsServiceClient.cs index 7e12eb7a..f4673205 100644 --- a/src/FaluCli/Client/Events/ExtendedEventsServiceClient.cs +++ b/src/FaluCli/Client/Events/ExtendedEventsServiceClient.cs @@ -8,12 +8,12 @@ namespace Falu.Client.Events; internal class ExtendedEventsServiceClient(HttpClient backChannel, FaluClientOptions options) : EventsServiceClient(backChannel, options) { public virtual Task> RetryAsync(string id, - EventDeliveryRetry request, + EventDeliveryRetryOptions request, RequestOptions? options = null, CancellationToken cancellationToken = default) { var uri = MakeResourcePath(id) + "/retry"; - var content = JsonContent.Create(request, SC.Default.EventDeliveryRetry); + var content = JsonContent.Create(request, SC.Default.EventDeliveryRetryOptions); return RequestAsync(uri, HttpMethod.Post, SC.Default.WebhookDeliveryAttempt, content, options, cancellationToken); } } diff --git a/src/FaluCli/Commands/Events/EventRetryCommand.cs b/src/FaluCli/Commands/Events/EventRetryCommand.cs index 0c088d35..a84aaed5 100644 --- a/src/FaluCli/Commands/Events/EventRetryCommand.cs +++ b/src/FaluCli/Commands/Events/EventRetryCommand.cs @@ -33,8 +33,8 @@ public override async Task ExecuteAsync(CliCommandExecutionContext context, var eventId = context.ParseResult.GetValue(eventArg)!; var webhookEndpointId = context.ParseResult.GetValue(webhookEndpointOption); - var model = new EventDeliveryRetry { WebhookEndpoint = webhookEndpointId, }; - var response = await context.Client.Events.RetryAsync(eventId, model, cancellationToken: cancellationToken); + var options = new EventDeliveryRetryOptions { WebhookEndpoint = webhookEndpointId, }; + var response = await context.Client.Events.RetryAsync(eventId, options, cancellationToken: cancellationToken); response.EnsureSuccess(); var attempt = response.Resource!; diff --git a/src/FaluCli/Commands/Messages/MessagesSendCommand.cs b/src/FaluCli/Commands/Messages/MessagesSendCommand.cs index 9fdd3a2b..d8c4d15d 100644 --- a/src/FaluCli/Commands/Messages/MessagesSendCommand.cs +++ b/src/FaluCli/Commands/Messages/MessagesSendCommand.cs @@ -118,7 +118,7 @@ public override async Task ExecuteAsync(CliCommandExecutionContext context, } var media = mediaUrl is not null || mediaFileId is not null - ? new[] { new MessageCreateRequestMedia { Url = mediaUrl?.ToString(), File = mediaFileId, }, } + ? new[] { new MessageCreateOptionsMedia { Url = mediaUrl?.ToString(), File = mediaFileId, }, } : null; // ensure both time and delay are not specified @@ -132,18 +132,18 @@ public override async Task ExecuteAsync(CliCommandExecutionContext context, // make the schedule var schedule = time is not null - ? (MessageCreateRequestSchedule)time + ? (MessageCreateOptionsSchedule)time : delay is not null - ? (MessageCreateRequestSchedule)delay + ? (MessageCreateOptionsSchedule)delay : null; // if there is only a single number, send a single message, otherwise use the batch if (tos.Length == 1) { var target = tos[0]; - var request = new MessageCreateRequest { To = target, Stream = stream, Media = media, Schedule = schedule, }; - PopulateRequest(context, request); - var rr = await context.Client.Messages.CreateAsync(request, cancellationToken: cancellationToken); + var options = new MessageCreateOptions { To = target, Stream = stream, Media = media, Schedule = schedule, }; + PopulateRequest(context, options); + var rr = await context.Client.Messages.CreateAsync(options, cancellationToken: cancellationToken); rr.EnsureSuccess(); var response = rr.Resource!; @@ -151,10 +151,10 @@ public override async Task ExecuteAsync(CliCommandExecutionContext context, } else { - var message = new MessageBatchCreateRequestMessage { Tos = tos, Media = media, }; + var message = new MessageBatchCreateOptionsMessage { Tos = tos, Media = media, }; PopulateRequest(context, message); - var request = new MessageBatchCreateRequest { Messages = [message], Stream = stream, Schedule = schedule, }; - var rr = await context.Client.MessageBatches.CreateAsync(request, cancellationToken: cancellationToken); + var options = new MessageBatchCreateOptions { Messages = [message], Stream = stream, Schedule = schedule, }; + var rr = await context.Client.MessageBatches.CreateAsync(options, cancellationToken: cancellationToken); rr.EnsureSuccess(); var response = rr.Resource!; @@ -166,8 +166,8 @@ public override async Task ExecuteAsync(CliCommandExecutionContext context, return 0; } - protected abstract void PopulateRequest(CliCommandExecutionContext context, MessageCreateRequest request); - protected abstract void PopulateRequest(CliCommandExecutionContext context, MessageBatchCreateRequestMessage request); + protected abstract void PopulateRequest(CliCommandExecutionContext context, MessageCreateOptions options); + protected abstract void PopulateRequest(CliCommandExecutionContext context, MessageBatchCreateOptionsMessage options); private static bool TryValidateNumbers(string[] numbers, [NotNullWhen(false)] out string? errorMessage) { @@ -204,8 +204,8 @@ public MessagesSendRawCommand() : base("raw", "Send a message with the body defi Add(bodyOption); } - protected override void PopulateRequest(CliCommandExecutionContext context, MessageCreateRequest request) => request.Body = GetBody(context); - protected override void PopulateRequest(CliCommandExecutionContext context, MessageBatchCreateRequestMessage request) => request.Body = GetBody(context); + protected override void PopulateRequest(CliCommandExecutionContext context, MessageCreateOptions options) => options.Body = GetBody(context); + protected override void PopulateRequest(CliCommandExecutionContext context, MessageBatchCreateOptionsMessage options) => options.Body = GetBody(context); private string? GetBody(CliCommandExecutionContext context) => context.ParseResult.GetValue(bodyOption); } @@ -280,9 +280,9 @@ public override Task ExecuteAsync(CliCommandExecutionContext context, Cance return base.ExecuteAsync(context, cancellationToken); } - protected override void PopulateRequest(CliCommandExecutionContext context, MessageCreateRequest request) => request.Template = GetTemplate(context); - protected override void PopulateRequest(CliCommandExecutionContext context, MessageBatchCreateRequestMessage request) => request.Template = GetTemplate(context); - private MessageCreateRequestTemplate? GetTemplate(CliCommandExecutionContext context) + protected override void PopulateRequest(CliCommandExecutionContext context, MessageCreateOptions options) => options.Template = GetTemplate(context); + protected override void PopulateRequest(CliCommandExecutionContext context, MessageBatchCreateOptionsMessage options) => options.Template = GetTemplate(context); + private MessageCreateOptionsTemplate? GetTemplate(CliCommandExecutionContext context) { var id = context.ParseResult.GetValue(idOption); var alias = context.ParseResult.GetValue(aliasOption); @@ -290,6 +290,6 @@ public override Task ExecuteAsync(CliCommandExecutionContext context, Cance var modelJson = context.ParseResult.GetValue(modelOption)!; var model = new MessageTemplateModel(System.Text.Json.Nodes.JsonNode.Parse(modelJson)!.AsObject()); - return new MessageCreateRequestTemplate { Id = id, Alias = alias, Language = language, Model = model, }; + return new MessageCreateOptionsTemplate { Id = id, Alias = alias, Language = language, Model = model, }; } } diff --git a/src/FaluCli/Commands/Money/Balances/MoneyBalancesRefreshCommand.cs b/src/FaluCli/Commands/Money/Balances/MoneyBalancesRefreshCommand.cs index d50e7de5..70cf0e33 100644 --- a/src/FaluCli/Commands/Money/Balances/MoneyBalancesRefreshCommand.cs +++ b/src/FaluCli/Commands/Money/Balances/MoneyBalancesRefreshCommand.cs @@ -6,8 +6,8 @@ internal class MoneyBalancesRefreshCommand() : WorkspacedCommand("refresh", "Req { public override async Task ExecuteAsync(CliCommandExecutionContext context, CancellationToken cancellationToken) { - var request = new MoneyBalancesRefreshRequest { }; - var response = await context.Client.MoneyBalances.RefreshAsync(request, cancellationToken: cancellationToken); + var options = new MoneyBalancesRefreshOptions { }; + var response = await context.Client.MoneyBalances.RefreshAsync(options, cancellationToken: cancellationToken); response.EnsureSuccess(); context.Logger.LogInformation("Refresh requested! You can check back later using 'falu money-balances get'"); diff --git a/src/FaluCli/Commands/Templates/TemplatesPushCommand.cs b/src/FaluCli/Commands/Templates/TemplatesPushCommand.cs index 7a3771c1..23822cf9 100644 --- a/src/FaluCli/Commands/Templates/TemplatesPushCommand.cs +++ b/src/FaluCli/Commands/Templates/TemplatesPushCommand.cs @@ -1,7 +1,6 @@ using Falu.MessageTemplates; using Spectre.Console; using System.Text.Json; -using Tingle.Extensions.JsonPatch; namespace Falu.Commands.Templates; @@ -106,7 +105,7 @@ private static async Task PushTemplatesAsync(IReadOnlyList man if (changeType is TemplateChangeType.Added) { // prepare the request and send to server - var request = new MessageTemplateCreateRequest + var options = new MessageTemplateCreateOptions { Alias = alias, Body = body, @@ -115,21 +114,23 @@ private static async Task PushTemplatesAsync(IReadOnlyList man Metadata = metadata, }; context.Logger.LogDebug("Creating template with alias {Alias} ...", alias); - var response = await context.Client.MessageTemplates.CreateAsync(request, cancellationToken: cancellationToken); + var response = await context.Client.MessageTemplates.CreateAsync(options, cancellationToken: cancellationToken); response.EnsureSuccess(); context.Logger.LogDebug("Template with alias {Alias} created with Id: '{Id}'", alias, response.Resource!.Id); } else if (changeType is TemplateChangeType.Modified) { // prepare the patch details and send to server - var patch = new JsonPatchDocument() - .Replace(mt => mt.Alias, alias) - .Replace(mt => mt.Body, body) - .Replace(mt => mt.Translations, translations) - .Replace(mt => mt.Description, description) - .Replace(mt => mt.Metadata, metadata); + var options = new MessageTemplateUpdateOptions + { + Alias = alias, + Body = body, + Translations = translations, + Description = description, + Metadata = metadata, + }; context.Logger.LogDebug("Updating template with alias {Alias} ...", alias); - var response = await context.Client.MessageTemplates.UpdateAsync(mani.Id!, patch, cancellationToken: cancellationToken); + var response = await context.Client.MessageTemplates.UpdateAsync(mani.Id!, options, cancellationToken: cancellationToken); response.EnsureSuccess(); } } diff --git a/src/FaluCli/FaluCli.csproj b/src/FaluCli/FaluCli.csproj index bd097203..28eb8c81 100644 --- a/src/FaluCli/FaluCli.csproj +++ b/src/FaluCli/FaluCli.csproj @@ -52,7 +52,7 @@ - + diff --git a/src/FaluCli/FaluCliJsonSerializerContext.cs b/src/FaluCli/FaluCliJsonSerializerContext.cs index da33b05f..7dcdddbd 100644 --- a/src/FaluCli/FaluCliJsonSerializerContext.cs +++ b/src/FaluCli/FaluCliJsonSerializerContext.cs @@ -6,7 +6,7 @@ namespace Falu; [JsonSerializable(typeof(List))] [JsonSerializable(typeof(Events.WebhookEvent))] -[JsonSerializable(typeof(Client.Events.EventDeliveryRetry))] +[JsonSerializable(typeof(Client.Events.EventDeliveryRetryOptions))] [JsonSerializable(typeof(Client.Events.WebhookDeliveryAttempt))] [JsonSerializable(typeof(List))]