From 5faef891e7e0a8e2a994aaac3bcb1976fe37e65d Mon Sep 17 00:00:00 2001 From: dielduarte Date: Mon, 10 Aug 2026 15:58:00 -0300 Subject: [PATCH] feat: add Broadcasts.cancel method Cancels a queued or scheduled broadcast via POST /broadcasts/:id/cancel, mirroring Emails.cancel's shape (no params, id-only). Co-Authored-By: Claude Sonnet 5 --- lib/resend/broadcasts.rb | 5 +++++ spec/broadcasts_spec.rb | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/lib/resend/broadcasts.rb b/lib/resend/broadcasts.rb index 8f09b96..4459356 100644 --- a/lib/resend/broadcasts.rb +++ b/lib/resend/broadcasts.rb @@ -41,6 +41,11 @@ def list(params = {}) Resend::Request.new(path, {}, "get").perform end + def cancel(broadcast_id = "") + path = "broadcasts/#{broadcast_id}/cancel" + Resend::Request.new(path, {}, "post").perform + end + # https://resend.com/docs/api-reference/broadcasts/delete-broadcast def remove(broadcast_id = "") path = "broadcasts/#{broadcast_id}" diff --git a/spec/broadcasts_spec.rb b/spec/broadcasts_spec.rb index 21d06c0..c98f151 100644 --- a/spec/broadcasts_spec.rb +++ b/spec/broadcasts_spec.rb @@ -147,6 +147,20 @@ end end + describe "cancel" do + it "should cancel broadcast" do + resp = { + "object": "broadcast", + "id": "559ac32e-9ef5-46fb-82a1-b76b840c0f7b" + } + allow(resp).to receive(:body).and_return(resp) + allow(HTTParty).to receive(:send).and_return(resp) + + broadcast = Resend::Broadcasts.cancel(resp[:id]) + expect(broadcast[:id]).to eql "559ac32e-9ef5-46fb-82a1-b76b840c0f7b" + end + end + describe "remove" do it "should remove broadcast" do allow_any_instance_of(Resend::Request).to receive(:perform).and_return("")