bullet_train-outgoing_webhooks 1.2.9 → 1.2.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/api/v1/webhooks/outgoing/endpoints_controller.rb +1 -0
  3. data/app/controllers/api/v1/webhooks/outgoing/events_controller.rb +13 -0
  4. data/app/jobs/webhooks/outgoing/generate_job.rb +3 -2
  5. data/app/models/concerns/webhooks/outgoing/delivery_support.rb +2 -0
  6. data/app/models/concerns/webhooks/outgoing/endpoint_support.rb +2 -1
  7. data/app/models/concerns/webhooks/outgoing/event_support.rb +1 -1
  8. data/app/models/concerns/webhooks/outgoing/issuing_model.rb +16 -9
  9. data/app/models/concerns/webhooks/outgoing/team_support.rb +8 -4
  10. data/app/models/concerns/webhooks/outgoing/uri_filtering.rb +2 -0
  11. data/app/views/account/webhooks/outgoing/endpoints/_form.html.erb +3 -0
  12. data/app/views/api/v1/open_api/index.yaml.erb +2 -0
  13. data/app/views/api/v1/webhooks/outgoing/events/_event.json.jbuilder +12 -0
  14. data/app/views/api/v1/webhooks/outgoing/events/index.json.jbuilder +1 -0
  15. data/app/views/api/v1/webhooks/outgoing/events/show.json.jbuilder +1 -0
  16. data/config/locales/en/webhooks/outgoing/endpoints.en.yml +10 -2
  17. data/config/locales/en/webhooks/outgoing/events.en.yml +70 -8
  18. data/config/routes.rb +3 -3
  19. data/lib/bullet_train/outgoing_webhooks/version.rb +1 -1
  20. metadata +7 -12
  21. data/app/views/account/webhooks/outgoing/deliveries/_delivery.json.jbuilder +0 -10
  22. data/app/views/account/webhooks/outgoing/deliveries/index.json.jbuilder +0 -1
  23. data/app/views/account/webhooks/outgoing/deliveries/show.json.jbuilder +0 -1
  24. data/app/views/account/webhooks/outgoing/delivery_attempts/_delivery_attempt.json.jbuilder +0 -12
  25. data/app/views/account/webhooks/outgoing/delivery_attempts/index.json.jbuilder +0 -1
  26. data/app/views/account/webhooks/outgoing/delivery_attempts/show.json.jbuilder +0 -1
  27. data/app/views/account/webhooks/outgoing/endpoints/_endpoint.json.jbuilder +0 -10
  28. data/app/views/account/webhooks/outgoing/endpoints/index.json.jbuilder +0 -1
  29. data/app/views/account/webhooks/outgoing/endpoints/show.json.jbuilder +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 74eccc06e9bac4c34f9d57665a043f47818085eb0b0c4c53cdca3fe5cbdb49a4
4
- data.tar.gz: b6ed8bd2705b78422b4d133c97f86d3e7e3e81619d62e9893fddfe069feba977
3
+ metadata.gz: 87f75613d643ea32ebd0dcbfe3a783f8b757ba4059e3a5ebd2b75c8d0a4b6808
4
+ data.tar.gz: fa239987f89eb84b9e7f80744f220505aeb896350ca30d65ea012b3f35d8937a
5
5
  SHA512:
6
- metadata.gz: d0cd98a77bc6d65bb507f3e6adad488572579ca73373fbda33d961ea540fd598d11b43259bda446de85865bedf638e4de9bd9cf529b26d8303b351903613d9f9
7
- data.tar.gz: 8318b904b4cfe110378aed89de7d98e2cebba99abf38ecb8fa60b49c7ed7c48a4577531e25efbb07a611e2c37dc213eb25cdf1b6618bee5e3291a70e8b9c71bd
6
+ metadata.gz: 49438dd37e66164bbf221b6f5f1235ba1d0224479a3d8a8524b4cdaa37955c058d63477477125974fdcbfa271010789c67257be77490809aa8cdffe19e478601
7
+ data.tar.gz: 94f27ec380dee3b655dfebbc9f8e9a75c9a5cc0224127254f9b4d2bc4c20cdf36c06e3db14169d7b039f96fb8d82cffd7ce584624c9e5e23508f40641927b2df
@@ -41,6 +41,7 @@ class Api::V1::Webhooks::Outgoing::EndpointsController < Api::V1::ApplicationCon
41
41
  *permitted_fields,
42
42
  :url,
43
43
  :name,
44
+ :version,
44
45
  :scaffolding_absolutely_abstract_creative_concept_id,
45
46
  # 🚅 super scaffolding will insert new fields above this line.
46
47
  *permitted_arrays,
@@ -0,0 +1,13 @@
1
+ class Api::V1::Webhooks::Outgoing::EventsController < Api::V1::ApplicationController
2
+ account_load_and_authorize_resource :event, through: :team, through_association: :webhooks_outgoing_events
3
+
4
+ # GET /api/v1/teams/:team_id/webhooks/outgoing/events
5
+ def index
6
+ render json: @events.map(&:payload)
7
+ end
8
+
9
+ # GET /api/v1/webhooks/outgoing/events/:id
10
+ def show
11
+ render json: @event.payload
12
+ end
13
+ end
@@ -1,7 +1,8 @@
1
1
  class Webhooks::Outgoing::GenerateJob < ApplicationJob
2
2
  queue_as :default
3
3
 
4
- def perform(obj, action)
5
- obj.generate_webhook_perform(action)
4
+ # `= [1]` ensures backwards compatibility for older installations when they upgrade.
5
+ def perform(obj, action, api_versions = [1])
6
+ obj.generate_webhook_perform(action, api_versions)
6
7
  end
7
8
  end
@@ -32,6 +32,8 @@ module Webhooks::Outgoing::DeliverySupport
32
32
  end
33
33
 
34
34
  def deliver
35
+ # TODO If we ever do away with the `async: true` default for webhook generation, then I believe this needs to
36
+ # change otherwise we'd be attempting the first delivery of webhooks inline.
35
37
  if delivery_attempts.create.attempt
36
38
  touch(:delivered_at)
37
39
  else
@@ -15,10 +15,11 @@ module Webhooks::Outgoing::EndpointSupport
15
15
 
16
16
  before_validation { url&.strip! }
17
17
 
18
- validates :url, presence: true, allowed_uri: true
18
+ validates :url, presence: true, allowed_uri: BulletTrain::OutgoingWebhooks.advanced_hostname_security
19
19
 
20
20
  after_initialize do
21
21
  self.event_type_ids ||= []
22
+ self.api_version ||= I18n.t("webhooks/outgoing/endpoints.fields.api_version.options").keys.last
22
23
  end
23
24
 
24
25
  after_save :touch_parent
@@ -28,7 +28,7 @@ module Webhooks::Outgoing::EventSupport
28
28
  end
29
29
 
30
30
  def endpoints
31
- endpoints = send(BulletTrain::OutgoingWebhooks.parent_association).webhooks_outgoing_endpoints.listening_for_event_type_id(event_type_id)
31
+ endpoints = send(BulletTrain::OutgoingWebhooks.parent_association).webhooks_outgoing_endpoints.where(api_version: api_version).listening_for_event_type_id(event_type_id)
32
32
 
33
33
  case subject_type
34
34
  when "Scaffolding::AbsolutelyAbstract::CreativeConcept"
@@ -32,24 +32,31 @@ module Webhooks::Outgoing::IssuingModel
32
32
  # and this object has a parent where an associated outgoing webhooks endpoint could be registered.
33
33
  if event_type
34
34
  # Only generate an event record if an endpoint is actually listening for this event type.
35
- if parent.endpoints_listening_for_event_type?(event_type)
35
+ # If there are endpoints listening, make sure we know which API versions they're looking for.
36
+ if (api_versions = parent.endpoint_api_versions_listening_for_event_type(event_type)).any?
36
37
  if async
37
38
  # serialization can be heavy so run it as a job
38
- Webhooks::Outgoing::GenerateJob.perform_later(self, action)
39
+ Webhooks::Outgoing::GenerateJob.perform_later(self, action, api_versions)
39
40
  else
40
- generate_webhook_perform(action)
41
+ generate_webhook_perform(action, api_versions)
41
42
  end
42
43
  end
43
44
  end
44
45
  end
45
46
 
46
- def generate_webhook_perform(action)
47
+ def generate_webhook_perform(action, api_versions)
47
48
  event_type = Webhooks::Outgoing::EventType.find_by(id: "#{self.class.name.underscore}.#{action}")
48
- # TODO This is crazy that we generate JSON just to parse it. Can't be good for performance.
49
- # Does Jbuilder support generating a hash instead of a JSON string?
50
- data = JSON.parse(to_api_json)
51
- webhook = send(BulletTrain::OutgoingWebhooks.parent_association).webhooks_outgoing_events.create(event_type_id: event_type.id, subject: self, data: data)
52
- webhook.deliver
49
+
50
+ api_versions.each do |api_version|
51
+ webhook = send(BulletTrain::OutgoingWebhooks.parent_association).webhooks_outgoing_events.create(
52
+ event_type_id: event_type.id,
53
+ subject: self,
54
+ data: to_api_json(api_version),
55
+ api_version: api_version
56
+ )
57
+
58
+ webhook.deliver
59
+ end
53
60
  end
54
61
 
55
62
  def generate_created_webhook
@@ -12,15 +12,19 @@ module Webhooks::Outgoing::TeamSupport
12
12
  true
13
13
  end
14
14
 
15
- def endpoints_listening_for_event_type?(event_type)
15
+ def endpoint_api_versions_for_event_type(event_type)
16
+ webhooks_outgoing_endpoints.listening_for_event_type_id(event_type.id).pluck(:api_version).uniq
17
+ end
18
+
19
+ def endpoint_api_versions_listening_for_event_type(event_type)
16
20
  if should_cache_endpoints_listening_for_event_type?
17
- key = "#{cache_key_with_version}/endpoints_for_event_type/#{event_type.cache_key}"
21
+ key = "#{cache_key_with_version}/endpoints_for_event_type/#{event_type.cache_key}/api_version"
18
22
 
19
23
  Rails.cache.fetch(key, expires_in: 24.hours, race_condition_ttl: 5.seconds) do
20
- webhooks_outgoing_endpoints.listening_for_event_type_id(event_type.id).any?
24
+ endpoint_api_versions_for_event_type(event_type)
21
25
  end
22
26
  else
23
- webhooks_outgoing_endpoints.listening_for_event_type_id(event_type.id).any?
27
+ endpoint_api_versions_for_event_type(event_type)
24
28
  end
25
29
  end
26
30
 
@@ -100,6 +100,8 @@ module Webhooks::Outgoing::UriFiltering
100
100
  end
101
101
 
102
102
  def _allowed_uri?(uri)
103
+ return true unless uri.present?
104
+
103
105
  config = Rails.configuration.outgoing_webhooks
104
106
  hostname = uri.hostname.downcase
105
107
 
@@ -4,6 +4,9 @@
4
4
  <% with_field_settings form: form do %>
5
5
  <%= render 'shared/fields/text_field', method: :name, options: {autofocus: true} %>
6
6
  <%= render 'shared/fields/text_field', method: :url %>
7
+ <% unless I18n.t("webhooks/outgoing/endpoints.fields.api_version.options").keys.one? %>
8
+ <%= render 'shared/fields/super_select', method: :api_version %>
9
+ <% end %>
7
10
  <%= render 'shared/fields/super_select', method: :event_type_ids, html_options: {multiple: true},
8
11
  choices: @endpoint.valid_event_types.map { |event_type| [event_type.label_string, event_type.id] } %>
9
12
  <%= render 'shared/fields/super_select', method: :scaffolding_absolutely_abstract_creative_concept_id,
@@ -16,6 +16,7 @@ components:
16
16
  scheme: bearer
17
17
  schemas:
18
18
  <%= automatic_components_for Webhooks::Outgoing::Endpoint %>
19
+ <%= automatic_components_for Webhooks::Outgoing::Event %>
19
20
  <%# 🚅 super scaffolding will insert new components above this line. %>
20
21
  parameters:
21
22
  id:
@@ -28,4 +29,5 @@ security:
28
29
  - BearerAuth: []
29
30
  paths:
30
31
  <%= automatic_paths_for Webhooks::Outgoing::Endpoint, Team %>
32
+ <%= automatic_paths_for Webhooks::Outgoing::Event, Team, except: %i[create update delete] %>
31
33
  <%# 🚅 super scaffolding will insert new paths above this line. %>
@@ -0,0 +1,12 @@
1
+ json.data schema: {object: OpenStruct.new, object_title: I18n.t("webhooks/outgoing/events.fields.data.heading"), object_description: I18n.t("webhooks/outgoing/events.fields.data.heading")} do
2
+ json.id schema: {type: :integer, description: I18n.t("webhooks/outgoing/events.fields.data.id.heading")}
3
+ json.name schema: {type: :string, description: I18n.t("webhooks/outgoing/events.fields.data.name.heading")}
4
+ json.description schema: {type: :string, description: I18n.t("webhooks/outgoing/events.fields.data.description.heading")}
5
+ json.created_at schema: {type: :string, format: "date-time", description: I18n.t("webhooks/outgoing/events.fields.data.created_at.heading")}
6
+ json.updated_at schema: {type: :string, format: "date-time", description: I18n.t("webhooks/outgoing/events.fields.data.updated_at.heading")}
7
+ end
8
+
9
+ json.event_id schema: {type: :string, description: I18n.t("webhooks/outgoing/events.fields.event_id.heading")}
10
+ json.event_type schema: {type: :integer, description: I18n.t("webhooks/outgoing/events.fields.event_type.heading")}
11
+ json.subject_id schema: {type: :integer, description: I18n.t("webhooks/outgoing/events.fields.subject_id.heading")}
12
+ json.subject_type schema: {type: :string, description: I18n.t("webhooks/outgoing/events.fields.subject_type.heading")}
@@ -0,0 +1 @@
1
+ json.array! @events, partial: "api/v1/webhooks/outgoing/events/event", as: :event
@@ -0,0 +1 @@
1
+ json.partial! "api/v1/webhooks/outgoing/events/event", event: @event
@@ -39,6 +39,13 @@ en:
39
39
  label: *url
40
40
  heading: *url
41
41
 
42
+ api_version:
43
+ _: &api_version API Version
44
+ label: *api_version
45
+ heading: *api_version
46
+ options:
47
+ 1: V1
48
+
42
49
  event_type_ids: &event_types
43
50
  _: &event_type_ids Event Types
44
51
  label: *event_type_ids
@@ -114,8 +121,9 @@ en:
114
121
  webhooks/outgoing/endpoint:
115
122
  name: *name
116
123
  url: *url
124
+ api_version: *api_version
117
125
  event_type_ids: *event_type_ids
126
+ scaffolding_absolutely_abstract_creative_concept_id: *scaffolding_absolutely_abstract_creative_concept_id
118
127
  # 🚅 super scaffolding will insert new activerecord attributes above this line.
119
128
  created_at: *created_at
120
- updated_at: *updated_at
121
- scaffolding_absolutely_abstract_creative_concept_id: *scaffolding_absolutely_abstract_creative_concept_id
129
+ updated_at: *updated_at
@@ -1,10 +1,72 @@
1
1
  en:
2
- webhooks/outgoing/events:
3
- fields:
4
- uuid: &uuid
5
- heading: Event UUID
6
- short_uuid: *uuid
7
- event_type_name:
8
- heading: Event Type
2
+ webhooks/outgoing/events: &events
3
+ label: &label Webhooks Events
4
+ fields: &fields
5
+ data:
6
+ _: &data Event Data
7
+ label: *data
8
+ heading: *data
9
+
10
+ id:
11
+ _: &id Event ID
12
+ label: *id
13
+ heading: *id
14
+
15
+ name:
16
+ _: &name Event Name
17
+ label: *name
18
+ heading: *name
19
+
20
+ description:
21
+ _: &description Event Description
22
+ label: *description
23
+ heading: *description
24
+
25
+ created_at:
26
+ _: &created_at DateTime Event was added
27
+ label: *created_at
28
+ heading: *created_at
29
+ updated_at:
30
+ _: &updated_at DateTime Event was updated
31
+ label: *updated_at
32
+ heading: *updated_at
33
+
34
+ event_id:
35
+ _: &event_id Event UUID
36
+ label: *event_id
37
+ heading: *event_id
38
+
39
+ event_type:
40
+ _: &event_type Event Type
41
+ label: *event_type
42
+ heading: *event_type
43
+
44
+ subject_id:
45
+ _: &subject_id Subject ID
46
+ label: *subject_id
47
+ heading: *subject_id
48
+
49
+ subject_type:
50
+ _: &subject_type Subject Type
51
+ label: *subject_type
52
+ heading: *subject_type
53
+
9
54
  payload:
10
- heading: JSON Payload
55
+ _: &payload Payload
56
+ label: *payload
57
+ heading: *payload
58
+
59
+ uuid:
60
+ _: &uuid UUID
61
+ label: *uuid
62
+ heading: *uuid
63
+
64
+ short_uuid:
65
+ _: &short_uuid Short UUID
66
+ label: *short_uuid
67
+ heading: *short_uuid
68
+
69
+ event_type_name:
70
+ _: &event_type_name Event Type Name
71
+ label: *event_type_name
72
+ heading: *event_type_name
data/config/routes.rb CHANGED
@@ -6,10 +6,9 @@ Rails.application.routes.draw do
6
6
  resources BulletTrain::OutgoingWebhooks.parent_resource do
7
7
  namespace :webhooks do
8
8
  namespace :outgoing do
9
- resources :events
10
9
  resources :endpoints do
11
- resources :deliveries, only: [:index, :show] do
12
- resources :delivery_attempts, only: [:index, :show]
10
+ resources :deliveries, only: %i[index show] do
11
+ resources :delivery_attempts, only: %i[index show]
13
12
  end
14
13
  end
15
14
  end
@@ -25,6 +24,7 @@ Rails.application.routes.draw do
25
24
  namespace :webhooks do
26
25
  namespace :outgoing do
27
26
  resources :endpoints, defaults: {format: :json}
27
+ resources :events, only: %i[index show], defaults: {format: :json}
28
28
  end
29
29
  end
30
30
  end
@@ -1,5 +1,5 @@
1
1
  module BulletTrain
2
2
  module OutgoingWebhooks
3
- VERSION = "1.2.9"
3
+ VERSION = "1.2.11"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bullet_train-outgoing_webhooks
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.9
4
+ version: 1.2.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Culver
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-12-28 00:00:00.000000000 Z
11
+ date: 2023-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: standard
@@ -71,6 +71,7 @@ files:
71
71
  - app/controllers/api/v1/webhooks.rb
72
72
  - app/controllers/api/v1/webhooks/outgoing.rb
73
73
  - app/controllers/api/v1/webhooks/outgoing/endpoints_controller.rb
74
+ - app/controllers/api/v1/webhooks/outgoing/events_controller.rb
74
75
  - app/jobs/webhooks/outgoing/delivery_job.rb
75
76
  - app/jobs/webhooks/outgoing/generate_job.rb
76
77
  - app/models/concerns/webhooks/outgoing/delivery_attempt_support.rb
@@ -88,44 +89,38 @@ files:
88
89
  - app/models/webhooks/outgoing/event.rb
89
90
  - app/models/webhooks/outgoing/event_type.rb
90
91
  - app/views/account/webhooks/outgoing/deliveries/_breadcrumbs.html.erb
91
- - app/views/account/webhooks/outgoing/deliveries/_delivery.json.jbuilder
92
92
  - app/views/account/webhooks/outgoing/deliveries/_form.html.erb
93
93
  - app/views/account/webhooks/outgoing/deliveries/_index.html.erb
94
94
  - app/views/account/webhooks/outgoing/deliveries/_menu_item.html.erb
95
95
  - app/views/account/webhooks/outgoing/deliveries/_success_indicator.html.erb
96
96
  - app/views/account/webhooks/outgoing/deliveries/edit.html.erb
97
97
  - app/views/account/webhooks/outgoing/deliveries/index.html.erb
98
- - app/views/account/webhooks/outgoing/deliveries/index.json.jbuilder
99
98
  - app/views/account/webhooks/outgoing/deliveries/new.html.erb
100
99
  - app/views/account/webhooks/outgoing/deliveries/show.html.erb
101
- - app/views/account/webhooks/outgoing/deliveries/show.json.jbuilder
102
100
  - app/views/account/webhooks/outgoing/delivery_attempts/_breadcrumbs.html.erb
103
- - app/views/account/webhooks/outgoing/delivery_attempts/_delivery_attempt.json.jbuilder
104
101
  - app/views/account/webhooks/outgoing/delivery_attempts/_form.html.erb
105
102
  - app/views/account/webhooks/outgoing/delivery_attempts/_index.html.erb
106
103
  - app/views/account/webhooks/outgoing/delivery_attempts/_menu_item.html.erb
107
104
  - app/views/account/webhooks/outgoing/delivery_attempts/_success_indicator.html.erb
108
105
  - app/views/account/webhooks/outgoing/delivery_attempts/edit.html.erb
109
106
  - app/views/account/webhooks/outgoing/delivery_attempts/index.html.erb
110
- - app/views/account/webhooks/outgoing/delivery_attempts/index.json.jbuilder
111
107
  - app/views/account/webhooks/outgoing/delivery_attempts/new.html.erb
112
108
  - app/views/account/webhooks/outgoing/delivery_attempts/show.html.erb
113
- - app/views/account/webhooks/outgoing/delivery_attempts/show.json.jbuilder
114
109
  - app/views/account/webhooks/outgoing/endpoints/_breadcrumbs.html.erb
115
- - app/views/account/webhooks/outgoing/endpoints/_endpoint.json.jbuilder
116
110
  - app/views/account/webhooks/outgoing/endpoints/_form.html.erb
117
111
  - app/views/account/webhooks/outgoing/endpoints/_index.html.erb
118
112
  - app/views/account/webhooks/outgoing/endpoints/_menu_item.html.erb
119
113
  - app/views/account/webhooks/outgoing/endpoints/edit.html.erb
120
114
  - app/views/account/webhooks/outgoing/endpoints/index.html.erb
121
- - app/views/account/webhooks/outgoing/endpoints/index.json.jbuilder
122
115
  - app/views/account/webhooks/outgoing/endpoints/new.html.erb
123
116
  - app/views/account/webhooks/outgoing/endpoints/show.html.erb
124
- - app/views/account/webhooks/outgoing/endpoints/show.json.jbuilder
125
117
  - app/views/api/v1/open_api/index.yaml.erb
126
118
  - app/views/api/v1/webhooks/outgoing/endpoints/_endpoint.json.jbuilder
127
119
  - app/views/api/v1/webhooks/outgoing/endpoints/index.json.jbuilder
128
120
  - app/views/api/v1/webhooks/outgoing/endpoints/show.json.jbuilder
121
+ - app/views/api/v1/webhooks/outgoing/events/_event.json.jbuilder
122
+ - app/views/api/v1/webhooks/outgoing/events/index.json.jbuilder
123
+ - app/views/api/v1/webhooks/outgoing/events/show.json.jbuilder
129
124
  - config/locales/en/webhooks/outgoing/deliveries.en.yml
130
125
  - config/locales/en/webhooks/outgoing/delivery_attempts.en.yml
131
126
  - config/locales/en/webhooks/outgoing/endpoints.en.yml
@@ -178,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
178
173
  - !ruby/object:Gem::Version
179
174
  version: '0'
180
175
  requirements: []
181
- rubygems_version: 3.3.7
176
+ rubygems_version: 3.4.1
182
177
  signing_key:
183
178
  specification_version: 4
184
179
  summary: Allow users of your Rails application to subscribe and receive webhooks when
@@ -1,10 +0,0 @@
1
- json.extract! delivery,
2
- :id,
3
- :endpoint_id,
4
- :event_id,
5
- :endpoint_url,
6
- :delivered_at,
7
- # 🚅 super scaffolding will insert new fields above this line.
8
- :created_at,
9
- :updated_at
10
- json.url account_webhooks_outgoing_delivery_url(delivery, format: :json)
@@ -1 +0,0 @@
1
- json.array! @deliveries, partial: "webhooks/outgoing/deliveries/delivery", as: :delivery
@@ -1 +0,0 @@
1
- json.partial! "webhooks/outgoing/deliveries/delivery", delivery: @delivery
@@ -1,12 +0,0 @@
1
- json.extract! delivery_attempt,
2
- :id,
3
- :delivery_id,
4
- :response_code,
5
- :response_body,
6
- :response_message,
7
- :error_message,
8
- :attempt_number,
9
- # 🚅 super scaffolding will insert new fields above this line.
10
- :created_at,
11
- :updated_at
12
- json.url account_webhooks_outgoing_delivery_attempt_url(delivery_attempt, format: :json)
@@ -1 +0,0 @@
1
- json.array! @delivery_attempts, partial: "webhooks/outgoing/delivery_attempts/delivery_attempt", as: :delivery_attempt
@@ -1 +0,0 @@
1
- json.partial! "webhooks/outgoing/delivery_attempts/delivery_attempt", delivery_attempt: @delivery_attempt
@@ -1,10 +0,0 @@
1
- json.extract! endpoint,
2
- :id,
3
- :team_id,
4
- :name,
5
- :url,
6
- :event_type_ids,
7
- # 🚅 super scaffolding will insert new fields above this line.
8
- :created_at,
9
- :updated_at
10
- json.url account_webhooks_outgoing_endpoint_url(endpoint, format: :json)
@@ -1 +0,0 @@
1
- json.array! @endpoints, partial: "webhooks/outgoing/endpoints/endpoint", as: :endpoint
@@ -1 +0,0 @@
1
- json.partial! "webhooks/outgoing/endpoints/endpoint", endpoint: @endpoint