File tree Expand file tree Collapse file tree 7 files changed +132
-1
lines changed Expand file tree Collapse file tree 7 files changed +132
-1
lines changed Original file line number Diff line number Diff line change
1
+ module Superset
2
+ class BasePutRequest < Superset ::Request
3
+ attr_reader :object_id , :params
4
+
5
+ def initialize ( object_id : , params : )
6
+ @object_id = object_id
7
+ @params = params
8
+ end
9
+
10
+ def perform
11
+ validate
12
+ response
13
+ end
14
+
15
+ def response
16
+ @response ||= client . put ( route , params )
17
+ end
18
+
19
+ private
20
+
21
+ def validate
22
+ raise "Error: object_id integer is required" unless object_id . present? && object_id . is_a? ( Integer )
23
+ raise "Error: params hash is required" unless params . present? && params . is_a? ( Hash )
24
+ end
25
+
26
+ def route
27
+ raise "Error: route method is required"
28
+ end
29
+ end
30
+ end
Original file line number Diff line number Diff line change
1
+ # Updates a chart in Superset with the given params
2
+ #
3
+ # Usage:
4
+ # params = { owners: [ 58, 3 ] }
5
+ # Superset::Chart::Put.new(object_id: 202, params: params ).perform
6
+
7
+ module Superset
8
+ module Chart
9
+ class Put < Superset ::BasePutRequest
10
+
11
+ private
12
+
13
+ def route
14
+ "chart/#{ object_id } "
15
+ end
16
+ end
17
+ end
18
+ end
Original file line number Diff line number Diff line change @@ -43,7 +43,7 @@ def params_updated
43
43
new_params . merge! ( "query_context" : query_context . to_json ) # update to point to the new query context
44
44
new_params . merge! ( "query_context_generation" : true ) # new param set to true to regenerate the query context
45
45
end
46
-
46
+
47
47
new_params
48
48
end
49
49
end
Original file line number Diff line number Diff line change
1
+ # Updates a dataset in Superset with the given params
2
+ #
3
+ # Usage:
4
+ # params = { owners: [ 58, 3 ] }
5
+ # Superset::Dataset::Put.new(object_id: 101, params: params ).perform
6
+
7
+ module Superset
8
+ module Dataset
9
+ class Put < Superset ::BasePutRequest
10
+
11
+ private
12
+
13
+ def route
14
+ "dataset/#{ object_id } "
15
+ end
16
+ end
17
+ end
18
+ end
Original file line number Diff line number Diff line change
1
+ require 'spec_helper'
2
+
3
+ RSpec . shared_examples :base_put_request_shared_examples do
4
+ describe "#perform" do
5
+ subject { described_class . new (
6
+ object_id : object_id ,
7
+ params : params ) }
8
+
9
+ let ( :object_id ) { 226 }
10
+ let ( :params ) { { owners : [ 1 , 2 , 3 ] } }
11
+ let ( :response ) do
12
+ {
13
+ id : object_id ,
14
+ result : { owners : [ 1 , 2 , 3 ] }
15
+ }
16
+ end
17
+
18
+ before do
19
+ allow ( subject ) . to receive ( :response ) . and_return ( response )
20
+ end
21
+
22
+ describe '#perform' do
23
+ context 'with valid params' do
24
+ specify do
25
+ expect ( subject . perform ) . to eq response
26
+ end
27
+ end
28
+
29
+ context 'with invalid params' do
30
+ context 'object_id is empty' do
31
+ let ( :object_id ) { nil }
32
+
33
+ specify do
34
+ expect { subject . perform } . to raise_error ( RuntimeError , "Error: object_id integer is required" )
35
+ end
36
+ end
37
+
38
+ context 'params is empty' do
39
+ let ( :params ) { nil }
40
+
41
+ specify do
42
+ expect { subject . perform } . to raise_error ( RuntimeError , "Error: params hash is required" )
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
Original file line number Diff line number Diff line change
1
+ require 'spec_helper'
2
+ require 'shared/base_put_request_shared_examples'
3
+
4
+ RSpec . describe Superset ::Chart ::Put do
5
+ describe 'behaves like a BasePutRequest' do
6
+ it_behaves_like :base_put_request_shared_examples
7
+ end
8
+ end
Original file line number Diff line number Diff line change
1
+ require 'spec_helper'
2
+ require 'shared/base_put_request_shared_examples'
3
+
4
+ RSpec . describe Superset ::Dataset ::Put do
5
+
6
+ describe 'behaves like a BasePutRequest' do
7
+ it_behaves_like :base_put_request_shared_examples
8
+ end
9
+ end
You can’t perform that action at this time.
0 commit comments