zaikio-webhooks 0.0.6 → 0.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 700f3b9cfc90a117b10f49b5cd68f442eee7172bea035e93643f02eeed281e0a
4
- data.tar.gz: 6c3521ef64b8b4470751c434478790691f56ca75ef86d2ae7132f46f0ec6039b
3
+ metadata.gz: d872489dc81bf856f2fffc2739c3e985530b06800a973029e0854b3b84a5538f
4
+ data.tar.gz: 1a15ca887a82dd696e0fbbccf44f0f40ff49a7e3ff392eb0f12608e3db9ffa4d
5
5
  SHA512:
6
- metadata.gz: 2ec2242f7d98d23143fb8ee0c7e7f23839a08ea1321d3a7228d8be3c205862e793aa4f3825b608b9c9afb627ec129d6ef98ffec9ec32b25a69beedcd50be9a6b
7
- data.tar.gz: eace6be670f3a34c57abb6d6685825461419b08d69db387dcfea13d6df7a616f09e6b2b7bf693758c502afa98fe9e2dee86216c268fc4c97cbb0247808bbefc3
6
+ metadata.gz: 82d3b14af857df3facfcad7afe8fcbcb270280ca8b5b4822c59179686638321221b7403313fc4f7c64e852e3e487dd651a1bcd6f53dc1e0aa6fd123c18b2871c
7
+ data.tar.gz: f962d5b40432a34acd7680cd5582b546326003230e6e5e0af8a432b4e130863962909bed64579fa188b6d18d857aaae5b675ee52dd1a1e73816ed0d82e0c5400
data/README.md CHANGED
@@ -34,13 +34,6 @@ Zaikio::Webhooks.configure do |config|
34
34
  my_other_app.shared_secret = "test-secret"
35
35
  end
36
36
  end
37
-
38
- # Perform job immediately, for all clients
39
- Zaikio::Webhooks.on "directory.revoked_access_token", RevokeAccessTokenJob,
40
- perform_now: true
41
- # Only for a specific client
42
- Zaikio::Webhooks.on "directory.machine_added", AddMachineJob,
43
- client_name: :my_app
44
37
  ```
45
38
 
46
39
  ### 3. Mount Engine
@@ -83,3 +76,38 @@ end
83
76
  Login to [Zaikio Hub](https://directory.zaikio.com/) and go to your Apps and go to Edit App and add your webhook URL e.g. `https://mydomain.de/zaikio/webhook/my_app_name`.
84
77
 
85
78
  Now you should receive all events you subscribed to.
79
+
80
+ ### 7. Usage
81
+
82
+ When everything is set up you can register events with custom jobs, using the
83
+ `Zaikio::Webhooks.on` function. This is idempotent and can be safely re-executed.
84
+
85
+ We can setup an initializer like so:
86
+
87
+ ```rb
88
+ # config/initializers/zaikio_webhooks.rb
89
+
90
+ # We need to add this special wrapper here because we're referencing autoloaded constants
91
+ # (RevokeAccessTokenJob, AddMachineJob) at boot time. For more information, see:
92
+ # https://guides.rubyonrails.org/autoloading_and_reloading_constants.html#autoloading-when-the-application-boots
93
+ Rails.application.reloader.to_prepare do
94
+ # Perform job immediately, for all clients
95
+ Zaikio::Webhooks.on "directory.revoked_access_token", RevokeAccessTokenJob,
96
+ perform_now: true
97
+ # Only for a specific client
98
+ Zaikio::Webhooks.on "directory.machine_added", AddMachineJob,
99
+ client_name: :my_app
100
+ end
101
+ ```
102
+
103
+ ## Contributing
104
+
105
+ - Make your changes and submit a pull request for them
106
+ - Make sure to update `CHANGELOG.md`
107
+
108
+ To release a new version of the gem:
109
+ - Update the version in `lib/zaikio/webhooks/version.rb`
110
+ - Update `CHANGELOG.md` to include the new version and its release date
111
+ - Commit and push your changes
112
+ - Create a [new release on GitHub](https://github.com/zaikio/zaikio-webhooks/releases/new)
113
+ - CircleCI will build the Gem package and push it Rubygems for you
@@ -31,7 +31,7 @@ module Zaikio
31
31
 
32
32
  def event_params
33
33
  params.permit(:id, :client_name, :name, :subject, :timestamp,
34
- :version, :link, :received_at, payload: {})
34
+ :version, :link, :received_at, payload: {}).to_h
35
35
  end
36
36
  end
37
37
  end
@@ -1,3 +1,4 @@
1
+ require "active_support/core_ext/integer/time"
1
2
  require "zaikio/webhooks/configuration"
2
3
  require "zaikio/webhooks/event"
3
4
  require "zaikio/webhooks/event_serializer"
@@ -12,7 +12,7 @@ module Zaikio
12
12
  end
13
13
 
14
14
  def logger
15
- @logger ||= Logger.new(STDOUT)
15
+ @logger ||= Logger.new($stdout)
16
16
  end
17
17
 
18
18
  def register_client(name)
@@ -5,6 +5,7 @@ module Zaikio
5
5
  class Event
6
6
  extend Forwardable
7
7
  attr_reader :data
8
+
8
9
  def_delegators :data, :id, :name, :version, :payload, :link, :client_name, :to_h
9
10
 
10
11
  def initialize(event_data)
@@ -10,7 +10,7 @@ module Zaikio
10
10
  end
11
11
 
12
12
  def deserialize(data)
13
- Event.new(data)
13
+ Event.new(data.without("_aj_serialized"))
14
14
  end
15
15
  end
16
16
  end
@@ -1,5 +1,5 @@
1
1
  module Zaikio
2
2
  module Webhooks
3
- VERSION = "0.0.6".freeze
3
+ VERSION = "0.0.11".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,17 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zaikio-webhooks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zaikio GmbH
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-03 00:00:00.000000000 Z
11
+ date: 2021-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: actionpack
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '6.0'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 6.0.2.2
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '6.0'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 6.0.2.2
33
+ - !ruby/object:Gem::Dependency
34
+ name: activejob
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '6.0'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 6.0.2.2
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '6.0'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 6.0.2.2
53
+ - !ruby/object:Gem::Dependency
54
+ name: railties
15
55
  requirement: !ruby/object:Gem::Requirement
16
56
  requirements:
17
57
  - - "~>"
@@ -51,10 +91,12 @@ files:
51
91
  - lib/zaikio/webhooks/event.rb
52
92
  - lib/zaikio/webhooks/event_serializer.rb
53
93
  - lib/zaikio/webhooks/version.rb
54
- homepage: https://www.zaikio.com/
94
+ homepage: https://github.com/zaikio/zaikio-webhooks
55
95
  licenses:
56
96
  - MIT
57
- metadata: {}
97
+ metadata:
98
+ changelog_uri: https://github.com/zaikio/zaikio-webhooks/blob/main/CHANGELOG.md
99
+ source_code_uri: https://github.com/zaikio/zaikio-webhooks
58
100
  post_install_message:
59
101
  rdoc_options: []
60
102
  require_paths:
@@ -63,14 +105,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
63
105
  requirements:
64
106
  - - ">="
65
107
  - !ruby/object:Gem::Version
66
- version: '0'
108
+ version: 2.6.5
67
109
  required_rubygems_version: !ruby/object:Gem::Requirement
68
110
  requirements:
69
111
  - - ">="
70
112
  - !ruby/object:Gem::Version
71
113
  version: '0'
72
114
  requirements: []
73
- rubygems_version: 3.1.2
115
+ rubygems_version: 3.1.4
74
116
  signing_key:
75
117
  specification_version: 4
76
118
  summary: Handle incoming Zaikio loom webhooks