Files

32 lines
1.0 KiB
C#
Raw Permalink Normal View History

2026-08-12 14:04:55 +03:00
using System.Threading;
using System.Threading.Tasks;
using RudderSdk.Core.Models.Scenarios;
namespace RudderSdk.Core;
/// <summary>
/// Scenario trigger. Execution lives on the server; resulting effects surface
/// through <see cref="RudderClient.Effects"/>.
2026-08-12 14:04:55 +03:00
/// </summary>
public sealed class ScenarioService
2026-08-12 14:04:55 +03:00
{
private readonly RudderClient _client;
internal ScenarioService(RudderClient client) => _client = client;
/// <summary>
/// Triggers scenarios by event name. Returned pending effects are ingested
/// into <see cref="RudderClient.Effects"/>.
2026-08-12 14:04:55 +03:00
/// </summary>
public async Task TriggerAsync(string eventName, CancellationToken cancellationToken = default)
2026-08-12 14:04:55 +03:00
{
var response = await _client.SendAsync<TriggerScenarioRequest, TriggerScenarioResponse>(
"POST",
"/sdk/v1/scenarios/trigger",
new TriggerScenarioRequest { Event = eventName },
cancellationToken).ConfigureAwait(false);
_client.Effects.Ingest(response?.Effects);
2026-08-12 14:04:55 +03:00
}
}