pixela 1.5.0 → 2.2.1
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 +4 -4
- data/.github/workflows/test.yml +5 -10
- data/CHANGELOG.md +36 -1
- data/lib/pixela/client/graph_methods.rb +47 -3
- data/lib/pixela/client/pixel_methods.rb +2 -2
- data/lib/pixela/client/profile_methods.rb +40 -0
- data/lib/pixela/client/user_methods.rb +1 -1
- data/lib/pixela/client/webhook_methods.rb +1 -1
- data/lib/pixela/client.rb +6 -27
- data/lib/pixela/graph.rb +33 -7
- data/lib/pixela/version.rb +1 -1
- data/lib/pixela.rb +0 -2
- data/pixela.gemspec +3 -2
- metadata +11 -14
- data/gemfiles/faraday_0.gemfile +0 -8
- data/lib/pixela/channel.rb +0 -106
- data/lib/pixela/client/channel_methods.rb +0 -148
- data/lib/pixela/client/notificaton_methods.rb +0 -105
- data/lib/pixela/notification.rb +0 -79
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 39c681c4cb1fce393df5c86cc50123e29da258cc585b27bf9bcfc84374b33236
|
4
|
+
data.tar.gz: 6f2fc270dbff077f6b1dd3ec071df8e02d7651f9ef9a25613cd905d7f0f5bc8d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 16f3dd6d558ec9d052e835059f06d3279e3dbec925c81cc0dd355c333974f4859a36ededa0990fca2be55a6d9216ea21bb95a004b212f904b28734182f8e2218
|
7
|
+
data.tar.gz: ae7de882f2425ff12d002eb42015ae941bea73387ccb49a546a36b7b57d17413aa67df7f5ed78516e701a94a16d43d18f9546ee500ff5afd59e426e790b74b2f
|
data/.github/workflows/test.yml
CHANGED
@@ -12,9 +12,6 @@ on:
|
|
12
12
|
schedule:
|
13
13
|
- cron: "0 10 * * 5" # JST 19:00 (Fri)
|
14
14
|
|
15
|
-
env:
|
16
|
-
CI: "true"
|
17
|
-
|
18
15
|
jobs:
|
19
16
|
test:
|
20
17
|
runs-on: ubuntu-latest
|
@@ -22,22 +19,21 @@ jobs:
|
|
22
19
|
container: ${{ matrix.ruby }}
|
23
20
|
|
24
21
|
env:
|
25
|
-
BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}
|
22
|
+
BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile
|
26
23
|
|
27
24
|
strategy:
|
28
25
|
fail-fast: false
|
29
26
|
|
30
27
|
matrix:
|
31
28
|
ruby:
|
32
|
-
- ruby:2.3
|
33
29
|
- ruby:2.4
|
34
30
|
- ruby:2.5
|
35
31
|
- ruby:2.6
|
36
32
|
- ruby:2.7
|
33
|
+
- ruby:3.0
|
37
34
|
- rubylang/ruby:master-nightly-bionic
|
38
35
|
gemfile:
|
39
|
-
-
|
40
|
-
- faraday_1.gemfile
|
36
|
+
- faraday_1
|
41
37
|
include:
|
42
38
|
- ruby: rubylang/ruby:master-nightly-bionic
|
43
39
|
allow_failures: "true"
|
@@ -45,7 +41,6 @@ jobs:
|
|
45
41
|
steps:
|
46
42
|
- uses: actions/checkout@v2
|
47
43
|
|
48
|
-
|
49
44
|
- name: Cache gemfiles/vendor/bundle
|
50
45
|
uses: actions/cache@v1
|
51
46
|
id: cache_gem
|
@@ -94,7 +89,7 @@ jobs:
|
|
94
89
|
continue-on-error: true
|
95
90
|
|
96
91
|
- name: Slack Notification (not success)
|
97
|
-
uses:
|
92
|
+
uses: lazy-actions/slatify@master
|
98
93
|
if: "! success()"
|
99
94
|
continue-on-error: true
|
100
95
|
with:
|
@@ -112,7 +107,7 @@ jobs:
|
|
112
107
|
|
113
108
|
steps:
|
114
109
|
- name: Slack Notification (success)
|
115
|
-
uses:
|
110
|
+
uses: lazy-actions/slatify@master
|
116
111
|
if: always()
|
117
112
|
continue-on-error: true
|
118
113
|
with:
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,40 @@
|
|
1
1
|
## Unreleased
|
2
|
-
[full changelog](http://github.com/sue445/pixela/compare/
|
2
|
+
[full changelog](http://github.com/sue445/pixela/compare/v2.2.1...master)
|
3
|
+
|
4
|
+
## v2.2.1
|
5
|
+
[full changelog](http://github.com/sue445/pixela/compare/v2.2.0...v2.2.1)
|
6
|
+
|
7
|
+
* Enable MFA requirement for gem releasing
|
8
|
+
* https://github.com/sue445/pixela/pull/88
|
9
|
+
|
10
|
+
## v2.2.0
|
11
|
+
[full changelog](http://github.com/sue445/pixela/compare/v2.1.0...v2.2.0)
|
12
|
+
|
13
|
+
* Add `Pixela::Client#get_graph_def` and `Pixela::Graph#def`
|
14
|
+
* https://github.com/sue445/pixela/pull/83
|
15
|
+
* https://github.com/a-know/Pixela/releases/tag/v1.21.0
|
16
|
+
* Add `Pixela::Client#get_pixels` and `Pixela::Graph#pixels`
|
17
|
+
* https://github.com/sue445/pixela/pull/84
|
18
|
+
* https://github.com/a-know/Pixela/releases/tag/v1.21.0
|
19
|
+
|
20
|
+
## v2.1.0
|
21
|
+
[full changelog](http://github.com/sue445/pixela/compare/v2.0.0...v2.1.0)
|
22
|
+
|
23
|
+
* Add `Pixela::Client#update_profile`
|
24
|
+
* https://github.com/sue445/pixela/pull/81
|
25
|
+
* https://github.com/a-know/Pixela/releases/tag/v1.20.0
|
26
|
+
|
27
|
+
## v2.0.0
|
28
|
+
[full changelog](http://github.com/sue445/pixela/compare/v1.5.0...v2.0.0)
|
29
|
+
|
30
|
+
### :warning: Breaking changes :warning:
|
31
|
+
* Remove Channel and Notification
|
32
|
+
* https://github.com/sue445/pixela/pull/75
|
33
|
+
* https://github.com/a-know/Pixela/releases/tag/v1.19.0
|
34
|
+
* Drop support for faraday v0.x
|
35
|
+
* https://github.com/sue445/pixela/pull/77
|
36
|
+
* Drop support for ruby 2.3
|
37
|
+
* https://github.com/sue445/pixela/pull/78
|
3
38
|
|
4
39
|
## v1.5.0
|
5
40
|
[full changelog](http://github.com/sue445/pixela/compare/v1.4.2...v1.5.0)
|
@@ -33,7 +33,7 @@ module Pixela::Client::GraphMethods
|
|
33
33
|
}
|
34
34
|
|
35
35
|
with_error_handling do
|
36
|
-
connection.post("users/#{username}/graphs",
|
36
|
+
connection.post("users/#{username}/graphs", params.compact).body
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
@@ -126,7 +126,7 @@ module Pixela::Client::GraphMethods
|
|
126
126
|
end
|
127
127
|
|
128
128
|
with_error_handling do
|
129
|
-
connection.put("users/#{username}/graphs/#{graph_id}",
|
129
|
+
connection.put("users/#{username}/graphs/#{graph_id}", params.compact).body
|
130
130
|
end
|
131
131
|
end
|
132
132
|
|
@@ -170,12 +170,38 @@ module Pixela::Client::GraphMethods
|
|
170
170
|
|
171
171
|
res =
|
172
172
|
with_error_handling do
|
173
|
-
connection.get("users/#{username}/graphs/#{graph_id}/pixels",
|
173
|
+
connection.get("users/#{username}/graphs/#{graph_id}/pixels", params.compact).body
|
174
174
|
end
|
175
175
|
|
176
176
|
res.pixels.map { |ymd| Date.parse(ymd) }
|
177
177
|
end
|
178
178
|
|
179
|
+
# Get a Date list of Pixel registered in the graph specified by graphID.
|
180
|
+
#
|
181
|
+
# @param graph_id [String]
|
182
|
+
# @param from [Date] Specify the start position of the period.
|
183
|
+
# @param to [Date] Specify the end position of the period.
|
184
|
+
#
|
185
|
+
# @return [Array<Hashie::Mash>]
|
186
|
+
#
|
187
|
+
# @raise [Pixela::PixelaError] API is failed
|
188
|
+
#
|
189
|
+
# @see https://docs.pixe.la/entry/get-graph-pixels
|
190
|
+
#
|
191
|
+
# @example
|
192
|
+
# client.get_pixels(graph_id: "test-graph", from: Date.new(2018, 1, 1), to: Date.new(2018, 12, 31))
|
193
|
+
def get_pixels(graph_id:, from: nil, to: nil)
|
194
|
+
params = {
|
195
|
+
from: to_ymd(from),
|
196
|
+
to: to_ymd(to),
|
197
|
+
withBody: true,
|
198
|
+
}
|
199
|
+
|
200
|
+
with_error_handling do
|
201
|
+
connection.get("users/#{username}/graphs/#{graph_id}/pixels", params.compact).body.pixels
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
179
205
|
# Based on the registered information, get various statistics.
|
180
206
|
#
|
181
207
|
# @param graph_id [String]
|
@@ -214,4 +240,22 @@ module Pixela::Client::GraphMethods
|
|
214
240
|
|
215
241
|
alias_method :start_stopwatch, :run_stopwatch
|
216
242
|
alias_method :end_stopwatch, :run_stopwatch
|
243
|
+
|
244
|
+
# Get a predefined pixelation graph definition.
|
245
|
+
#
|
246
|
+
# @param graph_id [String]
|
247
|
+
#
|
248
|
+
# @return [Pixela::Response]
|
249
|
+
#
|
250
|
+
# @raise [Pixela::PixelaError] API is failed
|
251
|
+
#
|
252
|
+
# @see https://docs.pixe.la/entry/get-a-graph-def
|
253
|
+
#
|
254
|
+
# @example
|
255
|
+
# client.get_graph_def(graph_id: "test-graph")
|
256
|
+
def get_graph_def(graph_id:)
|
257
|
+
with_error_handling do
|
258
|
+
connection.get("users/#{username}/graphs/#{graph_id}/graph-def").body
|
259
|
+
end
|
260
|
+
end
|
217
261
|
end
|
@@ -22,7 +22,7 @@ module Pixela::Client::PixelMethods
|
|
22
22
|
}
|
23
23
|
|
24
24
|
with_error_handling do
|
25
|
-
connection.post("users/#{username}/graphs/#{graph_id}",
|
25
|
+
connection.post("users/#{username}/graphs/#{graph_id}", params.compact).body
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
@@ -80,7 +80,7 @@ module Pixela::Client::PixelMethods
|
|
80
80
|
}
|
81
81
|
|
82
82
|
with_error_handling do
|
83
|
-
connection.put("users/#{username}/graphs/#{graph_id}/#{to_ymd(date)}",
|
83
|
+
connection.put("users/#{username}/graphs/#{graph_id}/#{to_ymd(date)}", params.compact).body
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Pixela::Client::ProfileMethods
|
2
|
+
# Updates the profile information for the user corresponding to username
|
3
|
+
#
|
4
|
+
# @param display_name [String]
|
5
|
+
# @param gravatar_icon_email [String]
|
6
|
+
# @param title [String]
|
7
|
+
# @param timezone [String]
|
8
|
+
# @param about_url [String]
|
9
|
+
# @param contribute_urls [Array<String>]
|
10
|
+
# @param pinned_graph_id [String]
|
11
|
+
#
|
12
|
+
# @return [Pixela::Response]
|
13
|
+
#
|
14
|
+
# @raise [Pixela::PixelaError] API is failed
|
15
|
+
#
|
16
|
+
# @see https://docs.pixe.la/entry/put-profile
|
17
|
+
#
|
18
|
+
# @example
|
19
|
+
# client.update_profile(display_name: "a-know", gravatar_icon_email: "user@example.com", title: "my title", timezone: "Asia/Tokyo", about_url: "https://home.a-know.me", contribute_urls: ["https://pixe.la/","https://github.com/a-know/pi","https://blog.a-know.me/archive/category/Pixela"])
|
20
|
+
def update_profile(display_name: nil, gravatar_icon_email: nil, title: nil, timezone: nil,
|
21
|
+
about_url: nil, contribute_urls: [], pinned_graph_id: nil)
|
22
|
+
|
23
|
+
params = {
|
24
|
+
displayName: display_name,
|
25
|
+
gravatarIconEmail: gravatar_icon_email,
|
26
|
+
title: title,
|
27
|
+
timezone: timezone,
|
28
|
+
aboutURL: about_url,
|
29
|
+
pinnedGraphID: pinned_graph_id
|
30
|
+
}
|
31
|
+
|
32
|
+
unless contribute_urls.empty?
|
33
|
+
params[:contributeURLs] = contribute_urls
|
34
|
+
end
|
35
|
+
|
36
|
+
with_error_handling do
|
37
|
+
connection(endpoint: Pixela::Client::TOP_ENDPOINT).put("@#{username}", params.compact).body
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -53,7 +53,7 @@ module Pixela::Client::WebhookMethods
|
|
53
53
|
# client.invoke_webhook(webhook_hash: "<webhookHash>")
|
54
54
|
def invoke_webhook(webhook_hash:)
|
55
55
|
with_error_handling do
|
56
|
-
connection(default_headers).post("users/#{username}/webhooks/#{webhook_hash}").body
|
56
|
+
connection(request_headers: default_headers).post("users/#{username}/webhooks/#{webhook_hash}").body
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
data/lib/pixela/client.rb
CHANGED
@@ -1,20 +1,19 @@
|
|
1
1
|
module Pixela
|
2
2
|
class Client
|
3
|
-
autoload :ChannelMethods, "pixela/client/channel_methods"
|
4
3
|
autoload :GraphMethods, "pixela/client/graph_methods"
|
5
|
-
autoload :NotificationMethods, "pixela/client/notificaton_methods"
|
6
4
|
autoload :PixelMethods, "pixela/client/pixel_methods"
|
5
|
+
autoload :ProfileMethods, "pixela/client/profile_methods"
|
7
6
|
autoload :UserMethods, "pixela/client/user_methods"
|
8
7
|
autoload :WebhookMethods, "pixela/client/webhook_methods"
|
9
8
|
|
10
|
-
include ChannelMethods
|
11
9
|
include GraphMethods
|
12
|
-
include NotificationMethods
|
13
10
|
include PixelMethods
|
11
|
+
include ProfileMethods
|
14
12
|
include UserMethods
|
15
13
|
include WebhookMethods
|
16
14
|
|
17
15
|
API_ENDPOINT = "https://pixe.la/v1"
|
16
|
+
TOP_ENDPOINT = "https://pixe.la"
|
18
17
|
|
19
18
|
# @!attribute [r] username
|
20
19
|
# @return [String]
|
@@ -47,13 +46,6 @@ module Pixela
|
|
47
46
|
Webhook.new(client: self, webhook_hash: webhook_hash)
|
48
47
|
end
|
49
48
|
|
50
|
-
# @param channel_id [String]
|
51
|
-
#
|
52
|
-
# @return [Pixela::Channel]
|
53
|
-
def channel(channel_id)
|
54
|
-
Channel.new(client: self, channel_id: channel_id)
|
55
|
-
end
|
56
|
-
|
57
49
|
private
|
58
50
|
|
59
51
|
# @!attribute [r] token
|
@@ -63,8 +55,8 @@ module Pixela
|
|
63
55
|
# @param request_headers [Hash]
|
64
56
|
#
|
65
57
|
# @return [Faraday::Connection]
|
66
|
-
def connection(request_headers
|
67
|
-
Faraday.new(url:
|
58
|
+
def connection(request_headers: user_token_headers, endpoint: API_ENDPOINT)
|
59
|
+
Faraday.new(url: endpoint, headers: request_headers) do |conn|
|
68
60
|
conn.request :json
|
69
61
|
conn.response :mashify, mash_class: Pixela::Response
|
70
62
|
conn.response :json
|
@@ -81,7 +73,7 @@ module Pixela
|
|
81
73
|
|
82
74
|
def with_error_handling
|
83
75
|
yield
|
84
|
-
rescue
|
76
|
+
rescue Faraday::ClientError, Faraday::ServerError => error
|
85
77
|
begin
|
86
78
|
body = JSON.parse(error.response[:body])
|
87
79
|
raise PixelaError, body["message"]
|
@@ -90,14 +82,6 @@ module Pixela
|
|
90
82
|
end
|
91
83
|
end
|
92
84
|
|
93
|
-
def faraday_errors
|
94
|
-
if Gem::Version.create(Faraday::VERSION) >= Gem::Version.create("1.0.0")
|
95
|
-
return [Faraday::ClientError, Faraday::ServerError]
|
96
|
-
end
|
97
|
-
|
98
|
-
[Faraday::Error::ClientError]
|
99
|
-
end
|
100
|
-
|
101
85
|
def default_headers
|
102
86
|
{
|
103
87
|
"User-Agent" => "Pixela v#{Pixela::VERSION} (https://github.com/sue445/pixela)",
|
@@ -118,10 +102,5 @@ module Pixela
|
|
118
102
|
|
119
103
|
date.strftime("%Y%m%d")
|
120
104
|
end
|
121
|
-
|
122
|
-
def compact_hash(hash)
|
123
|
-
# NOTE: Hash#compact is available since MRI 2.4+
|
124
|
-
hash.reject { |_, v| v.nil? }
|
125
|
-
end
|
126
105
|
end
|
127
106
|
end
|
data/lib/pixela/graph.rb
CHANGED
@@ -22,13 +22,6 @@ module Pixela
|
|
22
22
|
Pixel.new(client: client, graph_id: graph_id, date: date)
|
23
23
|
end
|
24
24
|
|
25
|
-
# @param notification_id [String]
|
26
|
-
#
|
27
|
-
# @return [Pixela::Notification]
|
28
|
-
def notification(notification_id)
|
29
|
-
Notification.new(client: client, graph_id: graph_id, notification_id: notification_id)
|
30
|
-
end
|
31
|
-
|
32
25
|
# Create a new pixelation graph definition.
|
33
26
|
#
|
34
27
|
# @param name [String]
|
@@ -156,6 +149,23 @@ module Pixela
|
|
156
149
|
client.get_pixel_dates(graph_id: graph_id, from: from, to: to)
|
157
150
|
end
|
158
151
|
|
152
|
+
# Get a Date list of Pixel registered in the graph specified by graphID.
|
153
|
+
#
|
154
|
+
# @param from [Date] Specify the start position of the period.
|
155
|
+
# @param to [Date] Specify the end position of the period.
|
156
|
+
#
|
157
|
+
# @return [Array<Hashie::Mash>]
|
158
|
+
#
|
159
|
+
# @raise [Pixela::PixelaError] API is failed
|
160
|
+
#
|
161
|
+
# @see https://docs.pixe.la/entry/get-graph-pixels
|
162
|
+
#
|
163
|
+
# @example
|
164
|
+
# client.graph("test-graph").pixels(from: Date.new(2018, 1, 1), to: Date.new(2018, 12, 31))
|
165
|
+
def pixels(from: nil, to: nil)
|
166
|
+
client.get_pixels(graph_id: graph_id, from: from, to: to)
|
167
|
+
end
|
168
|
+
|
159
169
|
# Based on the registered information, get various statistics.
|
160
170
|
#
|
161
171
|
# @return [Pixela::Response]
|
@@ -186,5 +196,21 @@ module Pixela
|
|
186
196
|
|
187
197
|
alias_method :start_stopwatch, :run_stopwatch
|
188
198
|
alias_method :end_stopwatch, :run_stopwatch
|
199
|
+
|
200
|
+
# Get a predefined pixelation graph definition.
|
201
|
+
#
|
202
|
+
# @return [Pixela::Response]
|
203
|
+
#
|
204
|
+
# @raise [Pixela::PixelaError] API is failed
|
205
|
+
#
|
206
|
+
# @see https://docs.pixe.la/entry/get-a-graph-def
|
207
|
+
#
|
208
|
+
# @example
|
209
|
+
# client.graph("test-graph").def
|
210
|
+
def def
|
211
|
+
client.get_graph_def(graph_id: graph_id)
|
212
|
+
end
|
213
|
+
|
214
|
+
alias_method :definition, :def
|
189
215
|
end
|
190
216
|
end
|
data/lib/pixela/version.rb
CHANGED
data/lib/pixela.rb
CHANGED
@@ -5,11 +5,9 @@ require "faraday_curl"
|
|
5
5
|
require "date"
|
6
6
|
|
7
7
|
module Pixela
|
8
|
-
autoload :Channel, "pixela/channel"
|
9
8
|
autoload :Client, "pixela/client"
|
10
9
|
autoload :Configuration, "pixela/configuration"
|
11
10
|
autoload :Graph, "pixela/graph"
|
12
|
-
autoload :Notification, "pixela/notification"
|
13
11
|
autoload :Pixel, "pixela/pixel"
|
14
12
|
autoload :Response, "pixela/response"
|
15
13
|
autoload :Webhook, "pixela/webhook"
|
data/pixela.gemspec
CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.metadata["homepage_uri"] = spec.homepage
|
21
21
|
spec.metadata["source_code_uri"] = spec.homepage
|
22
22
|
spec.metadata["changelog_uri"] = spec.homepage + "/blob/master/CHANGELOG.md"
|
23
|
+
spec.metadata["rubygems_mfa_required"] = "true"
|
23
24
|
else
|
24
25
|
raise "RubyGems 2.0 or newer is required to protect against " \
|
25
26
|
"public gem pushes."
|
@@ -34,9 +35,9 @@ Gem::Specification.new do |spec|
|
|
34
35
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
35
36
|
spec.require_paths = ["lib"]
|
36
37
|
|
37
|
-
spec.required_ruby_version = ">= 2.
|
38
|
+
spec.required_ruby_version = ">= 2.4.0"
|
38
39
|
|
39
|
-
spec.add_dependency "faraday"
|
40
|
+
spec.add_dependency "faraday", ">= 1.0.0"
|
40
41
|
spec.add_dependency "faraday_curl"
|
41
42
|
spec.add_dependency "faraday_middleware"
|
42
43
|
spec.add_dependency "hashie"
|
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:
|
4
|
+
version: 2.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sue445
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-11-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.0.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 1.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: faraday_curl
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -240,20 +240,16 @@ files:
|
|
240
240
|
- Rakefile
|
241
241
|
- bin/console
|
242
242
|
- bin/setup
|
243
|
-
- gemfiles/faraday_0.gemfile
|
244
243
|
- gemfiles/faraday_1.gemfile
|
245
244
|
- lib/pixela.rb
|
246
|
-
- lib/pixela/channel.rb
|
247
245
|
- lib/pixela/client.rb
|
248
|
-
- lib/pixela/client/channel_methods.rb
|
249
246
|
- lib/pixela/client/graph_methods.rb
|
250
|
-
- lib/pixela/client/notificaton_methods.rb
|
251
247
|
- lib/pixela/client/pixel_methods.rb
|
248
|
+
- lib/pixela/client/profile_methods.rb
|
252
249
|
- lib/pixela/client/user_methods.rb
|
253
250
|
- lib/pixela/client/webhook_methods.rb
|
254
251
|
- lib/pixela/configuration.rb
|
255
252
|
- lib/pixela/graph.rb
|
256
|
-
- lib/pixela/notification.rb
|
257
253
|
- lib/pixela/pixel.rb
|
258
254
|
- lib/pixela/response.rb
|
259
255
|
- lib/pixela/version.rb
|
@@ -266,7 +262,8 @@ metadata:
|
|
266
262
|
homepage_uri: https://github.com/sue445/pixela
|
267
263
|
source_code_uri: https://github.com/sue445/pixela
|
268
264
|
changelog_uri: https://github.com/sue445/pixela/blob/master/CHANGELOG.md
|
269
|
-
|
265
|
+
rubygems_mfa_required: 'true'
|
266
|
+
post_install_message:
|
270
267
|
rdoc_options: []
|
271
268
|
require_paths:
|
272
269
|
- lib
|
@@ -274,15 +271,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
274
271
|
requirements:
|
275
272
|
- - ">="
|
276
273
|
- !ruby/object:Gem::Version
|
277
|
-
version: 2.
|
274
|
+
version: 2.4.0
|
278
275
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
279
276
|
requirements:
|
280
277
|
- - ">="
|
281
278
|
- !ruby/object:Gem::Version
|
282
279
|
version: '0'
|
283
280
|
requirements: []
|
284
|
-
rubygems_version: 3.
|
285
|
-
signing_key:
|
281
|
+
rubygems_version: 3.2.22
|
282
|
+
signing_key:
|
286
283
|
specification_version: 4
|
287
284
|
summary: Pixela API client for Ruby
|
288
285
|
test_files: []
|
data/gemfiles/faraday_0.gemfile
DELETED
data/lib/pixela/channel.rb
DELETED
@@ -1,106 +0,0 @@
|
|
1
|
-
module Pixela
|
2
|
-
class Channel
|
3
|
-
# @!attribute [r] client
|
4
|
-
# @return [Pixela::Client]
|
5
|
-
attr_reader :client
|
6
|
-
|
7
|
-
# @!attribute [r] id
|
8
|
-
# @return [String]
|
9
|
-
attr_reader :channel_id
|
10
|
-
|
11
|
-
# @param client [Pixela::Client]
|
12
|
-
# @param graph_id [String]
|
13
|
-
def initialize(client:, channel_id:)
|
14
|
-
@client = client
|
15
|
-
@channel_id = channel_id
|
16
|
-
end
|
17
|
-
|
18
|
-
# Create a new channel settings for notification.
|
19
|
-
#
|
20
|
-
# @param name [String]
|
21
|
-
# @param type [String]
|
22
|
-
# @param detail [Hash]
|
23
|
-
#
|
24
|
-
# @return [Pixela::Response]
|
25
|
-
#
|
26
|
-
# @raise [Pixela::PixelaError] API is failed
|
27
|
-
#
|
28
|
-
# @see https://docs.pixe.la/entry/post-channel
|
29
|
-
#
|
30
|
-
# @example
|
31
|
-
# client.channel("my-channel").create(name: "My slack channel", type: "slack", detail: {url: "https://hooks.slack.com/services/T035DA4QD/B06LMAV40/xxxx", userName: "Pixela Notification", channelName: "pixela-notify"})
|
32
|
-
def create(name:, type:, detail:)
|
33
|
-
client.create_channel(channel_id: channel_id, name: name, type: type, detail: detail)
|
34
|
-
end
|
35
|
-
|
36
|
-
# Create a new channel settings for slack notification.
|
37
|
-
#
|
38
|
-
# @param name [String]
|
39
|
-
# @param url [String]
|
40
|
-
# @param user_name [String]
|
41
|
-
# @param channel_name [String]
|
42
|
-
#
|
43
|
-
# @return [Pixela::Response]
|
44
|
-
#
|
45
|
-
# @raise [Pixela::PixelaError] API is failed
|
46
|
-
#
|
47
|
-
# @see https://docs.pixe.la/entry/post-channel
|
48
|
-
#
|
49
|
-
# @example
|
50
|
-
# client.channel("my-channel").create_with_slack(name: "My slack channel", url: "https://hooks.slack.com/services/T035DA4QD/B06LMAV40/xxxx", user_name: "Pixela Notification", channel_name: "pixela-notify")
|
51
|
-
def create_with_slack(name:, url:, user_name:, channel_name:)
|
52
|
-
client.create_slack_channel(channel_id: channel_id, name: name, url: url, user_name: user_name, channel_name: channel_name)
|
53
|
-
end
|
54
|
-
|
55
|
-
# Update predefined channel settings.
|
56
|
-
#
|
57
|
-
# @param name [String]
|
58
|
-
# @param type [String]
|
59
|
-
# @param detail [Hash]
|
60
|
-
#
|
61
|
-
# @return [Pixela::Response]
|
62
|
-
#
|
63
|
-
# @raise [Pixela::PixelaError] API is failed
|
64
|
-
#
|
65
|
-
# @see https://docs.pixe.la/entry/put-channel
|
66
|
-
#
|
67
|
-
# @example
|
68
|
-
# client.channel("my-channel").update(name: "My slack channel", type: "slack", detail: {url: "https://hooks.slack.com/services/T035DA4QD/B06LMAV40/xxxx", userName: "Pixela Notification", channelName: "pixela-notify"})
|
69
|
-
def update(name:, type:, detail:)
|
70
|
-
client.update_channel(channel_id: channel_id, name: name, type: type, detail: detail)
|
71
|
-
end
|
72
|
-
|
73
|
-
# Update predefined slack channel settings.
|
74
|
-
#
|
75
|
-
# @param name [String]
|
76
|
-
# @param url [String]
|
77
|
-
# @param user_name [String]
|
78
|
-
# @param channel_name [String]
|
79
|
-
#
|
80
|
-
# @return [Pixela::Response]
|
81
|
-
#
|
82
|
-
# @raise [Pixela::PixelaError] API is failed
|
83
|
-
#
|
84
|
-
# @see https://docs.pixe.la/entry/post-channel
|
85
|
-
#
|
86
|
-
# @example
|
87
|
-
# client.channel("my-channel").update_with_slack(name: "My slack channel", url: "https://hooks.slack.com/services/T035DA4QD/B06LMAV40/xxxx", user_name: "Pixela Notification", channel_name: "pixela-notify")
|
88
|
-
def update_with_slack(name:, url:, user_name:, channel_name:)
|
89
|
-
client.update_slack_channel(channel_id: channel_id, name: name, url: url, user_name: user_name, channel_name: channel_name)
|
90
|
-
end
|
91
|
-
|
92
|
-
# Delete predefined channel settings.
|
93
|
-
#
|
94
|
-
# @see https://docs.pixe.la/entry/delete-channel
|
95
|
-
#
|
96
|
-
# @return [Pixela::Response]
|
97
|
-
#
|
98
|
-
# @raise [Pixela::PixelaError] API is failed
|
99
|
-
#
|
100
|
-
# @example
|
101
|
-
# client.channel("my-channel").delete
|
102
|
-
def delete
|
103
|
-
client.delete_channel(channel_id: channel_id)
|
104
|
-
end
|
105
|
-
end
|
106
|
-
end
|
@@ -1,148 +0,0 @@
|
|
1
|
-
module Pixela::Client::ChannelMethods
|
2
|
-
# Create a new channel settings for notification.
|
3
|
-
#
|
4
|
-
# @param channel_id [String]
|
5
|
-
# @param name [String]
|
6
|
-
# @param type [String]
|
7
|
-
# @param detail [Hash]
|
8
|
-
#
|
9
|
-
# @return [Pixela::Response]
|
10
|
-
#
|
11
|
-
# @raise [Pixela::PixelaError] API is failed
|
12
|
-
#
|
13
|
-
# @see https://docs.pixe.la/entry/post-channel
|
14
|
-
#
|
15
|
-
# @example
|
16
|
-
# client.create_channel(channel_id: "my-channel", name: "My slack channel", type: "slack", detail: {url: "https://hooks.slack.com/services/T035DA4QD/B06LMAV40/xxxx", userName: "Pixela Notification", channelName: "pixela-notify"})
|
17
|
-
def create_channel(channel_id:, name:, type:, detail:)
|
18
|
-
params = {
|
19
|
-
id: channel_id,
|
20
|
-
name: name,
|
21
|
-
type: type,
|
22
|
-
detail: detail,
|
23
|
-
}
|
24
|
-
|
25
|
-
with_error_handling do
|
26
|
-
connection.post("users/#{username}/channels", compact_hash(params)).body
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
# Create a new channel settings for slack notification.
|
31
|
-
#
|
32
|
-
# @param channel_id [String]
|
33
|
-
# @param name [String]
|
34
|
-
# @param url [String]
|
35
|
-
# @param user_name [String]
|
36
|
-
# @param channel_name [String]
|
37
|
-
#
|
38
|
-
# @return [Pixela::Response]
|
39
|
-
#
|
40
|
-
# @raise [Pixela::PixelaError] API is failed
|
41
|
-
#
|
42
|
-
# @see https://docs.pixe.la/entry/post-channel
|
43
|
-
#
|
44
|
-
# @example
|
45
|
-
# client.create_slack_channel(channel_id: "my-channel", name: "My slack channel", url: "https://hooks.slack.com/services/T035DA4QD/B06LMAV40/xxxx", user_name: "Pixela Notification", channel_name: "pixela-notify")
|
46
|
-
def create_slack_channel(channel_id:, name:, url:, user_name:, channel_name:)
|
47
|
-
create_channel(
|
48
|
-
channel_id: channel_id,
|
49
|
-
name: name,
|
50
|
-
type: "slack",
|
51
|
-
detail: {
|
52
|
-
url: url,
|
53
|
-
userName: user_name,
|
54
|
-
channelName: channel_name,
|
55
|
-
},
|
56
|
-
)
|
57
|
-
end
|
58
|
-
|
59
|
-
# Get all predefined channels.
|
60
|
-
#
|
61
|
-
# @see https://docs.pixe.la/entry/get-channels
|
62
|
-
#
|
63
|
-
# @return [Array<Pixela::Response>]
|
64
|
-
#
|
65
|
-
# @raise [Pixela::PixelaError] API is failed
|
66
|
-
#
|
67
|
-
# @example
|
68
|
-
# client.get_channels
|
69
|
-
def get_channels
|
70
|
-
with_error_handling do
|
71
|
-
connection.get("users/#{username}/channels").body.channels
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
# Update predefined channel settings.
|
76
|
-
#
|
77
|
-
# @param channel_id [String]
|
78
|
-
# @param name [String]
|
79
|
-
# @param type [String]
|
80
|
-
# @param detail [Hash]
|
81
|
-
#
|
82
|
-
# @return [Pixela::Response]
|
83
|
-
#
|
84
|
-
# @raise [Pixela::PixelaError] API is failed
|
85
|
-
#
|
86
|
-
# @see https://docs.pixe.la/entry/put-channel
|
87
|
-
#
|
88
|
-
# @example
|
89
|
-
# client.update_channel(channel_id: "my-channel", name: "My slack channel", type: "slack", detail: {url: "https://hooks.slack.com/services/T035DA4QD/B06LMAV40/xxxx", userName: "Pixela Notification", channelName: "pixela-notify"})
|
90
|
-
def update_channel(channel_id:, name:, type:, detail:)
|
91
|
-
params = {
|
92
|
-
name: name,
|
93
|
-
type: type,
|
94
|
-
detail: detail,
|
95
|
-
}
|
96
|
-
|
97
|
-
with_error_handling do
|
98
|
-
connection.put("users/#{username}/channels/#{channel_id}", compact_hash(params)).body
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
# Update predefined slack channel settings.
|
103
|
-
#
|
104
|
-
# @param channel_id [String]
|
105
|
-
# @param name [String]
|
106
|
-
# @param url [String]
|
107
|
-
# @param user_name [String]
|
108
|
-
# @param channel_name [String]
|
109
|
-
#
|
110
|
-
# @return [Pixela::Response]
|
111
|
-
#
|
112
|
-
# @raise [Pixela::PixelaError] API is failed
|
113
|
-
#
|
114
|
-
# @see https://docs.pixe.la/entry/post-channel
|
115
|
-
#
|
116
|
-
# @example
|
117
|
-
# client.update_slack_channel(channel_id: "my-channel", name: "My slack channel", url: "https://hooks.slack.com/services/T035DA4QD/B06LMAV40/xxxx", user_name: "Pixela Notification", channel_name: "pixela-notify")
|
118
|
-
def update_slack_channel(channel_id:, name:, url:, user_name:, channel_name:)
|
119
|
-
update_channel(
|
120
|
-
channel_id: channel_id,
|
121
|
-
name: name,
|
122
|
-
type: "slack",
|
123
|
-
detail: {
|
124
|
-
url: url,
|
125
|
-
userName: user_name,
|
126
|
-
channelName: channel_name,
|
127
|
-
},
|
128
|
-
)
|
129
|
-
end
|
130
|
-
|
131
|
-
# Delete predefined channel settings.
|
132
|
-
#
|
133
|
-
# @param channel_id [String]
|
134
|
-
#
|
135
|
-
# @see https://docs.pixe.la/entry/delete-channel
|
136
|
-
#
|
137
|
-
# @return [Pixela::Response]
|
138
|
-
#
|
139
|
-
# @raise [Pixela::PixelaError] API is failed
|
140
|
-
#
|
141
|
-
# @example
|
142
|
-
# client.delete_channel(channel_id: "my-channel")
|
143
|
-
def delete_channel(channel_id:)
|
144
|
-
with_error_handling do
|
145
|
-
connection.delete("users/#{username}/channels/#{channel_id}").body
|
146
|
-
end
|
147
|
-
end
|
148
|
-
end
|
@@ -1,105 +0,0 @@
|
|
1
|
-
module Pixela::Client::NotificationMethods
|
2
|
-
# Create a notification rule.
|
3
|
-
#
|
4
|
-
# @param graph_id [String]
|
5
|
-
# @param notification_id [String]
|
6
|
-
# @param name [String]
|
7
|
-
# @param target [String]
|
8
|
-
# @param condition [String]
|
9
|
-
# @param threshold [String]
|
10
|
-
# @param remind_by [String]
|
11
|
-
# @param channel_id [String]
|
12
|
-
#
|
13
|
-
# @return [Pixela::Response]
|
14
|
-
#
|
15
|
-
# @raise [Pixela::PixelaError] API is failed
|
16
|
-
#
|
17
|
-
# @see https://docs.pixe.la/entry/post-notification
|
18
|
-
#
|
19
|
-
# @example
|
20
|
-
# client.create_notification(graph_id: "test-graph", notification_id: "my-notification-rule", name: "my notification rule", target: "quantity", condition: ">", threshold: "5", remind_by: "21", channel_id: "my-channel")
|
21
|
-
def create_notification(graph_id:, notification_id:, name:, target:, condition:, threshold:, remind_by: nil, channel_id:)
|
22
|
-
params = {
|
23
|
-
id: notification_id,
|
24
|
-
name: name,
|
25
|
-
target: target,
|
26
|
-
condition: condition,
|
27
|
-
threshold: threshold,
|
28
|
-
remindBy: remind_by,
|
29
|
-
channelID: channel_id,
|
30
|
-
}
|
31
|
-
|
32
|
-
with_error_handling do
|
33
|
-
connection.post("users/#{username}/graphs/#{graph_id}/notifications", compact_hash(params)).body
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
# Get all predefined notifications.
|
38
|
-
#
|
39
|
-
# @param graph_id [String]
|
40
|
-
#
|
41
|
-
# @return [Array<Pixela::Response>]
|
42
|
-
#
|
43
|
-
# @raise [Pixela::PixelaError] API is failed
|
44
|
-
#
|
45
|
-
# @see https://docs.pixe.la/entry/get-notifications
|
46
|
-
#
|
47
|
-
# @example
|
48
|
-
# client.get_notifications(graph_id: "test-graph")
|
49
|
-
def get_notifications(graph_id:)
|
50
|
-
with_error_handling do
|
51
|
-
connection.get("users/#{username}/graphs/#{graph_id}/notifications").body.notifications
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
# Update predefined notification rule.
|
56
|
-
#
|
57
|
-
# @param graph_id [String]
|
58
|
-
# @param notification_id [String]
|
59
|
-
# @param name [String]
|
60
|
-
# @param target [String]
|
61
|
-
# @param condition [String]
|
62
|
-
# @param threshold [String]
|
63
|
-
# @param channel_id [String]
|
64
|
-
#
|
65
|
-
# @return [Pixela::Response]
|
66
|
-
#
|
67
|
-
# @raise [Pixela::PixelaError] API is failed
|
68
|
-
#
|
69
|
-
# @see https://docs.pixe.la/entry/put-notification
|
70
|
-
#
|
71
|
-
# @example
|
72
|
-
# client.update_notification(graph_id: "test-graph", notification_id: "my-notification-rule", name: "my notification rule", target: "quantity", condition: ">", threshold: "5", channel_id: "my-channel")
|
73
|
-
def update_notification(graph_id:, notification_id:, name:, target:, condition:, threshold:, channel_id:)
|
74
|
-
params = {
|
75
|
-
name: name,
|
76
|
-
target: target,
|
77
|
-
condition: condition,
|
78
|
-
threshold: threshold,
|
79
|
-
channelID: channel_id,
|
80
|
-
}
|
81
|
-
|
82
|
-
with_error_handling do
|
83
|
-
connection.put("users/#{username}/graphs/#{graph_id}/notifications/#{notification_id}", compact_hash(params)).body
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
# Delete predefined notification settings.
|
88
|
-
#
|
89
|
-
# @param graph_id [String]
|
90
|
-
# @param notification_id [String]
|
91
|
-
#
|
92
|
-
# @return [Pixela::Response]
|
93
|
-
#
|
94
|
-
# @raise [Pixela::PixelaError] API is failed
|
95
|
-
#
|
96
|
-
# @see https://docs.pixe.la/entry/delete-notification
|
97
|
-
#
|
98
|
-
# @example
|
99
|
-
# client.delete_notification(graph_id: "test-graph", notification_id: "my-notification-rule")
|
100
|
-
def delete_notification(graph_id:, notification_id:)
|
101
|
-
with_error_handling do
|
102
|
-
connection.delete("users/#{username}/graphs/#{graph_id}/notifications/#{notification_id}").body
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
data/lib/pixela/notification.rb
DELETED
@@ -1,79 +0,0 @@
|
|
1
|
-
module Pixela
|
2
|
-
class Notification
|
3
|
-
# @!attribute [r] client
|
4
|
-
# @return [Pixela::Client]
|
5
|
-
attr_reader :client
|
6
|
-
|
7
|
-
# @!attribute [r] graph_id
|
8
|
-
# @return [String]
|
9
|
-
attr_reader :graph_id
|
10
|
-
|
11
|
-
# @!attribute [r] notification_id
|
12
|
-
# @return [String]
|
13
|
-
attr_reader :notification_id
|
14
|
-
|
15
|
-
# @param client [Pixela::Client]
|
16
|
-
# @param graph_id [String]
|
17
|
-
# @param notification_id [String]
|
18
|
-
def initialize(client:, graph_id:, notification_id:)
|
19
|
-
@client = client
|
20
|
-
@graph_id = graph_id
|
21
|
-
@notification_id = notification_id
|
22
|
-
end
|
23
|
-
|
24
|
-
# Create a notification rule.
|
25
|
-
#
|
26
|
-
# @param name [String]
|
27
|
-
# @param target [String]
|
28
|
-
# @param condition [String]
|
29
|
-
# @param threshold [String]
|
30
|
-
# @param remind_by [String]
|
31
|
-
# @param channel_id [String]
|
32
|
-
#
|
33
|
-
# @return [Pixela::Response]
|
34
|
-
#
|
35
|
-
# @raise [Pixela::PixelaError] API is failed
|
36
|
-
#
|
37
|
-
# @see https://docs.pixe.la/entry/post-notification
|
38
|
-
#
|
39
|
-
# @example
|
40
|
-
# client.graph("test-graph").notification("my-notification-rule").create(name: "my notification rule", target: "quantity", condition: ">", threshold: "5", remind_by: "21", channel_id: "my-channel")
|
41
|
-
def create(name:, target:, condition:, threshold:, remind_by: nil, channel_id:)
|
42
|
-
client.create_notification(graph_id: graph_id, notification_id: notification_id, name: name, target: target, condition: condition, threshold: threshold, remind_by: remind_by, channel_id: channel_id)
|
43
|
-
end
|
44
|
-
|
45
|
-
# Update predefined notification rule.
|
46
|
-
#
|
47
|
-
# @param name [String]
|
48
|
-
# @param target [String]
|
49
|
-
# @param condition [String]
|
50
|
-
# @param threshold [String]
|
51
|
-
# @param channel_id [String]
|
52
|
-
#
|
53
|
-
# @return [Pixela::Response]
|
54
|
-
#
|
55
|
-
# @raise [Pixela::PixelaError] API is failed
|
56
|
-
#
|
57
|
-
# @see https://docs.pixe.la/entry/put-notification
|
58
|
-
#
|
59
|
-
# @example
|
60
|
-
# client.graph("test-graph").notification("my-notification-rule").update(name: "my notification rule", target: "quantity", condition: ">", threshold: "5", channel_id: "my-channel")
|
61
|
-
def update(name:, target:, condition:, threshold:, channel_id:)
|
62
|
-
client.update_notification(graph_id: graph_id, notification_id: notification_id, name: name, target: target, condition: condition, threshold: threshold, channel_id: channel_id)
|
63
|
-
end
|
64
|
-
|
65
|
-
# Delete predefined notification settings.
|
66
|
-
#
|
67
|
-
# @return [Pixela::Response]
|
68
|
-
#
|
69
|
-
# @raise [Pixela::PixelaError] API is failed
|
70
|
-
#
|
71
|
-
# @see https://docs.pixe.la/entry/delete-notification
|
72
|
-
#
|
73
|
-
# @example
|
74
|
-
# client.graph("test-graph").notification("my-notification-rule").delete
|
75
|
-
def delete
|
76
|
-
client.delete_notification(graph_id: graph_id, notification_id: notification_id)
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|