FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Finish Trigger controller · Invvard/InvvardDev.IFTTT.NET@c0706cd · GitHub

Repository navigation

Commit c0706cd

Browse files
committed
Finish Trigger controller
1 parent ea07cf7 commit c0706cd

6 files changed

Lines changed: 24 additions & 27 deletions

File tree

‎src/Controllers/TriggerController.cs‎

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,16 @@ public async Task<IActionResult> ExecuteTrigger(string triggerSlug, TriggerReque
2525
return NotFound();
2626
}
2727

28-
var result = await trigger.ExecuteAsync(triggerRequest);
28+
if (await trigger.ExecuteAsync(triggerRequest) is not { } result)
29+
{
30+
throw new InvalidOperationException("The trigger response is invalid: the response is null.");
31+
}
32+
33+
if (result.Count > triggerRequest.Limit)
34+
{
35+
logger.LogWarning("The trigger response data count ({DataCount}) is greater than the limit ({Limit}). Excess data will be removed ", result.Count, triggerRequest.Limit);
36+
result = result.Take(triggerRequest.Limit).ToList();
37+
}
2938

3039
return Ok(result);
3140
}

‎src/Toolkit/Contracts/ITrigger.cs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ public interface ITrigger
1212
/// </summary>
1313
/// <param name="triggerRequest">The trigger request that contains the trigger fields data.</param>
1414
/// <param name="cancellationToken"></param>
15-
/// <returns>The Trigger response.</returns>
16-
Task<TriggerResponse> ExecuteAsync(TriggerRequest triggerRequest, CancellationToken cancellationToken = default);
15+
/// <returns>A list of <see cref="TriggerData"/> or derived class.</returns>
16+
Task<IReadOnlyList<TriggerData>> ExecuteAsync(TriggerRequest triggerRequest, CancellationToken cancellationToken = default);
1717
}

‎src/Toolkit/Models/Http/BaseResponse.cs‎

Lines changed: 0 additions & 13 deletions
This file was deleted.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
using System.Text.Json.Serialization;
2+
3+
namespace InvvardDev.Ifttt.Toolkit;
4+
5+
public record TriggerData([property: JsonIgnore] string Id,
6+
[property: JsonIgnore] DateTimeOffset Timestamp)
7+
{
8+
public Meta Meta { get; init; } = new(Id, Timestamp.ToUnixTimeSeconds().ToString());
9+
}

‎src/Toolkit/Models/Http/TriggerResponse.cs‎

Lines changed: 0 additions & 11 deletions
This file was deleted.

‎src/Toolkit/Models/Meta.cs‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
namespace InvvardDev.Ifttt.Toolkit;
2+
3+
public record Meta(string Id, string Timestamp);

0 commit comments

Comments
 (0)

Back | FazBrowse Home | New Git URL