Class: Mailtrap::TrackingOptOutsAPI

Inherits:
Object
  • Object
show all
Includes:
BaseAPI
Defined in:
lib/mailtrap/tracking_opt_outs_api.rb

Instance Attribute Summary

Attributes included from BaseAPI

#account_id, #client

Instance Method Summary collapse

Methods included from BaseAPI

included

Constructor Details

#initialize(client = Mailtrap::Client.new) ⇒ TrackingOptOutsAPI

Returns a new instance of TrackingOptOutsAPI.

Parameters:

  • client (Mailtrap::Client) (defaults to: Mailtrap::Client.new)

    The client instance



16
17
18
# File 'lib/mailtrap/tracking_opt_outs_api.rb', line 16

def initialize(client = Mailtrap::Client.new)
  @client = client
end

Instance Method Details

#create(options) ⇒ TrackingOptOut

Adds an email address to the tracking opt-out list for a sending domain

Parameters:

  • options (Hash)

    The tracking opt-out attributes

Options Hash (options):

  • :email (String)

    Email address to opt out of tracking

  • :domain_id (Integer)

    ID of the sending domain the opt-out applies to

Returns:

Raises:



49
50
51
52
53
# File 'lib/mailtrap/tracking_opt_outs_api.rb', line 49

def create(options)
  validate_options!(options, supported_options)
  response = client.post(base_path, options)
  build_entity(response[:data], TrackingOptOut)
end

#delete(tracking_opt_out_id) ⇒ TrackingOptOut

Removes an email address from the tracking opt-out list

Parameters:

  • tracking_opt_out_id (String)

    The tracking opt-out UUID

Returns:

Raises:



59
60
61
62
# File 'lib/mailtrap/tracking_opt_outs_api.rb', line 59

def delete(tracking_opt_out_id)
  response = client.delete("#{base_path}/#{tracking_opt_out_id}")
  build_entity(response, TrackingOptOut)
end

#list(email: nil, start_time: nil, end_time: nil, last_id: nil) ⇒ TrackingOptOutsListResponse

Lists email addresses that have opted out of open and click tracking

Parameters:

  • email (String, nil) (defaults to: nil)

    Filter by exact email address (case-insensitive)

  • start_time (String, nil) (defaults to: nil)

    Only opt-outs created at or after this ISO 8601 timestamp

  • end_time (String, nil) (defaults to: nil)

    Only opt-outs created at or before this ISO 8601 timestamp

  • last_id (String, nil) (defaults to: nil)

    Cursor from the previous response's last_id for the next page

Returns:

Raises:



27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/mailtrap/tracking_opt_outs_api.rb', line 27

def list(email: nil, start_time: nil, end_time: nil, last_id: nil)
  query_params = {}
  query_params[:email] = email unless email.nil?
  query_params[:start_time] = start_time unless start_time.nil?
  query_params[:end_time] = end_time unless end_time.nil?
  query_params[:last_id] = last_id unless last_id.nil?

  response = client.get(base_path, query_params)

  TrackingOptOutsListResponse.new(
    data: Array(response[:data]).map { |item| build_entity(item, TrackingOptOut) },
    last_id: response[:last_id]
  )
end