Class: PostProxy::Resources::Webhooks

Inherits:
Object
  • Object
show all
Defined in:
lib/postproxy/resources/webhooks.rb

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Webhooks

Returns a new instance of Webhooks.



4
5
6
# File 'lib/postproxy/resources/webhooks.rb', line 4

def initialize(client)
  @client = client
end

Instance Method Details

#create(url, events:, description: nil) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/postproxy/resources/webhooks.rb', line 19

def create(url, events:, description: nil)
  json_body = { url: url, events: events }
  json_body[:description] = description if description

  result = @client.request(:post, "/webhooks", json: json_body)
  Webhook.new(**result)
end

#delete(id) ⇒ Object



38
39
40
41
# File 'lib/postproxy/resources/webhooks.rb', line 38

def delete(id)
  result = @client.request(:delete, "/webhooks/#{id}")
  DeleteResponse.new(**result)
end

#deliveries(id, page: nil, per_page: nil) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/postproxy/resources/webhooks.rb', line 43

def deliveries(id, page: nil, per_page: nil)
  params = {}
  params[:page] = page if page
  params[:per_page] = per_page if per_page

  result = @client.request(:get, "/webhooks/#{id}/deliveries", params: params)
  deliveries = (result[:data] || []).map { |d| WebhookDelivery.new(**d) }
  PaginatedResponse.new(
    data: deliveries,
    total: result[:total],
    page: result[:page],
    per_page: result[:per_page]
  )
end

#get(id) ⇒ Object



14
15
16
17
# File 'lib/postproxy/resources/webhooks.rb', line 14

def get(id)
  result = @client.request(:get, "/webhooks/#{id}")
  Webhook.new(**result)
end

#listObject



8
9
10
11
12
# File 'lib/postproxy/resources/webhooks.rb', line 8

def list
  result = @client.request(:get, "/webhooks")
  webhooks = (result[:data] || []).map { |w| Webhook.new(**w) }
  ListResponse.new(data: webhooks)
end

#update(id, url: nil, events: nil, enabled: nil, description: nil) ⇒ Object



27
28
29
30
31
32
33
34
35
36
# File 'lib/postproxy/resources/webhooks.rb', line 27

def update(id, url: nil, events: nil, enabled: nil, description: nil)
  json_body = {}
  json_body[:url] = url unless url.nil?
  json_body[:events] = events unless events.nil?
  json_body[:enabled] = enabled unless enabled.nil?
  json_body[:description] = description unless description.nil?

  result = @client.request(:patch, "/webhooks/#{id}", json: json_body)
  Webhook.new(**result)
end