onlyoffice_documentserver_conversion_helper 0.4.0 → 0.5.0

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: 2052d02f45954ff45a8a5d222d3387e2492b6f81b7790d27a0a270d1ebde0700
4
- data.tar.gz: 112a1889a8471d5fcc1d90dd726a5fce1d4b68c976b2e72c3d97638b9a2aade9
3
+ metadata.gz: e61195de2597796b8ec3e2e69262e4fc8f6f0661c349c1e1ec54ea19e11c5999
4
+ data.tar.gz: 7ddd137983f8365ace8d38cfb071fdb270dafa9e00da98ba27a1ac4c009cfb2b
5
5
  SHA512:
6
- metadata.gz: 6f06371b23c50fc660a9aa4ee76b82cfa7e6513d62d61491320115fa566ba20950f7bdd388fa956fdf52de1c8c6b4917b060569d03ea91079c3779177341722f
7
- data.tar.gz: 0eeee137a054d173b5fa083990e5a06aa1db09e33684353f4e050557db5d50722a7c1047c523ac82e3baeaa29475c5d8448df07b3809b25f3838a0b7085020d4
6
+ metadata.gz: 594b183a8df277b5fbf9fec7530bc5852b272bda90facf702d5f796c121cdf58c6e49fd575d63cab508a6f0539f31883e358ee5d1ec98b8f24ef6e790d7b1948
7
+ data.tar.gz: 14987d0620cc3fd31aec3e6e647bb7d4b5318e7a149804c0816e35b08cd590b88109405fdfb5ea42b50a559e0fe4cd0b1f920cbdad0acd0df85cc11543f18979
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OnlyofficeDocumentserverConversionHelper
4
+ # Class for unknown convert format
5
+ class UnknownConvertFormatError < StandardError; end
6
+ end
@@ -4,6 +4,6 @@ module OnlyofficeDocumentserverConversionHelper
4
4
  # This module holds the OnlyofficeDocumentserverConversionHelper gem version
5
5
  module Version
6
6
  # @return [String] version of gem
7
- STRING = '0.4.0'
7
+ STRING = '0.5.0'
8
8
  end
9
9
  end
@@ -1,17 +1,27 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Class for parse Xml responce
4
- class XmlResponceParser
5
- def initialize(string_with_xml, file_format)
6
- @string_with_xml = string_with_xml
7
- @file_format = file_format
8
- end
3
+ module OnlyofficeDocumentserverConversionHelper
4
+ # Class for parse Xml responce
5
+ class XmlResponceParser
6
+ def initialize(string_with_xml, file_format, result_in_zip: false)
7
+ @string_with_xml = string_with_xml
8
+ @file_format = file_format
9
+ @result_in_zip = result_in_zip
10
+ end
11
+
12
+ # @return [String] output file format
13
+ def file_format
14
+ return 'zip' if @result_in_zip
15
+
16
+ @file_format
17
+ end
9
18
 
10
- # Method parses server response
11
- # returning url with unescape HTML
12
- # @return [String] URL
13
- def result_url
14
- res_result = /(http|https).*\.(#{@file_format})/.match(@string_with_xml)
15
- CGI.unescapeHTML(res_result.to_s)
19
+ # Method parses server response
20
+ # returning url with unescape HTML
21
+ # @return [String] URL
22
+ def result_url
23
+ res_result = /(http|https).*\.(#{file_format})/.match(@string_with_xml)
24
+ CGI.unescapeHTML(res_result.to_s)
25
+ end
16
26
  end
17
27
  end
@@ -4,6 +4,7 @@ require 'jwt'
4
4
  require 'net/http'
5
5
  require 'securerandom'
6
6
  require 'timeout'
7
+ require_relative 'onlyoffice_documentserver_conversion_helper/exceptions'
7
8
  require_relative 'onlyoffice_documentserver_conversion_helper/xml_responce_parser'
8
9
  require_relative 'onlyoffice_documentserver_conversion_helper/version'
9
10
 
@@ -46,11 +47,14 @@ module OnlyofficeDocumentserverConversionHelper
46
47
  end
47
48
 
48
49
  # Auto detect output file format
50
+ # @raise [UnknownConvertFormatError] if file format is not known
49
51
  # @return [String] result format
50
52
  def output_file_type_auto
51
53
  return 'docx' if DOCUMENT_EXTENSIONS.include?(@input_filetype.upcase)
52
54
  return 'xlsx' if SPREADSHEET_EXTENSIONS.include?(@input_filetype.upcase)
53
55
  return 'pptx' if PRESENTATION_EXTENSIONS.include?(@input_filetype.upcase)
56
+
57
+ raise UnknownConvertFormatError, "Unknown convert auto format: #{@input_filetype}"
54
58
  end
55
59
 
56
60
  # @return [String] random generated key
@@ -79,16 +83,6 @@ module OnlyofficeDocumentserverConversionHelper
79
83
  params
80
84
  end
81
85
 
82
- # @return [String] with url to result file
83
- # @param [String] data is a response body
84
- # @param [String] file_format is a format of result file
85
- # Method will get link from response body.
86
- # Link start from 'https', and end from result file format
87
- def get_url_from_responce(data, file_format)
88
- res_result = /(http|https).*(#{file_format})/.match(data)
89
- CGI.unescapeHTML(res_result.to_s)
90
- end
91
-
92
86
  # Add jwt data to request
93
87
  # @param [Net::HTTP::Post] request to add data
94
88
  # @return [Net::HTTP::Post] request with JWT
@@ -109,7 +103,7 @@ module OnlyofficeDocumentserverConversionHelper
109
103
  add_jwt_data(req)
110
104
  http = Net::HTTP.new(uri.host, uri.port)
111
105
  http.read_timeout = @timeout
112
- http.use_ssl = true if uri.scheme == 'https'
106
+ http.use_ssl = (uri.scheme == 'https')
113
107
  send_request(http, req)
114
108
  end
115
109
 
@@ -129,8 +123,8 @@ module OnlyofficeDocumentserverConversionHelper
129
123
 
130
124
  # @return [Hash] with usl for download file
131
125
  # after conversion and response data
132
- # @param [Hash] args collect all parameters of request
133
- # OR [String] if you not need to use advenced params
126
+ # @param [Hash, Srting] args collect all parameters of request
127
+ # OR string if you not need to use advenced params
134
128
  # and want to set all etc params automaticly.
135
129
  # All args, except of :url and if it is [Hash],
136
130
  # will be attache in end of request
@@ -148,8 +142,23 @@ module OnlyofficeDocumentserverConversionHelper
148
142
  @input_filetype = File.extname(@file_url).delete('.')
149
143
  advanced_params = autocomplete_missing_params(args)
150
144
  data = request(convert_url, advanced_params)
151
- url = XmlResponceParser.new(data, advanced_params[:outputtype]).result_url
145
+ url = XmlResponceParser.new(data,
146
+ advanced_params[:outputtype],
147
+ result_in_zip: result_in_zip?(advanced_params)).result_url
152
148
  { url: url, data: data }
153
149
  end
150
+
151
+ private
152
+
153
+ # Will be result of convert in zip?
154
+ # @param [Hash] params with options
155
+ # @return [Boolean]
156
+ def result_in_zip?(params)
157
+ return false unless params.key?(:thumbnail)
158
+ return false unless params[:thumbnail].key?(:first)
159
+ return true unless params[:thumbnail][:first]
160
+
161
+ false
162
+ end
154
163
  end
155
164
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: onlyoffice_documentserver_conversion_helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ONLYOFFICE
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2022-03-09 00:00:00.000000000 Z
13
+ date: 2022-03-30 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: jwt
@@ -125,19 +125,19 @@ dependencies:
125
125
  - !ruby/object:Gem::Version
126
126
  version: '2'
127
127
  - !ruby/object:Gem::Dependency
128
- name: simplecov-cobertura
128
+ name: simplecov
129
129
  requirement: !ruby/object:Gem::Requirement
130
130
  requirements:
131
131
  - - "~>"
132
132
  - !ruby/object:Gem::Version
133
- version: '2'
133
+ version: '0'
134
134
  type: :development
135
135
  prerelease: false
136
136
  version_requirements: !ruby/object:Gem::Requirement
137
137
  requirements:
138
138
  - - "~>"
139
139
  - !ruby/object:Gem::Version
140
- version: '2'
140
+ version: '0'
141
141
  - !ruby/object:Gem::Dependency
142
142
  name: yard
143
143
  requirement: !ruby/object:Gem::Requirement
@@ -166,6 +166,7 @@ extensions: []
166
166
  extra_rdoc_files: []
167
167
  files:
168
168
  - lib/onlyoffice_documentserver_conversion_helper.rb
169
+ - lib/onlyoffice_documentserver_conversion_helper/exceptions.rb
169
170
  - lib/onlyoffice_documentserver_conversion_helper/name.rb
170
171
  - lib/onlyoffice_documentserver_conversion_helper/version.rb
171
172
  - lib/onlyoffice_documentserver_conversion_helper/xml_responce_parser.rb
@@ -194,7 +195,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
194
195
  - !ruby/object:Gem::Version
195
196
  version: '0'
196
197
  requirements: []
197
- rubygems_version: 3.3.7
198
+ rubygems_version: 3.3.10
198
199
  signing_key:
199
200
  specification_version: 4
200
201
  summary: onlyoffice_documentserver_conversion_helper Gem