power-bi 0.5.1 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 224785a18f8d396ddcbaecad4d5a260cf2c649c7489fff90cc78bfa4e76bfd01
4
- data.tar.gz: 6d02bf193c750f67970649e5d16ed5ec0b43a596cae04086b954e82694f99d24
3
+ metadata.gz: 5a12ddf71e1ea1afad2cd5f4c7b059539cbc23da4a3e19834ad63bd6e62863ea
4
+ data.tar.gz: 4960812cbfdcd0459afb47ff934177a289d5d0726e95e19c7d9f230b235fcbf6
5
5
  SHA512:
6
- metadata.gz: e9bdcd1a4bd26a77fb5dd53c16f9a62a4e6cc62ac0387a4f3bd8b5d2ec6da1f2f3bd17c2a1d1c3088e0e2499cf31d243858cf8f86f6415e34cb2908fb0a482d6
7
- data.tar.gz: 21a80c1eecb83a3a8f42e24713f1283001e5bd69aee88229bcf3bb745cae2dce23434a9a7ea798d3c6fdc2813ba162a986298753bb465fd6bd4b33fa3268a43d
6
+ metadata.gz: b3ca5f092ba2f179e77fdb16fa3f984886d59c4ba10b5d3744038d15c56f5fdf59e37962c9a1fb543b9babcf84eea425a916869431354a480eae99493526f1e1
7
+ data.tar.gz: 02044abfa2f718990f7584405b8ea5a4d6a2314c2aa00ea6465f7ad2da24c863d8294601f526b9fee8914d5f5f5656355be4c168472dc05fa68ca3080427fa74
@@ -36,6 +36,14 @@ module PowerBI
36
36
  true
37
37
  end
38
38
 
39
+ def export_to_file(format: 'PDF')
40
+ @tenant.post("/groups/#{workspace.id}/reports/#{id}/ExportTo") do |req|
41
+ req.body = {
42
+ format: format
43
+ }.to_json
44
+ end
45
+ end
46
+
39
47
  end
40
48
 
41
49
  class ReportArray < Array
@@ -14,17 +14,23 @@ module PowerBI
14
14
  @datasets = DatasetArray.new(@tenant, self)
15
15
  end
16
16
 
17
- def upload_pbix(file, dataset_name)
17
+ def upload_pbix(file, dataset_name, timeout: 30)
18
18
  data = @tenant.post_file("/groups/#{@id}/imports", file, {datasetDisplayName: dataset_name})
19
19
  import_id = data[:id]
20
20
  success = false
21
21
  iterations = 0
22
+ status_history = ''
23
+ old_status = ''
22
24
  while !success
23
25
  sleep 0.1
24
26
  iterations += 1
25
- raise UploadError if iterations > 300 # 30 seconds
26
- status = @tenant.get("/groups/#{@id}/imports/#{import_id}")
27
- success = (status[:importState] == "Succeeded")
27
+ raise UploadError.new("Upload did not succeed after #{timeout} seconds. Status history:#{status_history}") if iterations > (10 * timeout)
28
+ new_status = @tenant.get("/groups/#{@id}/imports/#{import_id}")[:importState].to_s
29
+ success = (new_status == "Succeeded")
30
+ if new_status != old_status
31
+ status_history += "\nStatus change after #{iterations/10.0}s: '#{old_status}' --> '#{new_status}'"
32
+ old_status = new_status
33
+ end
28
34
  end
29
35
  @reports.reload
30
36
  @datasets.reload
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: power-bi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lode Cools
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-27 00:00:00.000000000 Z
11
+ date: 2020-11-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -74,7 +74,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  requirements: []
77
- rubygems_version: 3.0.3
77
+ rubygems_version: 3.1.4
78
78
  signing_key:
79
79
  specification_version: 4
80
80
  summary: Ruby wrapper for the Power BI API