groupdocs 1.5.8 → 1.5.9

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.
Files changed (101) hide show
  1. data/CHANGELOG.md +9 -0
  2. data/examples/api-samples/public/docs/sample01.html +34 -15
  3. data/examples/api-samples/public/docs/sample02.html +36 -15
  4. data/examples/api-samples/public/docs/sample03.html +55 -34
  5. data/examples/api-samples/public/docs/sample04.html +33 -14
  6. data/examples/api-samples/public/docs/sample05.html +51 -33
  7. data/examples/api-samples/public/docs/sample06.html +86 -40
  8. data/examples/api-samples/public/docs/sample07.html +32 -13
  9. data/examples/api-samples/public/docs/sample08.html +39 -20
  10. data/examples/api-samples/public/docs/sample09.html +93 -39
  11. data/examples/api-samples/public/docs/sample10.html +39 -21
  12. data/examples/api-samples/public/docs/sample11.html +133 -88
  13. data/examples/api-samples/public/docs/sample12.html +33 -14
  14. data/examples/api-samples/public/docs/sample13.html +14 -7
  15. data/examples/api-samples/public/docs/sample14.html +37 -18
  16. data/examples/api-samples/public/docs/sample15.html +29 -10
  17. data/examples/api-samples/public/docs/sample16.html +58 -25
  18. data/examples/api-samples/public/docs/sample17.html +71 -38
  19. data/examples/api-samples/public/docs/sample18.html +98 -71
  20. data/examples/api-samples/public/docs/sample19.html +74 -42
  21. data/examples/api-samples/public/docs/sample20.html +39 -21
  22. data/examples/api-samples/public/docs/sample21.html +113 -69
  23. data/examples/api-samples/public/docs/sample22.html +89 -43
  24. data/examples/api-samples/public/docs/sample23.html +50 -32
  25. data/examples/api-samples/public/docs/sample24.html +64 -31
  26. data/examples/api-samples/public/docs/sample25.html +107 -60
  27. data/examples/api-samples/public/docs/sample26.html +29 -10
  28. data/examples/api-samples/public/docs/sample27.html +107 -61
  29. data/examples/api-samples/public/docs/sample28.html +158 -9
  30. data/examples/api-samples/public/docs/sample29.html +13 -8
  31. data/examples/api-samples/public/docs/sample30.html +34 -15
  32. data/examples/api-samples/public/docs/sample31.html +107 -76
  33. data/examples/api-samples/public/docs/sample32.html +104 -40
  34. data/examples/api-samples/public/docs/sample33.html +85 -36
  35. data/examples/api-samples/public/docs/sample34.html +30 -11
  36. data/examples/api-samples/public/docs/sample35.html +90 -27
  37. data/examples/api-samples/public/docs/sample36.html +36 -16
  38. data/examples/api-samples/public/docs/sample37.html +144 -265
  39. data/examples/api-samples/public/docs/sample38.html +113 -64
  40. data/examples/api-samples/public/docs/sample39.html +118 -45
  41. data/examples/api-samples/public/docs/sample40.html +81 -46
  42. data/examples/api-samples/public/docs/sample41.html +562 -90
  43. data/examples/api-samples/public/docs/sample42.html +94 -39
  44. data/examples/api-samples/public/docs/sample43.html +669 -0
  45. data/examples/api-samples/samples/sample01.rb +17 -10
  46. data/examples/api-samples/samples/sample02.rb +21 -12
  47. data/examples/api-samples/samples/sample03.rb +35 -29
  48. data/examples/api-samples/samples/sample04.rb +19 -12
  49. data/examples/api-samples/samples/sample05.rb +24 -17
  50. data/examples/api-samples/samples/sample06.rb +38 -32
  51. data/examples/api-samples/samples/sample07.rb +19 -12
  52. data/examples/api-samples/samples/sample08.rb +22 -15
  53. data/examples/api-samples/samples/sample09.rb +31 -29
  54. data/examples/api-samples/samples/sample10.rb +22 -15
  55. data/examples/api-samples/samples/sample11.rb +78 -81
  56. data/examples/api-samples/samples/sample12.rb +19 -21
  57. data/examples/api-samples/samples/sample13.rb +19 -21
  58. data/examples/api-samples/samples/sample14.rb +18 -12
  59. data/examples/api-samples/samples/sample15.rb +17 -10
  60. data/examples/api-samples/samples/sample16.rb +25 -17
  61. data/examples/api-samples/samples/sample17.rb +31 -23
  62. data/examples/api-samples/samples/sample18.rb +60 -55
  63. data/examples/api-samples/samples/sample19.rb +48 -42
  64. data/examples/api-samples/samples/sample20.rb +20 -13
  65. data/examples/api-samples/samples/sample21.rb +62 -54
  66. data/examples/api-samples/samples/sample22.rb +37 -31
  67. data/examples/api-samples/samples/sample23.rb +24 -17
  68. data/examples/api-samples/samples/sample24.rb +29 -22
  69. data/examples/api-samples/samples/sample25.rb +47 -40
  70. data/examples/api-samples/samples/sample26.rb +16 -9
  71. data/examples/api-samples/samples/sample27.rb +46 -39
  72. data/examples/api-samples/samples/sample28.rb +42 -11
  73. data/examples/api-samples/samples/sample29.rb +13 -8
  74. data/examples/api-samples/samples/sample30.rb +19 -12
  75. data/examples/api-samples/samples/sample31.rb +63 -58
  76. data/examples/api-samples/samples/sample32.rb +45 -42
  77. data/examples/api-samples/samples/sample33.rb +36 -25
  78. data/examples/api-samples/samples/sample34.rb +16 -9
  79. data/examples/api-samples/samples/sample35.rb +66 -53
  80. data/examples/api-samples/samples/sample36.rb +19 -15
  81. data/examples/api-samples/samples/sample37.rb +61 -99
  82. data/examples/api-samples/samples/sample38.rb +51 -43
  83. data/examples/api-samples/samples/sample39.rb +78 -62
  84. data/examples/api-samples/samples/sample40.rb +48 -38
  85. data/examples/api-samples/samples/sample41.rb +189 -67
  86. data/examples/api-samples/samples/sample42.rb +37 -29
  87. data/examples/api-samples/samples/sample43.rb +127 -0
  88. data/examples/api-samples/views/_others_samples.haml +4 -2
  89. data/examples/api-samples/views/index.haml +4 -2
  90. data/examples/api-samples/views/sample11.haml +1 -1
  91. data/examples/api-samples/views/sample28.haml +8 -0
  92. data/examples/api-samples/views/sample31.haml +1 -6
  93. data/examples/api-samples/views/sample39.haml +7 -2
  94. data/examples/api-samples/views/sample41.haml +78 -33
  95. data/examples/api-samples/views/sample42.haml +0 -1
  96. data/examples/api-samples/views/sample43.haml +91 -0
  97. data/lib/groupdocs/api/helpers/access_rights_helper.rb +6 -5
  98. data/lib/groupdocs/api/helpers/url_helper.rb +2 -1
  99. data/lib/groupdocs/document.rb +3 -3
  100. data/lib/groupdocs/version.rb +1 -1
  101. metadata +5 -2
@@ -1,43 +1,41 @@
1
- # GET request
1
+ #GET request
2
2
  get '/sample12' do
3
3
  haml :sample12
4
4
  end
5
5
 
6
- # POST request
6
+ #POST request
7
7
  post '/sample12' do
8
- # Set variables
8
+ #Set variables
9
9
  set :client_id, params[:clientId]
10
10
  set :private_key, params[:privateKey]
11
11
  set :file_id, params[:fileId]
12
12
  set :base_path, params[:basePath]
13
13
 
14
14
  begin
15
- # Check required variables
15
+ #Check required variables
16
16
  raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty? or settings.file_id.empty?
17
17
 
18
- if settings.base_path.empty? then settings.base_path = 'https://api.groupdocs.com' end
18
+ #Prepare base path
19
+ if settings.base_path.empty?
20
+ base_path = 'https://api.groupdocs.com'
21
+ elsif settings.base_path.match('/v2.0')
22
+ base_path = settings.base_path.split('/v2.0')[0]
23
+ else
24
+ base_path = settings.base_path
25
+ end
19
26
 
20
- # Configure your access to API server
27
+ #Configure your access to API server
21
28
  GroupDocs.configure do |groupdocs|
22
29
  groupdocs.client_id = settings.client_id
23
30
  groupdocs.private_key = settings.private_key
24
- # Optionally specify API server and version
25
- groupdocs.api_server = settings.base_path # default is 'https://api.groupdocs.com'
26
- end
27
-
28
- # Make a request to API using client_id and private_key
29
- files_list = GroupDocs::Storage::Folder.list!('/', {})
30
- document = ''
31
-
32
- # Get document by file ID
33
- files_list.each do |element|
34
- if element.respond_to?('guid') == true and element.guid == settings.file_id
35
- document = element
36
- end
31
+ #Optionally specify API server and version
32
+ groupdocs.api_server = base_path # default is 'https://api.groupdocs.com'
37
33
  end
38
34
 
35
+ #Create document object
36
+ document = GroupDocs::Storage::File.new(guid: settings.file_id)
39
37
  unless document.instance_of? String
40
- # Get list of annotations
38
+ #Get list of annotations
41
39
  annotations = document.to_document.annotations!()
42
40
  end
43
41
 
@@ -45,6 +43,6 @@ post '/sample12' do
45
43
  err = e.message
46
44
  end
47
45
 
48
- # Set variables for template
46
+ #Set variables for template
49
47
  haml :sample12, :locals => {:clientId => settings.client_id, :privateKey => settings.private_key, :annotations => annotations, :fileId => settings.file_id, :err => err}
50
48
  end
@@ -1,11 +1,11 @@
1
- # GET request
1
+ #GET request
2
2
  get '/sample13' do
3
3
  haml :sample13
4
4
  end
5
5
 
6
- # POST request
6
+ #POST request
7
7
  post '/sample13' do
8
- # Set variables
8
+ #Set variables
9
9
  set :client_id, params[:clientId]
10
10
  set :private_key, params[:privateKey]
11
11
  set :file_id, params[:fileId]
@@ -13,32 +13,30 @@ post '/sample13' do
13
13
  set :base_path, params[:basePath]
14
14
 
15
15
  begin
16
- # Check required variables
16
+ #Check required variables
17
17
  raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty? or settings.file_id.empty? or settings.email.empty?
18
18
 
19
- if settings.base_path.empty? then settings.base_path = 'https://api.groupdocs.com' end
19
+ #Prepare base path
20
+ if settings.base_path.empty?
21
+ base_path = 'https://api.groupdocs.com'
22
+ elsif settings.base_path.match('/v2.0')
23
+ base_path = settings.base_path.split('/v2.0')[0]
24
+ else
25
+ base_path = settings.base_path
26
+ end
20
27
 
21
- # Configure your access to API server
28
+ #Configure your access to API server
22
29
  GroupDocs.configure do |groupdocs|
23
30
  groupdocs.client_id = settings.client_id
24
31
  groupdocs.private_key = settings.private_key
25
- # Optionally specify API server and version
26
- groupdocs.api_server = settings.base_path # default is 'https://api.groupdocs.com'
27
- end
28
-
29
- # Make a request to API using client_id and private_key
30
- files_list = GroupDocs::Storage::Folder.list!('/', {})
31
- document = ''
32
-
33
- # Get document by file ID
34
- files_list.each do |element|
35
- if element.respond_to?('guid') == true and element.guid == settings.file_id
36
- document = element
37
- end
32
+ #Optionally specify API server and version
33
+ groupdocs.api_server = base_path # default is 'https://api.groupdocs.com'
38
34
  end
39
35
 
36
+ #Create document object
37
+ document = GroupDocs::Storage::File.new(guid: settings.file_id)
40
38
  unless document.instance_of? String
41
- # Add collaborator to doc with annotations
39
+ #Add collaborator to doc with annotations
42
40
  result = document.to_document.set_collaborators!(settings.email.split(' '), 1)
43
41
  end
44
42
 
@@ -47,6 +45,6 @@ post '/sample13' do
47
45
  err = e.message
48
46
  end
49
47
 
50
- # set variables for template
48
+ #Set variables for template
51
49
  haml :sample13, :locals => {:clientId => settings.client_id, :privateKey => settings.private_key, :fileId => settings.file_id, :email => settings.email, :result => result, :err => err}
52
50
  end
@@ -1,31 +1,38 @@
1
- # GET request
1
+ #GET request
2
2
  get '/sample14' do
3
3
  haml :sample14
4
4
  end
5
5
 
6
- # POST request
6
+ #POST request
7
7
  post '/sample14' do
8
- # set variables
8
+ #Set variables
9
9
  set :client_id, params[:clientId]
10
10
  set :private_key, params[:privateKey]
11
11
  set :folder, params[:path]
12
12
  set :base_path, params[:basePath]
13
13
 
14
14
  begin
15
- # check required variables
15
+ #Check required variables
16
16
  raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty? or settings.folder.empty?
17
17
 
18
- if settings.base_path.empty? then settings.base_path = 'https://api.groupdocs.com' end
18
+ #Prepare base path
19
+ if settings.base_path.empty?
20
+ base_path = 'https://api.groupdocs.com'
21
+ elsif settings.base_path.match('/v2.0')
22
+ base_path = settings.base_path.split('/v2.0')[0]
23
+ else
24
+ base_path = settings.base_path
25
+ end
19
26
 
20
- # Configure your access to API server
27
+ #Configure your access to API server
21
28
  GroupDocs.configure do |groupdocs|
22
29
  groupdocs.client_id = settings.client_id
23
30
  groupdocs.private_key = settings.private_key
24
- # Optionally specify API server and version
25
- groupdocs.api_server = settings.base_path # default is 'https://api.groupdocs.com'
31
+ #Optionally specify API server and version
32
+ groupdocs.api_server = base_path # default is 'https://api.groupdocs.com'
26
33
  end
27
34
  folder = nil
28
- # make a request to API using client_id and private_key
35
+ #Make a request to API using client_id and private_key
29
36
  files_list = GroupDocs::Storage::Folder.list!()
30
37
 
31
38
  files_list.map do |e|
@@ -34,14 +41,13 @@ post '/sample14' do
34
41
  end
35
42
  end
36
43
 
37
-
38
- # get list of shares for a folder
44
+ #Get list of shares for a folder
39
45
  shares = folder.sharers!()
40
46
 
41
47
  rescue Exception => e
42
48
  err = e.message
43
49
  end
44
50
 
45
- # set variables for template
51
+ #Set variables for template
46
52
  haml :sample14, :locals => {:userId => settings.client_id, :privateKey => settings.private_key, :folder => settings.folder, :shares => shares, :err => err}
47
53
  end
@@ -1,30 +1,37 @@
1
- # GET request
1
+ #GET request
2
2
  get '/sample15' do
3
3
  haml :sample15
4
4
  end
5
5
 
6
- # POST request
6
+ #POST request
7
7
  post '/sample15' do
8
- # Set variables
8
+ #Set variables
9
9
  set :client_id, params[:clientId]
10
10
  set :private_key, params[:privateKey]
11
11
  set :base_path, params[:basePath]
12
12
 
13
13
  begin
14
- # Check required variables
14
+ #Check required variables
15
15
  raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty?
16
16
 
17
- if settings.base_path.empty? then settings.base_path = 'https://api.groupdocs.com' end
17
+ #Prepare base path
18
+ if settings.base_path.empty?
19
+ base_path = 'https://api.groupdocs.com'
20
+ elsif settings.base_path.match('/v2.0')
21
+ base_path = settings.base_path.split('/v2.0')[0]
22
+ else
23
+ base_path = settings.base_path
24
+ end
18
25
 
19
- # Configure your access to API server
26
+ #Configure your access to API server
20
27
  GroupDocs.configure do |groupdocs|
21
28
  groupdocs.client_id = settings.client_id
22
29
  groupdocs.private_key = settings.private_key
23
- # Optionally specify API server and version
24
- groupdocs.api_server = settings.base_path # default is 'https://api.groupdocs.com'
30
+ #Optionally specify API server and version
31
+ groupdocs.api_server = base_path # default is 'https://api.groupdocs.com'
25
32
  end
26
33
 
27
- # Check the number of document's views. Make a request to API using client_id and private_key
34
+ #Check the number of document's views. Make a request to API using client_id and private_key
28
35
  views = GroupDocs::Document.views!({})
29
36
  total = views.count()
30
37
 
@@ -32,6 +39,6 @@ post '/sample15' do
32
39
  err = e.message
33
40
  end
34
41
 
35
- # Set variables for template
42
+ #Set variables for template
36
43
  haml :sample15, :locals => {:userId => settings.client_id, :privateKey => settings.private_key, :total => total, :err => err}
37
44
  end
@@ -1,43 +1,51 @@
1
- # GET request
1
+ #GET request
2
2
  get '/sample16' do
3
3
  haml :sample16
4
4
  end
5
5
 
6
- # POST request
6
+ #POST request
7
7
  post '/sample16' do
8
- # Set variables
8
+ #Set variables
9
9
  set :fileId, params[:fileId]
10
10
  set :base_path, params[:basePath]
11
11
 
12
12
  begin
13
- # Check required variables
13
+ #Check required variables
14
14
  raise 'Please enter all required parameters' if settings.fileId.empty?
15
15
 
16
- if settings.base_path.empty? then settings.base_path = 'https://api.groupdocs.com' end
16
+ #Prepare base path
17
+ if settings.base_path.empty?
18
+ base_path = 'https://api.groupdocs.com'
19
+ elsif settings.base_path.match('/v2.0')
20
+ base_path = settings.base_path.split('/v2.0')[0]
21
+ else
22
+ base_path = settings.base_path
23
+ end
17
24
 
18
- # Configure your access to API server
25
+ #Configure your access to API server
19
26
  GroupDocs.configure do |groupdocs|
20
27
  groupdocs.client_id = settings.client_id
21
28
  groupdocs.private_key = settings.private_key
22
- # Optionally specify API server and version
23
- groupdocs.api_server = settings.base_path # default is 'https://api.groupdocs.com'
29
+ #Optionally specify API server and version
30
+ groupdocs.api_server = base_path # default is 'https://api.groupdocs.com'
24
31
  end
25
32
 
26
- #Get url from request
33
+ #Prepare to sign url
34
+ iframe = "/assembly2/questionnaire-assembly/#{settings.fileId}"
35
+ # Construct result string
36
+ url = GroupDocs::Api::Request.new(:path => iframe).prepare_and_sign_url
37
+ #Generate iframe URL
27
38
  case settings.base_path
28
-
29
39
  when 'https://stage-api-groupdocs.dynabic.com'
30
- url = "http://stage-apps-groupdocs.dynabic.com/assembly2/questionnaire-assembly/#{settings.fileId}"
40
+ iframe = "https://stage-api-groupdocs.dynabic.com#{url}"
31
41
  when 'https://dev-api-groupdocs.dynabic.com'
32
- url = "http://dev-apps-groupdocs.dynabic.com/assembly2/questionnaire-assembly/#{settings.fileId}"
42
+ iframe = "https://dev-apps.groupdocs.com#{url}"
33
43
  else
34
- url = "https://apps.groupdocs.com/assembly2/questionnaire-assembly/#{settings.fileId}"
44
+ iframe = "https://apps.groupdocs.com#{url}"
35
45
  end
36
46
 
37
- # Add the signature to the url request
38
- iframe = GroupDocs::Api::Request.new(:path => url).prepare_and_sign_url
39
- # Construct result iframe
40
- iframe = "<iframe src='#{iframe}' frameborder='0' width='100%' height='600'></iframe>"
47
+ #Make iframe
48
+ iframe = "<iframe id='downloadframe' src='#{iframe}' width='800' height='1000'></iframe>"
41
49
 
42
50
  rescue Exception => e
43
51
  err = e.message
@@ -1,57 +1,65 @@
1
- # GET request
1
+ #GET request
2
2
  get '/sample17' do
3
3
  haml :sample17
4
4
  end
5
5
 
6
- # POST request
6
+ #POST request
7
7
  post '/sample17' do
8
- # set variables
8
+ #Set variables
9
9
  set :client_id, params[:clientId]
10
10
  set :private_key, params[:privateKey]
11
11
  set :file, params[:file]
12
12
  set :base_path, params[:basePath]
13
13
 
14
14
  begin
15
- # check required variables
15
+ #Check required variables
16
16
  raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty? or settings.file.nil?
17
17
 
18
- if settings.base_path.empty? then settings.base_path = 'https://api.groupdocs.com' end
18
+ #Prepare base path
19
+ if settings.base_path.empty?
20
+ base_path = 'https://api.groupdocs.com'
21
+ elsif settings.base_path.match('/v2.0')
22
+ base_path = settings.base_path.split('/v2.0')[0]
23
+ else
24
+ base_path = settings.base_path
25
+ end
19
26
 
20
- # Configure your access to API server
27
+ #Configure your access to API server
21
28
  GroupDocs.configure do |groupdocs|
22
29
  groupdocs.client_id = settings.client_id
23
30
  groupdocs.private_key = settings.private_key
24
- # Optionally specify API server and version
25
- groupdocs.api_server = settings.base_path # default is 'https://api.groupdocs.com'
31
+ #Optionally specify API server and version
32
+ groupdocs.api_server = base_path # default is 'https://api.groupdocs.com'
26
33
  end
27
34
 
28
- # construct path
35
+ #Construct path
29
36
  filepath = "#{Dir.tmpdir}/#{params[:file][:filename]}"
30
- # open file
37
+ #Open file
31
38
  File.open(filepath, 'wb') { |f| f.write(params[:file][:tempfile].read) }
32
- # upload file
39
+ #Upload file
33
40
  file = GroupDocs::Storage::File.upload!(filepath, {})
34
- # compress file
41
+ #Compress file
35
42
  file.compress!()
36
43
 
37
- # construct result messages
44
+ #Construct result messages
38
45
  massage = "<p>Archive created and saved successfully. Here you can see your <strong>#{params[:file][:filename]}</strong> file in the GroupDocs Embedded Viewer.</p>"
39
46
 
40
- #Get url from request
41
- case settings.base_path
42
-
47
+ #Prepare to sign url
48
+ iframe = "/document-viewer/embed/#{file.guid}"
49
+ # Construct result string
50
+ url = GroupDocs::Api::Request.new(:path => iframe).prepare_and_sign_url
51
+ #Generate iframe URL
52
+ case base_path
43
53
  when 'https://stage-api-groupdocs.dynabic.com'
44
- url = "http://stage-apps-groupdocs.dynabic.com/document-viewer/embed/#{file.guid}"
54
+ iframe = "https://stage-api-groupdocs.dynabic.com#{url}"
45
55
  when 'https://dev-api-groupdocs.dynabic.com'
46
- url = "http://dev-apps-groupdocs.dynabic.com/document-viewer/embed/#{file.guid}"
56
+ iframe = "https://dev-apps.groupdocs.com#{url}"
47
57
  else
48
- url = "https://apps.groupdocs.com/document-viewer/embed/#{file.guid}"
58
+ iframe = "https://apps.groupdocs.com#{url}"
49
59
  end
50
60
 
51
- # Add the signature to the url request
52
- iframe = GroupDocs::Api::Request.new(:path => url).prepare_and_sign_url
53
- # Construct result iframe
54
- iframe = "<iframe src='#{iframe}' frameborder='0' width='100%' height='600'></iframe>"
61
+ #Make iframe
62
+ iframe = "<iframe id='downloadframe' src='#{iframe}' width='800' height='1000'></iframe>"
55
63
 
56
64
  rescue Exception => e
57
65
  err = e.message
@@ -1,14 +1,14 @@
1
- # GET request
1
+ #GET request
2
2
  get '/sample18' do
3
3
  haml :sample18
4
4
  end
5
5
 
6
- # POST request
6
+ #POST request
7
7
  post '/sample18/convert_callback' do
8
- # Set download path
8
+ #Set download path
9
9
  downloads_path = "#{File.dirname(__FILE__)}/../public/downloads"
10
10
 
11
- # Get callback request
11
+ #Get callback request
12
12
  data = JSON.parse(request.body.read)
13
13
  begin
14
14
  raise 'Empty params!' if data.empty?
@@ -16,14 +16,14 @@ post '/sample18/convert_callback' do
16
16
  client_id = nil
17
17
  private_key = nil
18
18
 
19
- # Get value of SourceId
19
+ #Get value of SourceId
20
20
  data.each do |key, value|
21
21
  if key == 'SourceId'
22
22
  source_id = value
23
23
  end
24
24
  end
25
25
 
26
- # Get private key and client_id from file user_info.txt
26
+ #Get private key and client_id from file user_info.txt
27
27
  if File.exist?("#{File.dirname(__FILE__)}/../public/user_info.txt")
28
28
  contents = File.read("#{File.dirname(__FILE__)}/../public/user_info.txt")
29
29
  contents = contents.split(' ')
@@ -31,13 +31,13 @@ post '/sample18/convert_callback' do
31
31
  private_key = contents.last
32
32
  end
33
33
 
34
- # Create Job instance
34
+ #Create Job instance
35
35
  job = GroupDocs::Job.new({:id => source_id})
36
36
 
37
- # Get document by job id
37
+ #Get document by job id
38
38
  documents = job.documents!({:client_id => client_id, :private_key => private_key})
39
39
 
40
- # Download converted file
40
+ #Download converted file
41
41
  documents[:inputs].first.outputs.first.download!(downloads_path, {:client_id => client_id, :private_key => private_key})
42
42
 
43
43
  rescue Exception => e
@@ -46,15 +46,15 @@ post '/sample18/convert_callback' do
46
46
  end
47
47
 
48
48
 
49
- # GET request
49
+ #GET request
50
50
  get '/sample18/check' do
51
51
 
52
- # Check is there download directory
52
+ #Check is there download directory
53
53
  unless File.directory?("#{File.dirname(__FILE__)}/../public/downloads")
54
54
  return 'Directory was not found.'
55
55
  end
56
56
 
57
- # Get file name from download directory
57
+ #Get file name from download directory
58
58
  name = nil
59
59
  Dir.entries("#{File.dirname(__FILE__)}/../public/downloads").each do |file|
60
60
  name = file if file != '.' && file != '..'
@@ -63,16 +63,16 @@ get '/sample18/check' do
63
63
  name
64
64
  end
65
65
 
66
- # GET request
66
+ #GET request
67
67
  get '/sample18/downloads/:filename' do |filename|
68
68
  # Send file with header to download it
69
69
  send_file "#{File.dirname(__FILE__)}/../public/downloads/#{filename}", :filename => filename, :type => 'Application/octet-stream'
70
70
  end
71
71
 
72
72
 
73
- # POST request
73
+ #POST request
74
74
  post '/sample18' do
75
- # set variables
75
+ #Set variables
76
76
  set :client_id, params[:clientId]
77
77
  set :private_key, params[:privateKey]
78
78
  set :source, params[:source]
@@ -82,10 +82,10 @@ post '/sample18' do
82
82
  set :callback, params[:callback]
83
83
  set :base_path, params[:basePath]
84
84
 
85
- # Set download path
85
+ #Set download path
86
86
  downloads_path = "#{File.dirname(__FILE__)}/../public/downloads"
87
87
 
88
- # Remove all files from download directory or create folder if it not there
88
+ #Remove all files from download directory or create folder if it not there
89
89
  if File.directory?(downloads_path)
90
90
  Dir.foreach(downloads_path) { |f| fn = File.join(downloads_path, f); File.delete(fn) if f != '.' && f != '..' }
91
91
  else
@@ -93,25 +93,30 @@ post '/sample18' do
93
93
  end
94
94
 
95
95
  begin
96
- # check required variables
96
+ #Check required variables
97
97
  raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty?
98
98
 
99
- if settings.base_path.empty? then
100
- settings.base_path = 'https://api.groupdocs.com'
99
+ #Prepare base path
100
+ if settings.base_path.empty?
101
+ base_path = 'https://api.groupdocs.com'
102
+ elsif settings.base_path.match('/v2.0')
103
+ base_path = settings.base_path.split('/v2.0')[0]
104
+ else
105
+ base_path = settings.base_path
101
106
  end
102
107
 
103
- # Configure your access to API server
108
+ #Configure your access to API server
104
109
  GroupDocs.configure do |groupdocs|
105
110
  groupdocs.client_id = settings.client_id
106
111
  groupdocs.private_key = settings.private_key
107
- # Optionally specify API server and version
108
- groupdocs.api_server = settings.base_path # default is 'https://api.groupdocs.com'
112
+ #Optionally specify API server and version
113
+ groupdocs.api_server = base_path # default is 'https://api.groupdocs.com'
109
114
  end
110
115
 
111
- # Write client and private key to the file for callback job
116
+ #Write client and private key to the file for callback job
112
117
  if settings.callback[0]
113
118
  out_file = File.new("#{File.dirname(__FILE__)}/../public/user_info.txt", 'w')
114
- # white space is required
119
+ #White space is required
115
120
  out_file.write("#{settings.client_id} ")
116
121
  out_file.write("#{settings.private_key}")
117
122
  out_file.close
@@ -119,67 +124,67 @@ post '/sample18' do
119
124
 
120
125
  file = nil
121
126
 
122
- # get document by file GUID
127
+ #Get document by file GUID
123
128
  case settings.source
124
129
  when 'guid'
125
- # Create instance of File
130
+ #Create instance of File
126
131
  file = GroupDocs::Storage::File.new({:guid => settings.file_id})
127
132
  when 'local'
128
- # construct path
133
+ #Construct path
129
134
  file_path = "#{Dir.tmpdir}/#{params[:file][:filename]}"
130
- # open file
135
+ #Open file
131
136
  File.open(file_path, 'wb') { |f| f.write(params[:file][:tempfile].read) }
132
- # make a request to API using client_id and private_key
137
+ #Make a request to API using client_id and private_key
133
138
  file = GroupDocs::Storage::File.upload!(file_path, {})
134
139
  when 'url'
135
- # Upload file from defined url
140
+ #Upload file from defined url
136
141
  file = GroupDocs::Storage::File.upload_web!(settings.url)
137
142
  else
138
143
  raise 'Wrong GUID source.'
139
144
  end
140
145
 
141
- # Raise exception if something went wrong
146
+ #Raise exception if something went wrong
142
147
  raise 'No such file' unless file.is_a?(GroupDocs::Storage::File)
143
148
 
144
- # Make document from file
149
+ #Make document from file
145
150
  document = file.to_document
146
- # convert document
151
+ #Convert document
147
152
  convert = document.convert!(settings.convert_type, {:callback => settings.callback})
148
- # waite 10 seconds for while file converting
149
- sleep(10)
153
+ #Waite 15 seconds for while file converting
154
+ for i in 1..5
155
+ i+=1
156
+ sleep(2)
157
+ if GroupDocs::Job.get!(convert.id).status.to_s == 'archived' then break end
158
+ end
150
159
 
151
- # Get array of changes in document from job
160
+
161
+ #Get array of changes in document from job
152
162
  original_document = convert.documents!()
153
163
 
154
- # Get converted document GUID
164
+ #Get converted document GUID
155
165
  guid = original_document[:inputs].first.outputs.first.guid
156
166
 
157
- #Get url from request
158
- case settings.base_path
159
-
167
+ #Prepare to sign url
168
+ iframe = "/document-viewer/embed/#{guid}"
169
+ # Construct result string
170
+ url = GroupDocs::Api::Request.new(:path => iframe).prepare_and_sign_url
171
+ #Generate iframe URL
172
+ case base_path
160
173
  when 'https://stage-api-groupdocs.dynabic.com'
161
- url = "http://stage-apps-groupdocs.dynabic.com/document-viewer/embed/#{guid}"
174
+ iframe = "https://stage-api-groupdocs.dynabic.com#{url}"
162
175
  when 'https://dev-api-groupdocs.dynabic.com'
163
- url = "http://dev-apps-groupdocs.dynabic.com/document-viewer/embed/#{guid}"
176
+ iframe = "https://dev-apps.groupdocs.com#{url}"
164
177
  else
165
- url = "https://apps.groupdocs.com/document-viewer/embed/#{guid}"
178
+ iframe = "https://apps.groupdocs.com#{url}"
166
179
  end
167
180
 
168
-
169
- # Set iframe with document GUID or raise an error
170
- if guid
171
-
172
- # Add the signature to url request
173
- iframe = GroupDocs::Api::Request.new(:path => url).prepare_and_sign_url
174
- iframe = "<iframe width='100%' height='600' frameborder='0' src='#{iframe}'></iframe>"
175
- else
176
- raise 'File was not converted'
177
- end
181
+ #Make iframe
182
+ iframe = "<iframe id='downloadframe' src='#{iframe}' width='800' height='1000'></iframe>"
178
183
 
179
184
  rescue Exception => e
180
185
  err = e.message
181
186
  end
182
187
 
183
- # set variables for template
188
+ #Set variables for template
184
189
  haml :sample18, :locals => {:userId => settings.client_id, :privateKey => settings.private_key, :callback => settings.callback, :fileId => file, :converted => guid, :iframe => iframe, :err => err}
185
190
  end