json_api_client 1.7.0 → 1.8.0

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
  SHA1:
3
- metadata.gz: b1eaf54d769a3c0308319a18629440a2fea1fcdc
4
- data.tar.gz: da232e4dfd3b4e13a45c69c22b993fa9c08f209b
3
+ metadata.gz: ed66b4d235079e662896ac7076427c21c716706c
4
+ data.tar.gz: c70ff83b6e97b0671d584e68fc6958b41bd75246
5
5
  SHA512:
6
- metadata.gz: 9737c509ddc0c91b6bf759e2b891acee5de9fe7c99e83f88bf4b1f8deef40b648dc166a03bad952ebcac0aada03a39aafcc538f05adea2473ec28a25bf54f2a2
7
- data.tar.gz: b5e197b2d9164b5496cb0df20d248660d6191d5186403ea0da9f6df234bd2d9275974214000c5a730d07dac0ecfd0a40323d0727e95d8ae77f37d4347919f69d
6
+ metadata.gz: 57f163489d42ceff20dc4ab15de433c5d30af28daa0332d9bef2a990dc398de3b92d9f8b2d1e6b947943d88f8b031b533bb55fcfb406f79fde020d1b1517e42d
7
+ data.tar.gz: 5b431c9c1e10f1197bff2558d776f92ff9ecec69cb484a6c603e07d47ef1ae03bc00a2511b9f7849a17d7ba5e9fb85617ed72fe82ace564a78ec9fdbb9a641f5
@@ -2,7 +2,8 @@ module JsonApiClient
2
2
  module Errors
3
3
  class ApiError < StandardError
4
4
  attr_reader :env
5
- def initialize(env)
5
+ def initialize(env, msg = nil)
6
+ super msg
6
7
  @env = env
7
8
  end
8
9
  end
@@ -20,14 +21,14 @@ module JsonApiClient
20
21
  end
21
22
 
22
23
  class ServerError < ApiError
23
- def message
24
- "Internal server error"
24
+ def initialize(env, msg = 'Internal server error')
25
+ super env, msg
25
26
  end
26
27
  end
27
28
 
28
29
  class Conflict < ServerError
29
- def message
30
- "Resource already exists"
30
+ def initialize(env, msg = 'Resource already exists')
31
+ super env, msg
31
32
  end
32
33
  end
33
34
 
@@ -51,6 +52,5 @@ module JsonApiClient
51
52
  "Unexpected response status: #{code} from: #{uri.to_s}"
52
53
  end
53
54
  end
54
-
55
55
  end
56
56
  end
@@ -4,15 +4,18 @@ module JsonApiClient
4
4
 
5
5
  def initialize(result_set, data)
6
6
  record_class = result_set.record_class
7
- grouped_data = data.group_by{|datum| datum["type"]}
8
- @data = grouped_data.inject({}) do |h, (type, records)|
7
+ included_set = data.map do |datum|
8
+ type = datum["type"]
9
9
  klass = Utils.compute_type(record_class, record_class.key_formatter.unformat(type).singularize.classify)
10
- h[type] = records.map do |datum|
11
- params = klass.parser.parameters_from_resource(datum)
12
- resource = klass.load(params)
13
- resource.last_result_set = result_set
14
- resource
15
- end.index_by(&:id)
10
+ params = klass.parser.parameters_from_resource(datum)
11
+ resource = klass.load(params)
12
+ resource.last_result_set = result_set
13
+ resource
14
+ end
15
+
16
+ included_set.concat(result_set) if record_class.search_included_in_result_set
17
+ @data = included_set.group_by(&:type).inject({}) do |h, (type, resources)|
18
+ h[type] = resources.index_by(&:id)
16
19
  h
17
20
  end
18
21
  end
@@ -11,8 +11,8 @@ module JsonApiClient
11
11
  handle_status(code, env)
12
12
  end
13
13
  end
14
- rescue Faraday::ConnectionFailed, Faraday::TimeoutError
15
- raise Errors::ConnectionError, environment
14
+ rescue Faraday::ConnectionFailed, Faraday::TimeoutError => e
15
+ raise Errors::ConnectionError.new environment, e.to_s
16
16
  end
17
17
 
18
18
  protected
@@ -34,6 +34,7 @@ module JsonApiClient
34
34
  :route_format,
35
35
  :request_params_class,
36
36
  :keep_request_params,
37
+ :search_included_in_result_set,
37
38
  instance_accessor: false
38
39
  class_attribute :add_defaults_to_changes,
39
40
  instance_writer: false
@@ -50,6 +51,7 @@ module JsonApiClient
50
51
  self.request_params_class = RequestParams
51
52
  self.keep_request_params = false
52
53
  self.add_defaults_to_changes = false
54
+ self.search_included_in_result_set = false
53
55
 
54
56
  #:underscored_key, :camelized_key, :dasherized_key, or custom
55
57
  self.json_key_format = :underscored_key
@@ -584,10 +586,14 @@ module JsonApiClient
584
586
  relationships.as_json_api
585
587
  end
586
588
 
589
+ def error_message_for(error)
590
+ error.error_msg
591
+ end
592
+
587
593
  def fill_errors
588
594
  last_result_set.errors.each do |error|
589
595
  key = self.class.key_formatter.unformat(error.error_key)
590
- errors.add(key, error.error_msg)
596
+ errors.add(key, error_message_for(error))
591
597
  end
592
598
  end
593
599
  end
@@ -1,3 +1,3 @@
1
1
  module JsonApiClient
2
- VERSION = "1.7.0"
2
+ VERSION = "1.8.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json_api_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Ching
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-24 00:00:00.000000000 Z
11
+ date: 2019-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport