class

Webhook::Client

Inherits Reference < Object

webhook URL へ JSON を POST する。

Slack と Discord のアダプタは投稿の組み立て方こそ違うが、「webhook URL に JSON を POST し、一時的な失敗は再送する」点は同じで、再送の判断と待機が 二重に書かれていた(issue #123)。片方だけ直すと挙動がずれるため、送信そのものは ここにまとめ、アダプタは投稿の組み立てに専念する。

Constants

MAX_RETRY_WAIT = 5.seconds
MAX_SEND_ATTEMPTS = 3

Constructors

new(service : String, url : String)

service はエラーメッセージに出す送信先の名前。

Source

Instance methods

post(body : String)

送信できたら戻り、恒久的に失敗したら例外にする。

呼び出し側は投稿の成功を前提に通知を既読化する。応答を見ずに成功扱いにすると、 投稿されていない通知まで既読化され、どこにも表示されないまま消える(issue #120)。 よって失敗は握りつぶさず例外にし、既読化を止めて次回実行に委ねる。

Source