pixela 0.3.0 → 0.4.0

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: 25fbb20e23770f6f80aa0f64c4deb5a307b3b51fa085d509e33a6f4515eac047
4
- data.tar.gz: 86718c3b950f1478e0381480ae3ceab903b2be5cd32a4593999b36763b4b7d73
3
+ metadata.gz: 0bdf58874af8d488cace583d00efc11a2bda3e095fe5ee4b9f4afaf83bbaab00
4
+ data.tar.gz: 44b273ab85f3761f72619b839785d95aa6b8d2b8945abef19ff2cdde24d887fc
5
5
  SHA512:
6
- metadata.gz: c4a7061a46d3830d0e1fa9b0436920d7f751412ca1ff57ae34bdbfd991220d15c4707e46e3b67976b0f261d8bb13f338c0a3e01985a387ab2754b00c642d7a94
7
- data.tar.gz: 774ea1249452fa072547fe1dd667298cf61cbc1328837150202918c5b9fdda0d94307cb257ffe0d77ec60f43d0adcf87cc96ea8a1808f324aa87461b1a532e6a
6
+ metadata.gz: adebc2de07fd39ada466ccf27edbbaed2ae47b5ec16b984265a5ffc91e2280a08807dfd0a279790a4a29a5c63c04598d0e1b5c714f69bbb8eafb80fbb32718e7
7
+ data.tar.gz: 8c487b204b5e8a2d0417bc210c4c21a2f8812b6ff1e72159118b470464bbe8b4f409a1f85f60df0916945faba9f8b5dbd9cd9fa732c3380a20fa0f48093a540c
@@ -1,5 +1,12 @@
1
1
  ## Unreleased
2
- [full changelog](http://github.com/sue445/pixela/compare/v0.3.0...master)
2
+ [full changelog](http://github.com/sue445/pixela/compare/v0.4.0...master)
3
+
4
+ ## v0.4.0
5
+ [full changelog](http://github.com/sue445/pixela/compare/v0.3.0...v0.4.0)
6
+
7
+ * Support webhook API
8
+ * https://github.com/sue445/pixela/issues/23
9
+ * https://github.com/sue445/pixela/pull/24
3
10
 
4
11
  ## v0.3.0
5
12
  [full changelog](http://github.com/sue445/pixela/compare/v0.2.0...v0.3.0)
@@ -9,6 +9,7 @@ module Pixela
9
9
  autoload :Configuration, "pixela/configuration"
10
10
  autoload :Graph, "pixela/graph"
11
11
  autoload :Pixel, "pixela/pixel"
12
+ autoload :Webhook, "pixela/webhook"
12
13
 
13
14
  # @return [Pixela::Configuration]
14
15
  def self.config
@@ -1,12 +1,14 @@
1
1
  module Pixela
2
2
  class Client
3
- autoload :GraphMethods, "pixela/client/graph_methods"
4
- autoload :PixelMethods, "pixela/client/pixel_methods"
5
- autoload :UserMethods, "pixela/client/user_methods"
3
+ autoload :GraphMethods, "pixela/client/graph_methods"
4
+ autoload :PixelMethods, "pixela/client/pixel_methods"
5
+ autoload :UserMethods, "pixela/client/user_methods"
6
+ autoload :WebhookMethods, "pixela/client/webhook_methods"
6
7
 
7
8
  include GraphMethods
8
9
  include PixelMethods
9
10
  include UserMethods
11
+ include WebhookMethods
10
12
 
11
13
  API_ENDPOINT = "https://pixe.la/v1"
12
14
 
@@ -34,6 +36,13 @@ module Pixela
34
36
  Graph.new(client: self, graph_id: graph_id)
35
37
  end
36
38
 
39
+ # @param webhook_hash [String]
40
+ #
41
+ # @return [Pixela::Webhook]
42
+ def webhook(webhook_hash)
43
+ Webhook.new(client: self, webhook_hash: webhook_hash)
44
+ end
45
+
37
46
  private
38
47
 
39
48
  # @!attribute [r] token
@@ -0,0 +1,77 @@
1
+ module Pixela::Client::WebhookMethods
2
+ # Create a new Webhook.
3
+ #
4
+ # @param graph_id [String]
5
+ # @param type [String]
6
+ #
7
+ # @return [Hashie::Mash]
8
+ #
9
+ # @raise [Pixela::PixelaError] API is failed
10
+ #
11
+ # @see https://pixe.la/#api-webhook
12
+ #
13
+ # @example
14
+ # client.create_webhook(graph_id: "test-graph", type: "increment")
15
+ def create_webhook(graph_id:, type:)
16
+ params = {
17
+ graphID: graph_id,
18
+ type: type,
19
+ }
20
+
21
+ with_error_handling do
22
+ connection.post("users/#{username}/webhooks", params, user_token_headers).body
23
+ end
24
+ end
25
+
26
+ # Get all predefined webhooks definitions.
27
+ #
28
+ # @return [Array<Hashie::Mash>]
29
+ #
30
+ # @raise [Pixela::PixelaError] API is failed
31
+ #
32
+ # @see https://pixe.la/#api-webhook
33
+ #
34
+ # @example
35
+ # client.get_webhooks
36
+ def get_webhooks
37
+ with_error_handling do
38
+ connection.get("users/#{username}/webhooks", nil, user_token_headers).body.webhooks
39
+ end
40
+ end
41
+
42
+ # Invoke the webhook registered in advance.
43
+ #
44
+ # @param webhook_hash [String]
45
+ #
46
+ # @return [Hashie::Mash]
47
+ #
48
+ # @raise [Pixela::PixelaError] API is failed
49
+ #
50
+ # @see https://pixe.la/#api-webhook
51
+ #
52
+ # @example
53
+ # client.invoke_webhook(webhook_hash: "<webhookHash>")
54
+ def invoke_webhook(webhook_hash:)
55
+ with_error_handling do
56
+ connection.post("users/#{username}/webhooks/#{webhook_hash}", nil, default_headers).body
57
+ end
58
+ end
59
+
60
+ # Delete the registered Webhook.
61
+ #
62
+ # @param webhook_hash [String]
63
+ #
64
+ # @return [Hashie::Mash]
65
+ #
66
+ # @raise [Pixela::PixelaError] API is failed
67
+ #
68
+ # @see https://pixe.la/#api-webhook
69
+ #
70
+ # @example
71
+ # client.delete_webhook(webhook_hash: "<webhookHash>")
72
+ def delete_webhook(webhook_hash:)
73
+ with_error_handling do
74
+ connection.delete("users/#{username}/webhooks/#{webhook_hash}", nil, user_token_headers).body
75
+ end
76
+ end
77
+ end
@@ -1,3 +1,3 @@
1
1
  module Pixela
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
@@ -0,0 +1,46 @@
1
+ module Pixela
2
+ class Webhook
3
+ # @!attribute [r] client
4
+ # @return [Pixela::Client]
5
+ attr_reader :client
6
+
7
+ # @!attribute [r] webhook_hash
8
+ # @return [String]
9
+ attr_reader :webhook_hash
10
+
11
+ # @param client [Pixela::Client]
12
+ # @param webhook_hash [String]
13
+ def initialize(client:, webhook_hash:)
14
+ @client = client
15
+ @webhook_hash = webhook_hash
16
+ end
17
+
18
+ # Invoke the webhook registered in advance.
19
+ #
20
+ # @return [Hashie::Mash]
21
+ #
22
+ # @raise [Pixela::PixelaError] API is failed
23
+ #
24
+ # @see https://pixe.la/#api-webhook
25
+ #
26
+ # @example
27
+ # client.webhook("<webhookHash>").invoke
28
+ def invoke
29
+ client.invoke_webhook(webhook_hash: webhook_hash)
30
+ end
31
+
32
+ # Delete the registered Webhook.
33
+ #
34
+ # @return [Hashie::Mash]
35
+ #
36
+ # @raise [Pixela::PixelaError] API is failed
37
+ #
38
+ # @see https://pixe.la/#api-webhook
39
+ #
40
+ # @example
41
+ # client.webhook("<webhookHash>").delete
42
+ def delete
43
+ client.delete_webhook(webhook_hash: webhook_hash)
44
+ end
45
+ end
46
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pixela
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - sue445
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-10-19 00:00:00.000000000 Z
11
+ date: 2018-10-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -245,10 +245,12 @@ files:
245
245
  - lib/pixela/client/graph_methods.rb
246
246
  - lib/pixela/client/pixel_methods.rb
247
247
  - lib/pixela/client/user_methods.rb
248
+ - lib/pixela/client/webhook_methods.rb
248
249
  - lib/pixela/configuration.rb
249
250
  - lib/pixela/graph.rb
250
251
  - lib/pixela/pixel.rb
251
252
  - lib/pixela/version.rb
253
+ - lib/pixela/webhook.rb
252
254
  - pixela.gemspec
253
255
  homepage: https://github.com/sue445/pixela
254
256
  licenses: