onlyoffice_api 0.10.0 → 0.11.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 +4 -4
- data/lib/teamlab/responce/custom_exceptions.rb +6 -0
- data/lib/teamlab/response.rb +40 -1
- data/lib/teamlab/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4da6935cc3d256a7b5b39d6b02f7a4a038e908cd8a7949c34f89e124da984a9a
|
4
|
+
data.tar.gz: f7baefc1910689ff41da8deaab16c70a8776a1cd40878876993ab072cfbd2c20
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a3e475df99ffaaef22bb7d140d3e18968f735a666142cf6722909402e43c54d5bb26a3efc3db6964434d8499afef36fa449549d248c477c29c9e9d77464b641c
|
7
|
+
data.tar.gz: 036ac1d16df32299bf439f5e04c4e5b4dd5f31d1bbb27d8dca654d98c6a1c3b1c59b176aa650d63b3ab97f8daf050e4a7bbba2fa19964a30f3023129177e39d4
|
data/lib/teamlab/response.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require_relative 'responce/custom_exceptions'
|
4
|
+
|
3
5
|
module Teamlab
|
4
6
|
class Response
|
5
7
|
attr_reader :body, :error, :code, :success
|
@@ -9,7 +11,7 @@ module Teamlab
|
|
9
11
|
@success = @code < 400
|
10
12
|
err_msg = generate_err_msg(http_response) if @code >= 400
|
11
13
|
if @success
|
12
|
-
|
14
|
+
handle_success_responce(http_response)
|
13
15
|
else
|
14
16
|
raise TimeoutError, 'Portal is warming up' if http_response.parsed_response.include?('portal is being warmed')
|
15
17
|
raise "Error #{@code}\n#{err_msg}" if @code >= 400
|
@@ -37,5 +39,42 @@ module Teamlab
|
|
37
39
|
def data
|
38
40
|
@body['response']
|
39
41
|
end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
# Sometime in strange situation, like maybe nginx errors
|
46
|
+
# API requests return not JSON, but html or other data
|
47
|
+
# @param [Teamlab::Responce] responce to check
|
48
|
+
# @return [Nil] is body responce correct and raise exception in any other situation
|
49
|
+
def check_responce_body(responce)
|
50
|
+
return if stream_data_request?(responce)
|
51
|
+
|
52
|
+
JSON.parse(responce.body)
|
53
|
+
rescue JSON::ParserError => e
|
54
|
+
request_info = "#{responce.request.http_method} #{responce.request.uri}"
|
55
|
+
raise NoJsonInResponce, "Request `#{request_info}` responce body is not a json\n "\
|
56
|
+
"Parsing error: \n#{e}\n"
|
57
|
+
end
|
58
|
+
|
59
|
+
# Handle success responce
|
60
|
+
# @param [Teamlab::Responce] responce to handle
|
61
|
+
# @return [nil] if everything is fine or exception
|
62
|
+
def handle_success_responce(responce)
|
63
|
+
check_responce_body(responce)
|
64
|
+
@body = responce.to_hash
|
65
|
+
end
|
66
|
+
|
67
|
+
# Check if request for stream data
|
68
|
+
# Those request has no body, but data stream in responce
|
69
|
+
# @param [Teamlab::Responce] responce to check
|
70
|
+
# @return [Boolean] result of check
|
71
|
+
def stream_data_request?(responce)
|
72
|
+
calendar_ical_request_regexp = %r{.*/calendar/\d*/ical/\S*}
|
73
|
+
uri = responce.request.uri.to_s
|
74
|
+
|
75
|
+
return true if calendar_ical_request_regexp.match?(uri)
|
76
|
+
|
77
|
+
false
|
78
|
+
end
|
40
79
|
end
|
41
80
|
end
|
data/lib/teamlab/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: onlyoffice_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ONLYOFFICE
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2021-
|
14
|
+
date: 2021-06-22 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: httparty
|
@@ -236,6 +236,7 @@ files:
|
|
236
236
|
- lib/teamlab/modules/settings.rb
|
237
237
|
- lib/teamlab/name.rb
|
238
238
|
- lib/teamlab/request.rb
|
239
|
+
- lib/teamlab/responce/custom_exceptions.rb
|
239
240
|
- lib/teamlab/response.rb
|
240
241
|
- lib/teamlab/version.rb
|
241
242
|
homepage: https://github.com/ONLYOFFICE/onlyoffice_api_gem
|