onvo 0.1.3 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b10c8efd7ad24cda50378c021ff47ebe5ba1ab9e7aad71d44bd735884f599aa2
4
- data.tar.gz: 29e8a219300fc9397630164f84827374d40a0416cbac7e14e9365c58db0b4176
3
+ metadata.gz: f68b68906f415004096ec475af32a63191275e289a253e0f1f271dc76c8386f1
4
+ data.tar.gz: 1f5924af7a1e67a41f4e2e086b402174d149a502d40db34539236df31389e7ea
5
5
  SHA512:
6
- metadata.gz: d78f13ee296c88fe160a0836ef5e5461ab292f8e39fb37e435268914de0d5f9aa1d0a34221101fa426d00fb4f900537a42944b5499257032eea0035fe6e8d575
7
- data.tar.gz: 798082079d86f5702653c7640de7fd067243dcf8564258ffd4abc9b559b790a0612290aef4d9847ee4fb0f473bce4db27d6c3bac181e0d476d63ba3f18861898
6
+ metadata.gz: 4f90ad508dc19bd6f35da7b17dccbebe619b453339baf361d1e61a4228241008e1787c88c798c0d89f91838c760df3f83d31cf200a752ca71c7ee826e3de5de8
7
+ data.tar.gz: 0a02aabe44d284b69c3709d8d52d90528fe3aec8a41e9ce3ada8e562f463f69cb7fb1db09c84694b5288f45cccbe0561cd41eff3d44ee45e5e3bdcbe653c3b0d
@@ -17,10 +17,10 @@ class Automations < Resource
17
17
  end
18
18
 
19
19
  def update(id, body)
20
- base_post("/automations/#{id}", body)
20
+ base_post("/automations/#{id}", body: body)
21
21
  end
22
22
 
23
23
  def create(body)
24
- base_put('/automations', body)
24
+ base_put('/automations', body: body)
25
25
  end
26
26
  end
@@ -10,7 +10,7 @@ class DashboardDatasources < DashboardResource
10
10
  end
11
11
 
12
12
  def link(datasource_id)
13
- base_put("/dashboards/#{@dashboard_id}/datasources", datasourceId: datasource_id) #TODO: check if not "datasourceId"
13
+ base_put("/dashboards/#{@dashboard_id}/datasources", body: { datasourceId: datasource_id })
14
14
  end
15
15
 
16
16
  def unlink(datasource_id)
@@ -1,9 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative './dashboard/datasources'
4
- require_relative './dashboard/widgets'
5
- require_relative './dashboard/questions'
6
- require_relative './dashboard/sessions'
7
4
 
8
5
  # The Dashboard API
9
6
  class Dashboard
@@ -13,8 +10,5 @@ class Dashboard
13
10
  params = [dashboard_id, endpoint, api_key]
14
11
 
15
12
  @datasources = DashboardDatasources.new(*params)
16
- @widgets = DashboardWidgets.new(*params)
17
- @questions = DashboardQuestions.new(*params)
18
- @sessions = DashboardSessions.new(*params)
19
13
  end
20
14
  end
@@ -17,10 +17,10 @@ class Dashboards < Resource
17
17
  end
18
18
 
19
19
  def update(id, body)
20
- base_post("/dashboards/#{id}", body)
20
+ base_post("/dashboards/#{id}", body: body)
21
21
  end
22
22
 
23
23
  def create(body)
24
- base_put('/dashboards', body)
24
+ base_put('/dashboards', body: body)
25
25
  end
26
26
  end
@@ -25,10 +25,10 @@ class Datasources < Resource
25
25
  end
26
26
 
27
27
  def update(id, body)
28
- base_post("/datasources/#{id}", body)
28
+ base_post("/datasources/#{id}", body: body)
29
29
  end
30
30
 
31
31
  def create(body)
32
- base_put('/datasources', body)
32
+ base_put('/datasources', body: body)
33
33
  end
34
34
  end
@@ -16,16 +16,8 @@ class EmbedUsers < Resource
16
16
  base_delete("/embed-users/#{id}")
17
17
  end
18
18
 
19
- def upsert(id, name, email, metadata = {})
20
- base_post(
21
- '/embed-users',
22
- {
23
- 'id': id,
24
- 'name': name,
25
- 'email': email,
26
- 'metadata': metadata
27
- }
28
- )
19
+ def upsert(body)
20
+ base_post('/embed-users', body: body)
29
21
  end
30
22
 
31
23
  def get_access_token(id)
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'uri'
4
+ require_relative '../resource'
5
+
6
+ # Dashboard Question endpoints
7
+ class Questions < Resource
8
+ def list(dashboard_id)
9
+ base_get('/questions', query: { dashboard: dashboard_id })
10
+ end
11
+
12
+ def create(dashboard_id, query)
13
+ base_put('/questions', query: { query: query }, body: { dashboard: dashboard_id })
14
+ end
15
+
16
+ def delete(id)
17
+ base_delete("/questions/#{id}")
18
+ end
19
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../resource'
4
+
5
+ # Dashboard session endpoints
6
+ class Sessions < Resource
7
+ def list(dashboard_id)
8
+ base_get('/sessions', query: { dashboard: dashboard_id })
9
+ end
10
+
11
+ def delete(dashboard_id)
12
+ base_delete('/sessions', query: { dashboard: dashboard_id })
13
+ end
14
+
15
+ def upsert(dashboard_id, user_id)
16
+ session_data = base_post(
17
+ '/sessions',
18
+ body: { dashboard: dashboard_id, user: user_id }
19
+ )
20
+ session_data.merge({ 'url': "#{@endpoint}#{session_data['url']}" })
21
+ end
22
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../resource'
4
+
5
+ # Dashboard Widget endpoints
6
+ class Widgets < Resource
7
+ def list(dashboard_id)
8
+ base_get('/widgets', query: { dashboard: dashboard_id })
9
+ end
10
+
11
+ def get(widget_id)
12
+ base_get("/widgets/#{widget_id}")
13
+ end
14
+
15
+ def get_image(widget_id)
16
+ base_get("/widgets/#{widget_id}/image")
17
+ end
18
+
19
+ def delete(widget_id)
20
+ base_delete("/widgets/#{widget_id}")
21
+ end
22
+
23
+ def update(widget_id, body)
24
+ base_post("/widgets/#{widget_id}", body: body)
25
+ end
26
+
27
+ def create(dashboard_id, query)
28
+ base_put('/widgets', query: { query: query }, body: { dashboard: dashboard_id })
29
+ end
30
+ end
data/lib/onvo.rb CHANGED
@@ -6,12 +6,15 @@ require_relative './onvo/embed_users'
6
6
  require_relative './onvo/datasources'
7
7
  require_relative './onvo/automations'
8
8
  require_relative './onvo/dashboards'
9
+ require_relative './onvo/questions'
10
+ require_relative './onvo/sessions'
11
+ require_relative './onvo/widgets'
9
12
 
10
13
  require_relative './onvo/dashboard'
11
14
 
12
15
  # The Onvo Ruby SDK
13
16
  class Onvo
14
- attr_reader :accounts, :teams, :embed_users, :datasources, :automations, :dashboards
17
+ attr_reader :accounts, :teams, :embed_users, :datasources, :automations, :dashboards, :questions, :sessions, :widgets
15
18
  attr_accessor :endpoint, :api_key
16
19
 
17
20
  def initialize(endpoint = ENV['ONVO_API_ENDPOINT'], api_key = ENV['ONVO_API_KEY'])
@@ -23,8 +26,11 @@ class Onvo
23
26
  @teams = Teams.new(*params)
24
27
  @embed_users = EmbedUsers.new(*params)
25
28
  @datasources = Datasources.new(*params)
26
- @automations = Automations.new(*params)
27
29
  @dashboards = Dashboards.new(*params)
30
+ @automations = Automations.new(*params)
31
+ @questions = Questions.new(*params)
32
+ @sessions = Sessions.new(*params)
33
+ @widgets = Widgets.new(*params)
28
34
  end
29
35
 
30
36
  def dashboard(dashboard_id)
data/lib/resource.rb CHANGED
@@ -31,21 +31,26 @@ class Resource
31
31
  response.body
32
32
  end
33
33
 
34
- def base_get(subdirectory)
35
- base_request { self.class.get(subdirectory, options) }
34
+ def merge_options(extra_options)
35
+ filtered_extras = {}
36
+ filtered_extras[:query] = extra_options[:query] if extra_options.key? :query
37
+ filtered_extras[:body] = extra_options[:body].to_json if extra_options.key? :body
38
+ options.merge(filtered_extras)
36
39
  end
37
40
 
38
- def base_put(subdirectory, body = nil)
39
- params = body ? options.merge({ body: body.to_json }) : options
40
- base_request { self.class.put(subdirectory, params) }
41
+ def base_get(subdirectory, **extra_options)
42
+ base_request { self.class.get(subdirectory, **merge_options(extra_options)) }
41
43
  end
42
44
 
43
- def base_post(subdirectory, body = nil)
44
- params = body ? options.merge({ body: body.to_json }) : options
45
- base_request { self.class.post(subdirectory, params) }
45
+ def base_put(subdirectory, **extra_options)
46
+ base_request { self.class.put(subdirectory, **merge_options(extra_options)) }
46
47
  end
47
48
 
48
- def base_delete(subdirectory)
49
- base_request { self.class.delete(subdirectory, options) }
49
+ def base_post(subdirectory, **extra_options)
50
+ base_request { self.class.post(subdirectory, **merge_options(extra_options)) }
51
+ end
52
+
53
+ def base_delete(subdirectory, **extra_options)
54
+ base_request { self.class.delete(subdirectory, **merge_options(extra_options)) }
50
55
  end
51
56
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: onvo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryan Davis
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-02-08 00:00:00.000000000 Z
12
+ date: 2024-02-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
@@ -67,13 +67,13 @@ files:
67
67
  - lib/onvo/dashboard.rb
68
68
  - lib/onvo/dashboard/dashboard_resource.rb
69
69
  - lib/onvo/dashboard/datasources.rb
70
- - lib/onvo/dashboard/questions.rb
71
- - lib/onvo/dashboard/sessions.rb
72
- - lib/onvo/dashboard/widgets.rb
73
70
  - lib/onvo/dashboards.rb
74
71
  - lib/onvo/datasources.rb
75
72
  - lib/onvo/embed_users.rb
73
+ - lib/onvo/questions.rb
74
+ - lib/onvo/sessions.rb
76
75
  - lib/onvo/teams.rb
76
+ - lib/onvo/widgets.rb
77
77
  - lib/resource.rb
78
78
  homepage:
79
79
  licenses: []
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'uri'
4
- require_relative './dashboard_resource'
5
-
6
- # Dashboard Question endpoints
7
- class DashboardQuestions < DashboardResource
8
- def list
9
- base_get("/dashboards/#{@dashboard_id}/questions")
10
- end
11
-
12
- # TODO: ask?
13
- def create(query)
14
- processed_query = URI.encode_www_form_component(query)
15
- base_put("/dashboards/#{@dashboard_id}/questions?query=#{processed_query}")
16
- end
17
- end
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative './dashboard_resource'
4
-
5
- # Dashboard session endpoints
6
- class DashboardSessions < DashboardResource
7
- def list
8
- base_get("/dashboards/#{@dashboard_id}/sessions")
9
- end
10
-
11
- # TODO: check if rename to delete_all
12
- def delete
13
- base_delete("/dashboards/#{@dashboard_id}/sessions")
14
- end
15
-
16
- def upsert(user_id, parameters = {})
17
- session_data = base_post(
18
- "/dashboards/#{@dashboard_id}/sessions",
19
- user: user_id,
20
- parameters: parameters
21
- )
22
- session_data.merge({ 'url': "#{@endpoint}#{session_data['url']}" })
23
- end
24
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'uri'
4
- require_relative './dashboard_resource'
5
-
6
- # Dashboard Widget endpoints
7
- class DashboardWidgets < DashboardResource
8
- def list
9
- base_get("/dashboards/#{@dashboard_id}/widgets")
10
- end
11
-
12
- def get(widget_id)
13
- base_get("/dashboards/#{@dashboard_id}/widgets/#{widget_id}")
14
- end
15
-
16
- def delete(widget_id)
17
- base_delete("/dashboards/#{@dashboard_id}/widgets/#{widget_id}")
18
- end
19
-
20
- def update(widget_id, body)
21
- base_post("/dashboards/#{@dashboard_id}/widgets/#{widget_id}", body)
22
- end
23
-
24
- def create(query)
25
- processed_query = URI.encode_www_form_component(query)
26
- base_put("/dashboards/#{@dashboard_id}/widgets?query=#{processed_query}")
27
- end
28
- end