dolly 3.1.1 → 3.1.2

Sign up to get free protection for your applications and to get access to all the features.
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