Class: Courrier::Subscriber::Beehiiv

Inherits:
Base
  • Object
show all
Defined in:
lib/courrier/subscriber/beehiiv.rb

Constant Summary collapse

ENDPOINT_URL =
"https://api.beehiiv.com/v2/publications"

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from Courrier::Subscriber::Base

Instance Method Details

#create(email) ⇒ Object



10
11
12
13
14
15
# File 'lib/courrier/subscriber/beehiiv.rb', line 10

def create(email)
  publication_id = Courrier.configuration.subscriber[:publication_id]
  raise Courrier::ConfigurationError, "Beehiiv requires `publication_id` in subscriber configuration" unless publication_id

  request(:post, "#{ENDPOINT_URL}/#{publication_id}/subscriptions", {"email" => email})
end

#destroy(email) ⇒ Object



17
18
19
20
21
22
23
24
25
# File 'lib/courrier/subscriber/beehiiv.rb', line 17

def destroy(email)
  publication_id = Courrier.configuration.subscriber[:publication_id]
  raise Courrier::ConfigurationError, "Beehiiv requires `publication_id` in subscriber configuration" unless publication_id

  subscription_id = subscription_id(publication_id, email)
  return Courrier::Subscriber::Result.new(error: StandardError.new("Subscription not found")) unless subscription_id

  request(:delete, "#{ENDPOINT_URL}/#{publication_id}/subscriptions/#{subscription_id}")
end