zaikio-webhooks 0.0.6 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
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