Class: LoopsSdk::Transactional

Inherits:
Base
  • Object
show all
Defined in:
lib/loops_sdk/transactional.rb

Class Method Summary collapse

Class Method Details

.create(name:, transactional_group_id: nil) ⇒ Object



10
11
12
13
# File 'lib/loops_sdk/transactional.rb', line 10

def create(name:, transactional_group_id: nil)
  body = { name: name, transactionalGroupId: transactional_group_id }.compact
  make_request(method: :post, path: "v1/transactional-emails", body: body)
end

.ensure_draft(transactional_id:) ⇒ Object



24
25
26
# File 'lib/loops_sdk/transactional.rb', line 24

def ensure_draft(transactional_id:)
  make_request(method: :post, path: "v1/transactional-emails/#{transactional_id}/draft")
end

.get(transactional_id:) ⇒ Object



15
16
17
# File 'lib/loops_sdk/transactional.rb', line 15

def get(transactional_id:)
  make_request(method: :get, path: "v1/transactional-emails/#{transactional_id}")
end

.list(perPage: 20, cursor: nil) ⇒ Object



6
7
8
# File 'lib/loops_sdk/transactional.rb', line 6

def list(perPage: 20, cursor: nil)
  make_request(method: :get, path: "v1/transactional-emails", params: { perPage: perPage, cursor: cursor })
end

.publish(transactional_id:) ⇒ Object



28
29
30
# File 'lib/loops_sdk/transactional.rb', line 28

def publish(transactional_id:)
  make_request(method: :post, path: "v1/transactional-emails/#{transactional_id}/publish")
end

.send(transactional_id:, email:, add_to_audience: false, data_variables: {}, attachments: [], headers: {}) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/loops_sdk/transactional.rb', line 32

def send(transactional_id:, email:, add_to_audience: false, data_variables: {}, attachments: [], headers: {})
  attachments = attachments.map do |attachment|
    attachment.transform_keys { |key| key == :content_type ? :contentType : key }
  end
  email_data = {
    transactionalId: transactional_id,
    email: email,
    addToAudience: add_to_audience,
    dataVariables: data_variables,
    attachments: attachments
  }.compact
  make_request(method: :post, path: "v1/transactional", headers: headers, body: email_data)
end

.update(transactional_id:, name: nil, transactional_group_id: nil) ⇒ Object



19
20
21
22
# File 'lib/loops_sdk/transactional.rb', line 19

def update(transactional_id:, name: nil, transactional_group_id: nil)
  body = { name: name, transactionalGroupId: transactional_group_id }.compact
  make_request(method: :post, path: "v1/transactional-emails/#{transactional_id}", body: body)
end