///|
pub fn base_github_request(
body? : String = "{\"action\":\"opened\"}",
) -> WebhookRequest {
WebhookRequest::new("github", Post, "/webhook/github", body, 1700000000)
.with_header("x-github-event", "issues")
.with_header("x-github-delivery", "delivery-1")
}
///|
pub fn example_github_request() -> WebhookRequest {
sign_request(base_github_request(), VerificationPolicy::default())
}
///|
pub fn bad_signature_request() -> WebhookRequest {
base_github_request().with_header("x-hub-signature-256", "sha256=bad")
}
///|
pub fn expired_request() -> WebhookRequest {
let policy = VerificationPolicy::for_provider(ProviderProfile::generic()).with_secret(
"demo-secret",
)
sign_request(
WebhookRequest::new("generic", Post, "/webhook/generic", "{}", 1700000000)
.with_header("x-webhook-timestamp", "1699990000")
.with_header("x-webhook-event", "expired.test")
.with_header("x-webhook-id", "delivery-old"),
policy,
)
}
///|
pub fn feishu_request() -> WebhookRequest {
let policy = VerificationPolicy::for_provider(ProviderProfile::feishu()).with_secret(
"demo-secret",
)
sign_request(
WebhookRequest::new(
"feishu",
Post,
"/webhook/feishu",
"{\"header\":{\"event_id\":\"event-1\",\"event_type\":\"im.message.receive_v1\"},\"event\":{\"message\":{\"message_id\":\"m-1\"}}}",
1700000000,
)
.with_header("x-lark-request-timestamp", "1700000000")
.with_header("x-lark-request-nonce", "nonce-1"),
policy,
)
}
///|
pub fn stripe_request() -> WebhookRequest {
let policy = VerificationPolicy::for_provider(ProviderProfile::stripe()).with_secret(
"whsec_demo",
)
sign_request(
WebhookRequest::new(
"stripe",
Post,
"/webhook/stripe",
"{\"id\":\"evt_1\",\"type\":\"invoice.paid\",\"data\":{\"object\":{\"id\":\"in_1\"}}}",
1700000000,
),
policy,
)
}
///|
pub fn sample_requests() -> Array[WebhookRequest] {
[
example_github_request(),
bad_signature_request(),
expired_request(),
feishu_request(),
]
}