adafruit-io 2.0.0.beta.3 → 2.0.0.beta.4
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|