adafruit-io 2.0.0.beta.3 → 2.0.0.beta.4
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/README.md +6 -35
- data/lib/adafruit/io/arguments.rb +15 -1
- data/lib/adafruit/io/client.rb +10 -1
- data/lib/adafruit/io/client/blocks.rb +53 -0
- data/lib/adafruit/io/client/dashboards.rb +48 -0
- data/lib/adafruit/io/client/tokens.rb +6 -15
- data/lib/adafruit/io/client/user.rb +17 -0
- data/lib/adafruit/io/version.rb +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 967481a3470b1c2b5c71f10d52aa0d0a11c3502c
|
4
|
+
data.tar.gz: 7d3fa8e6f776d95523763e4c7f0497bc071097df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1fc64bb0cb2d05d80cab90bb7af67462c116ae333ae7ecbdce5f5e34e777c0c53fbdbc0be3cd2305d09772fedd8f2516e149aabe2e5e961bb52f165a14b61962
|
7
|
+
data.tar.gz: 547aef766d609a9d3f65b89d51577964f9692e42d471f98128e86967b0e02d91e9e7fe3314194cf7361bb26818d4157cfd6eb1f19257850589e931bc200961ea
|
data/README.md
CHANGED
@@ -26,12 +26,12 @@ It is our goal to eventually support all API V2 methods, but that will happen in
|
|
26
26
|
- [x] Data `2.0.0.beta.1`
|
27
27
|
- [x] Groups `2.0.0.beta.1`
|
28
28
|
- [x] MQTT `2.0.0.beta.3`
|
29
|
+
- [x] Tokens `2.0.0.beta.4`
|
30
|
+
- [x] Blocks `2.0.0.beta.4`
|
31
|
+
- [x] Dashboards `2.0.0.beta.4`
|
29
32
|
- [] Activities
|
30
|
-
- [] Blocks
|
31
|
-
- [] Dashboards
|
32
33
|
- [] Permissions
|
33
34
|
- [] Sessions
|
34
|
-
- [] Tokens
|
35
35
|
- [] Triggers
|
36
36
|
|
37
37
|
## Installation
|
@@ -110,40 +110,11 @@ puts "read?"
|
|
110
110
|
puts api.feed(garbage['key']).inspect
|
111
111
|
```
|
112
112
|
|
113
|
-
##
|
114
|
-
|
115
|
-
* [Feeds](#feeds)
|
116
|
-
* [Data](#data)
|
117
|
-
* [Groups](#groups)
|
118
|
-
* [Dashboards](#dashboards)
|
119
|
-
* [Blocks](#blocks)
|
120
|
-
* [Activities](#activities)
|
121
|
-
* [Triggers](#triggers)
|
122
|
-
* [Permissions](#permissions)
|
123
|
-
* [Tokens](#tokens)
|
124
|
-
|
125
|
-
### Feeds
|
126
|
-
|
127
|
-
Create
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
### Data
|
134
|
-
### Groups
|
135
|
-
### Dashboards
|
136
|
-
### Blocks
|
137
|
-
### Activities
|
138
|
-
### Triggers
|
139
|
-
### Permissions
|
140
|
-
### Tokens
|
141
|
-
|
142
|
-
## Pagination
|
113
|
+
## License
|
143
114
|
|
115
|
+
Copyright (c) 2017 Adafruit Industries. Licensed under the MIT license.
|
144
116
|
|
145
|
-
|
146
|
-
Copyright (c) 2014 Adafruit Industries. Licensed under the MIT license.
|
117
|
+
[Adafruit](https://adafruit.com) invests time and resources providing this open source code. Please support Adafruit and open-source hardware by purchasing products from [Adafruit](https://adafruit.com).
|
147
118
|
|
148
119
|
## Contributing
|
149
120
|
|
@@ -1,6 +1,7 @@
|
|
1
1
|
module Adafruit
|
2
2
|
module IO
|
3
3
|
module Arguments
|
4
|
+
class ArgumentError < StandardError; end
|
4
5
|
|
5
6
|
# Allows us to give a username during client initialization or with a specific method.
|
6
7
|
def extract_username(args)
|
@@ -45,7 +46,7 @@ module Adafruit
|
|
45
46
|
record_or_id = arguments.shift
|
46
47
|
return nil if record_or_id.nil?
|
47
48
|
|
48
|
-
if record_or_id.is_a?(String)
|
49
|
+
if record_or_id.is_a?(String) || record_or_id.is_a?(Fixnum)
|
49
50
|
record_or_id
|
50
51
|
elsif record_or_id.is_a?(Hash) && (record_or_id.has_key?('id') || record_or_id.has_key?(:id))
|
51
52
|
record_or_id['id'] || record_or_id[:id]
|
@@ -68,6 +69,19 @@ module Adafruit
|
|
68
69
|
query
|
69
70
|
end
|
70
71
|
|
72
|
+
def require_argument(arguments, argument_name)
|
73
|
+
arg = arguments.first
|
74
|
+
if !arg.is_a?(Hash)
|
75
|
+
raise ArgumentError.new("This request requires arguments to be a Hash containing the key: :#{argument_name}")
|
76
|
+
end
|
77
|
+
|
78
|
+
if !(arg.has_key?(argument_name) || arg.has_key?(argument_name.to_s))
|
79
|
+
raise ArgumentError.new("Missing required parameter, make sure to include #{argument_name}")
|
80
|
+
end
|
81
|
+
|
82
|
+
arg[argument_name] || arg[argument_name.to_s]
|
83
|
+
end
|
84
|
+
|
71
85
|
end
|
72
86
|
end
|
73
87
|
end
|
data/lib/adafruit/io/client.rb
CHANGED
@@ -11,6 +11,10 @@ require 'adafruit/io/request_handler'
|
|
11
11
|
require 'adafruit/io/client/feeds'
|
12
12
|
require 'adafruit/io/client/data'
|
13
13
|
require 'adafruit/io/client/groups'
|
14
|
+
require 'adafruit/io/client/tokens'
|
15
|
+
require 'adafruit/io/client/dashboards'
|
16
|
+
require 'adafruit/io/client/blocks'
|
17
|
+
require 'adafruit/io/client/user'
|
14
18
|
|
15
19
|
module Adafruit
|
16
20
|
module IO
|
@@ -43,6 +47,11 @@ module Adafruit
|
|
43
47
|
include Adafruit::IO::Client::Feeds
|
44
48
|
include Adafruit::IO::Client::Data
|
45
49
|
include Adafruit::IO::Client::Groups
|
50
|
+
include Adafruit::IO::Client::Tokens
|
51
|
+
include Adafruit::IO::Client::Blocks
|
52
|
+
include Adafruit::IO::Client::Dashboards
|
53
|
+
|
54
|
+
include Adafruit::IO::Client::User
|
46
55
|
|
47
56
|
private
|
48
57
|
|
@@ -75,7 +84,7 @@ module Adafruit
|
|
75
84
|
|
76
85
|
# safely build URL paths from segments
|
77
86
|
def safe_path_join(*paths)
|
78
|
-
paths = paths.compact.reject(&:empty?)
|
87
|
+
paths = paths.compact.map(&:to_s).reject(&:empty?)
|
79
88
|
last = paths.length - 1
|
80
89
|
paths.each_with_index.map { |path, index|
|
81
90
|
safe_path_expand(path, index, last)
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module Adafruit
|
2
|
+
module IO
|
3
|
+
class Client
|
4
|
+
module Blocks
|
5
|
+
|
6
|
+
# Get all blocks for a dashboard. Requires dashboard_key.
|
7
|
+
def blocks(*args)
|
8
|
+
username, arguments = extract_username(args)
|
9
|
+
dashboard_key = require_argument(arguments, :dashboard_key)
|
10
|
+
|
11
|
+
get api_url(username, 'dashboards', dashboard_key, 'blocks')
|
12
|
+
end
|
13
|
+
|
14
|
+
# Get a block specified by ID
|
15
|
+
def block(*args)
|
16
|
+
username, arguments = extract_username(args)
|
17
|
+
dashboard_key = require_argument(arguments, :dashboard_key)
|
18
|
+
block_id = get_id_from_arguments(arguments)
|
19
|
+
|
20
|
+
get api_url(username, 'dashboards', dashboard_key, 'blocks', block_id)
|
21
|
+
end
|
22
|
+
|
23
|
+
def create_block(*args)
|
24
|
+
username, arguments = extract_username(args)
|
25
|
+
dashboard_key = require_argument(arguments, :dashboard_key)
|
26
|
+
block_attrs = arguments.shift
|
27
|
+
|
28
|
+
post api_url(username, 'groups'), group_attrs
|
29
|
+
end
|
30
|
+
|
31
|
+
def delete_block(*args)
|
32
|
+
username, arguments = extract_username(args)
|
33
|
+
dashboard_key = require_argument(arguments, :dashboard_key)
|
34
|
+
block_id = get_id_from_arguments(arguments)
|
35
|
+
|
36
|
+
delete api_url(username, 'dashboards', dashboard_key, 'blocks', block_id)
|
37
|
+
end
|
38
|
+
|
39
|
+
def update_block(*args)
|
40
|
+
username, arguments = extract_username(args)
|
41
|
+
dashboard_key = require_argument(arguments, :dashboard_key)
|
42
|
+
block_id = get_id_from_arguments(arguments)
|
43
|
+
|
44
|
+
query = get_query_from_arguments(arguments, %w(name properties visual_type column row size_x size_y block_feeds))
|
45
|
+
|
46
|
+
put api_url(username, 'dashboards', dashboard_key, 'blocks', block_id), query
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Adafruit
|
2
|
+
module IO
|
3
|
+
class Client
|
4
|
+
module Dashboards
|
5
|
+
|
6
|
+
# Get all dashboards.
|
7
|
+
def dashboards(*args)
|
8
|
+
username, _ = extract_username(args)
|
9
|
+
|
10
|
+
get api_url(username, 'dashboards')
|
11
|
+
end
|
12
|
+
|
13
|
+
# Get a dashboard specified by key
|
14
|
+
def dashboard(*args)
|
15
|
+
username, arguments = extract_username(args)
|
16
|
+
dashboard_key = get_key_from_arguments(arguments)
|
17
|
+
|
18
|
+
get api_url(username, 'dashboards', dashboard_key)
|
19
|
+
end
|
20
|
+
|
21
|
+
# Create a dashboard. No attributes need to be passed in.
|
22
|
+
def create_dashboard(*args)
|
23
|
+
username, arguments = extract_username(args)
|
24
|
+
attrs = arguments.shift
|
25
|
+
|
26
|
+
post api_url(username, 'dashboards'), attrs
|
27
|
+
end
|
28
|
+
|
29
|
+
def delete_dashboard(*args)
|
30
|
+
username, arguments = extract_username(args)
|
31
|
+
dashboard_key = get_key_from_arguments(arguments)
|
32
|
+
|
33
|
+
delete api_url(username, 'dashboards', dashboard_key)
|
34
|
+
end
|
35
|
+
|
36
|
+
def update_dashboard(*args)
|
37
|
+
username, arguments = extract_username(args)
|
38
|
+
dashboard_key = get_key_from_arguments(arguments)
|
39
|
+
query = get_query_from_arguments(arguments, %w(name key))
|
40
|
+
|
41
|
+
put api_url(username, 'dashboards', dashboard_key), query
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
|
@@ -13,32 +13,23 @@ module Adafruit
|
|
13
13
|
# Get a token specified by key
|
14
14
|
def token(*args)
|
15
15
|
username, arguments = extract_username(args)
|
16
|
-
|
16
|
+
token_id = get_id_from_arguments(arguments)
|
17
17
|
|
18
|
-
get api_url(username, 'tokens',
|
19
|
-
end
|
20
|
-
|
21
|
-
# Get a token along with additional details about the token. This method
|
22
|
-
# has more to lookup and so is slower than `token`
|
23
|
-
def token_details(*args)
|
24
|
-
username, arguments = extract_username(args)
|
25
|
-
token_key = get_id_from_arguments(arguments)
|
26
|
-
|
27
|
-
get api_url(username, 'tokens', token_key, 'details')
|
18
|
+
get api_url(username, 'tokens', token_id)
|
28
19
|
end
|
29
20
|
|
21
|
+
# Create a token. No attributes need to be passed in.
|
30
22
|
def create_token(*args)
|
31
23
|
username, arguments = extract_username(args)
|
32
|
-
token_attrs = arguments.shift
|
33
24
|
|
34
|
-
post api_url(username, 'tokens')
|
25
|
+
post api_url(username, 'tokens')
|
35
26
|
end
|
36
27
|
|
37
28
|
def delete_token(*args)
|
38
29
|
username, arguments = extract_username(args)
|
39
|
-
|
30
|
+
token_id = get_id_from_arguments(arguments)
|
40
31
|
|
41
|
-
delete api_url(username, 'tokens',
|
32
|
+
delete api_url(username, 'tokens', token_id)
|
42
33
|
end
|
43
34
|
|
44
35
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
|
2
|
+
module Adafruit
|
3
|
+
module IO
|
4
|
+
class Client
|
5
|
+
module User
|
6
|
+
|
7
|
+
# Get user associated with the current key. If this method returns nil
|
8
|
+
# it means you have a bad key.
|
9
|
+
def user(*args)
|
10
|
+
get '/api/v2/user'
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
data/lib/adafruit/io/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: adafruit-io
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0.beta.
|
4
|
+
version: 2.0.0.beta.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Cooper
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-07-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
@@ -109,10 +109,13 @@ files:
|
|
109
109
|
- lib/adafruit/io.rb
|
110
110
|
- lib/adafruit/io/arguments.rb
|
111
111
|
- lib/adafruit/io/client.rb
|
112
|
+
- lib/adafruit/io/client/blocks.rb
|
113
|
+
- lib/adafruit/io/client/dashboards.rb
|
112
114
|
- lib/adafruit/io/client/data.rb
|
113
115
|
- lib/adafruit/io/client/feeds.rb
|
114
116
|
- lib/adafruit/io/client/groups.rb
|
115
117
|
- lib/adafruit/io/client/tokens.rb
|
118
|
+
- lib/adafruit/io/client/user.rb
|
116
119
|
- lib/adafruit/io/configurable.rb
|
117
120
|
- lib/adafruit/io/mqtt.rb
|
118
121
|
- lib/adafruit/io/request_handler.rb
|
@@ -142,4 +145,3 @@ signing_key:
|
|
142
145
|
specification_version: 4
|
143
146
|
summary: Adafruit IO API Client Library
|
144
147
|
test_files: []
|
145
|
-
has_rdoc:
|