diff --git a/Gemfile.lock b/Gemfile.lock index dbd0dc6..f78de0c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - resend (1.15.0) + resend (1.16.0) base64 httparty (>= 0.22.0) diff --git a/lib/resend/broadcasts.rb b/lib/resend/broadcasts.rb index 69df443..6d8e12e 100644 --- a/lib/resend/broadcasts.rb +++ b/lib/resend/broadcasts.rb @@ -52,6 +52,13 @@ def cancel(broadcast_id = "") Resend::Request.new(path, {}, "post").perform end + # https://resend.com/docs/api-reference/broadcasts/duplicate-broadcast + # @note Creates a new draft with the same content as the source, named after it with " (copy)" appended. + def duplicate(broadcast_id = "") + path = "broadcasts/#{broadcast_id}/duplicate" + 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/lib/resend/version.rb b/lib/resend/version.rb index 7061a61..d5ef1c7 100644 --- a/lib/resend/version.rb +++ b/lib/resend/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module Resend - VERSION = "1.15.0" + VERSION = "1.16.0" end diff --git a/spec/broadcasts_spec.rb b/spec/broadcasts_spec.rb index 2a4f591..c4430bb 100644 --- a/spec/broadcasts_spec.rb +++ b/spec/broadcasts_spec.rb @@ -216,6 +216,23 @@ end end + describe "duplicate" do + it "should duplicate broadcast" do + resp = { + "object": "broadcast", + "id": "e169aa45-1ecf-4183-9955-b1499d5701d3" + } + expect(Resend::Request).to receive(:new).once do |path, _body, verb| + expect(path).to eql("broadcasts/559ac32e-9ef5-46fb-82a1-b76b840c0f7b/duplicate") + expect(verb).to eql("post") + double("req", perform: resp) + end + result = Resend::Broadcasts.duplicate("559ac32e-9ef5-46fb-82a1-b76b840c0f7b") + expect(result[:id]).to eql("e169aa45-1ecf-4183-9955-b1499d5701d3") + expect(result[:object]).to eql("broadcast") + end + end + describe "remove" do it "should remove broadcast" do allow_any_instance_of(Resend::Request).to receive(:perform).and_return("")