dolly 3.1.1 → 3.1.2
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/dolly/connection.rb +19 -5
- data/lib/dolly/exceptions.rb +12 -0
- data/lib/dolly/version.rb +1 -1
- data/lib/dolly.rb +1 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2242b051913632959c785357a5de12506673ae26c369bdaccb77763edcf5a15b
|
|
4
|
+
data.tar.gz: db0e1cb72dba11f0adc1184338754266dfccfe2eabd4188a23b1a313d236f2bf
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: '096b5264f6a0c36dc68c5c6179300fc7ca2b7fb9d8806b83929ae34180d0f900b8fb64053a6423b51d9d12b716d685cc580618290f5b80cb9041decaa217af1d'
|
|
7
|
+
data.tar.gz: 1220024efbc8a6bb491099f612b260f010d74bbf5d26bc96367ec676cb1095ecbf3f98194b1449f2563116770f23f5ba9bbac985a0b314ba18f3658ee85b5278
|
data/lib/dolly/connection.rb
CHANGED
|
@@ -65,11 +65,12 @@ module Dolly
|
|
|
65
65
|
end
|
|
66
66
|
|
|
67
67
|
def request(method, resource, data = {})
|
|
68
|
-
headers = Dolly::HeaderRequest.new(data&.delete(:headers))
|
|
69
|
-
data&.merge!(data&.delete(:query) || {})
|
|
70
68
|
db_resource = (resource =~ %r{^/}) ? resource : "/#{db_name}/#{resource}"
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
headers = fetch_headers(data)
|
|
70
|
+
body = fetch_body(data)
|
|
71
|
+
uri = URI("#{base_uri}#{db_resource}")
|
|
72
|
+
|
|
73
|
+
conn = curl_method_call(method, uri, body) do |curl|
|
|
73
74
|
if env['username'].present?
|
|
74
75
|
curl.http_auth_types = :basic
|
|
75
76
|
curl.username = env['username']
|
|
@@ -83,6 +84,18 @@ module Dolly
|
|
|
83
84
|
|
|
84
85
|
private
|
|
85
86
|
|
|
87
|
+
def fetch_headers(data)
|
|
88
|
+
return unless data.is_a?(Hash)
|
|
89
|
+
Dolly::HeaderRequest.new(data&.delete(:headers))
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def fetch_body(data)
|
|
93
|
+
return data unless data.is_a?(Hash)
|
|
94
|
+
|
|
95
|
+
data&.delete(:headers)
|
|
96
|
+
data&.merge!(data&.delete(:query) || {})
|
|
97
|
+
end
|
|
98
|
+
|
|
86
99
|
def curl_method_call(method, uri, data, &block)
|
|
87
100
|
return Curl::Easy.http_head(uri.to_s, &block) if method.to_sym == :head
|
|
88
101
|
return Curl.delete(uri.to_s, &block) if method.to_sym == :delete
|
|
@@ -97,7 +110,8 @@ module Dolly
|
|
|
97
110
|
|
|
98
111
|
data = Oj.load(res.body_str, symbol_keys: true)
|
|
99
112
|
return data unless rails?
|
|
100
|
-
data.with_indifferent_access
|
|
113
|
+
return data.with_indifferent_access if data.is_a?(Hash)
|
|
114
|
+
data
|
|
101
115
|
rescue Oj::ParseError
|
|
102
116
|
res.body_str
|
|
103
117
|
end
|
data/lib/dolly/exceptions.rb
CHANGED
|
@@ -25,6 +25,18 @@ module Dolly
|
|
|
25
25
|
end
|
|
26
26
|
end
|
|
27
27
|
|
|
28
|
+
class BulkError < RuntimeError
|
|
29
|
+
def intialize(error:, reason:, obj:)
|
|
30
|
+
@error = error
|
|
31
|
+
@reason = reason
|
|
32
|
+
@obj = obj
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def to_s
|
|
36
|
+
"#{@error} on #{@obj} because #{@reason}."
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
28
40
|
class IndexNotFoundError < RuntimeError; end
|
|
29
41
|
class InvalidConfigFileError < RuntimeError; end
|
|
30
42
|
class InvalidProperty < RuntimeError; end
|
data/lib/dolly/version.rb
CHANGED
data/lib/dolly.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dolly
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.1.
|
|
4
|
+
version: 3.1.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- javierg
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-10-
|
|
11
|
+
date: 2021-10-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: oj
|