Aller au contenu principal

Types Webhooks

Types partagés pour le système de webhooks MCM.

B2BWebhookPayload

Enveloppe non-typée d'un événement webhook.

public class B2BWebhookPayload
{
public string EventType { get; init; }
public DateTime TimestampUtc { get; init; }
public Guid DeliveryId { get; init; }
public JsonElement Data { get; init; }
}

B2BWebhookPayload<TData>

Enveloppe typée passée aux handlers.

public class B2BWebhookPayload<TData>
{
public string EventType { get; init; }
public DateTime TimestampUtc { get; init; }
public Guid DeliveryId { get; init; }
public TData Data { get; init; }
}

B2BListeElectoraleCreeData

Données de l'événement campagne.liste_electorale_cree.

PropriétéTypeDescription
CampagneIdGuidIdentifiant unique de la campagne
TitreCampagnestringTitre de la campagne
NombreVotantsAjoutesintNombre de votants ajoutés avec succès
NombreVotantsIgnoresintNombre de votants ignorés (doublons)
NombreVotantsErreursintNombre d'erreurs lors de l'ajout
TotalVotantsCampagneintTotal de votants dans la campagne

IMcmWebhookHandler<TData>

Interface pour les handlers de webhooks.

public interface IMcmWebhookHandler<TData>
{
Task HandleAsync(B2BWebhookPayload<TData> payload, CancellationToken ct);
}

WebhookEventTypes

Constantes pour les types d'événements.

ConstanteValeurDescription
ListeElectoraleCreecampagne.liste_electorale_creeListe électorale créée

WebhookSignatureValidator

Utilitaire pour valider les signatures HMAC-SHA256.

public static class WebhookSignatureValidator
{
public static bool IsValid(
string secret, // Secret base64
string timestamp, // En-tête X-MCM-Timestamp
string body, // Corps brut de la requête
string signature // En-tête X-MCM-Signature
);
}