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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b4a7f73673dc9600d2451b6ae0dd1ed5ca8c792f671f1a115405b751610b9077
4
- data.tar.gz: 7765f1a58d5515aebce77a79fdde6e0aad8e8928867e39c45a26ac5321ef7cb9
3
+ metadata.gz: 2242b051913632959c785357a5de12506673ae26c369bdaccb77763edcf5a15b
4
+ data.tar.gz: db0e1cb72dba11f0adc1184338754266dfccfe2eabd4188a23b1a313d236f2bf
5
5
  SHA512:
6
- metadata.gz: 9430a6c2bc2b951442751b3192778a7d73985d6cb3fa0864f5a9529695d20fec13cd4b451d8232f06dfc0a27cc6897acae734eb979c52b63a60d81aa7c5061c6
7
- data.tar.gz: a46dd510d441efffe1b7998e64b5806fba6fee10470dc3c38d78a4be49bd18d48b50ad9d84b630ef0c04895934214821162a46e3bc3888a71c02171623bffdb6
6
+ metadata.gz: '096b5264f6a0c36dc68c5c6179300fc7ca2b7fb9d8806b83929ae34180d0f900b8fb64053a6423b51d9d12b716d685cc580618290f5b80cb9041decaa217af1d'
7
+ data.tar.gz: 1220024efbc8a6bb491099f612b260f010d74bbf5d26bc96367ec676cb1095ecbf3f98194b1449f2563116770f23f5ba9bbac985a0b314ba18f3658ee85b5278
@@ -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
- uri = URI("#{base_uri}#{db_resource}")
72
- conn = curl_method_call(method, uri, data) do |curl|
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
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Dolly
2
- VERSION = "3.1.1"
2
+ VERSION = "3.1.2"
3
3
  end
data/lib/dolly.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require "dolly/version"
2
2
  require "dolly/document"
3
+ require "dolly/bulk_document"
3
4
  require 'dolly/mango_index'
4
5
  require 'railties/railtie' if defined?(Rails)
5
6
 
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.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-05 00:00:00.000000000 Z
11
+ date: 2021-10-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oj