herdst_servicecall 0.1.9 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 86923a697f8a6c3832d2e31d5481511fa1f7d87928ff45810a24d664113af7a6
4
- data.tar.gz: 20e0e710899c921d1eb4bf81688159dd53e1667bca962fc5b64d848faeafc148
3
+ metadata.gz: e23e2c777089b46bcbfb69c90260b2b5f9cf543476671f2287c6d5df201ff685
4
+ data.tar.gz: 1ddeefe6a5cdd01f5d5553366423d9c8e4fe37becb3cf764951a63dbdd5d4d69
5
5
  SHA512:
6
- metadata.gz: 62f013f01eadfe00cc4f2d2326a52f66e9543148d4913b7eb867f688f5d9d8efd01b4e79e197aa6025a726d249969503e70b0faf0c1b8ac87acd8da428a19ab3
7
- data.tar.gz: 7b0ccd697407d36b4f8727369e7b97048cea300e43aba871b5a134d61c5fe825f242a51eb297a814d626e7b55124994e4d1c440fae02dfe7079d5c6edeb35044
6
+ metadata.gz: c85a14eb4c7289d47aa9e540aa5177e1c08b9da49b9ede50b142e24aab9483b286407f0d7f277eaf9241a453818557d83a5f08dd727c376ef0e3afc1cad4f9fd
7
+ data.tar.gz: 3fcb3c9650eceb500d03a0ceeddf7c27497398385f5d332cc32cee05ecfbc6f3825ffbad21e21839dfb6fc3c3a0d05481760022258230c8e063b0f7db7249733
@@ -43,7 +43,8 @@ module HerdstServicecall
43
43
 
44
44
  else
45
45
  Response.new(request.event, 400, {
46
- :error => ex.message
46
+ :error => ex.message,
47
+ :backtrace => ex.backtrace
47
48
  })
48
49
 
49
50
  end
@@ -28,15 +28,22 @@ module HerdstServicecall
28
28
  def get_body(data)
29
29
  body = data
30
30
 
31
+ if data.is_a?(Exception)
32
+ data = {
33
+ :error => data.message,
34
+ :backtrace => data.backtrace
35
+ }
36
+ end
37
+
31
38
  if data.is_a?(String)
32
39
  body = {
33
- :message => data
40
+ :error => data
34
41
  }
35
42
  end
36
43
 
37
44
  if data.is_a?(ActiveModel::Validations) && ((data.errors.empty? == false) || (data.valid? == false))
38
45
  body = {
39
- :message => "A validation error occured",
46
+ :error => "A validation error occured",
40
47
  :errors => data.errors
41
48
  }
42
49
  end
@@ -21,7 +21,14 @@ module HerdstServicecall
21
21
 
22
22
  def error(default = "Unknown Error")
23
23
  if (self.was_successful? == false)
24
- return (self.body == nil) ? { :message => default } : self.body
24
+ message = self.body ? (self.body[:error] || self.body[:message] || default) : default
25
+ backtrace = self.body && self.body[:backtrace] ? self.body[:backtrace] : []
26
+
27
+ error = ResponseError.new(message)
28
+ error.set_backtrace(backtrace)
29
+ error.set_data(self.body)
30
+
31
+ return error
25
32
  end
26
33
 
27
34
  return nil
@@ -0,0 +1,39 @@
1
+ module HerdstServicecall
2
+ class ResponseError < Exception
3
+
4
+
5
+ def data
6
+ @data
7
+ end
8
+
9
+
10
+ def set_data(data)
11
+ @data = data.respond_to?(:with_indifferent_access) ?
12
+ data.with_indifferent_access :
13
+ data
14
+ end
15
+
16
+
17
+ def [](key)
18
+ if (key.to_s == "error") || (key.to_s == "message")
19
+ self.message
20
+ else
21
+ get_data_key(key)
22
+ end
23
+ end
24
+
25
+
26
+ def method_missing(method_name, *args)
27
+ get_data_key(method_name)
28
+ end
29
+
30
+
31
+ private
32
+ def get_data_key(key)
33
+ return @data[key.to_s] if @data && @data[key.to_s]
34
+ return nil
35
+ end
36
+
37
+
38
+ end
39
+ end
@@ -1,3 +1,3 @@
1
1
  module HerdstServicecall
2
- VERSION = '0.1.9'
2
+ VERSION = '0.2.0'
3
3
  end
@@ -8,6 +8,7 @@ require "herdst_servicecall/receiver"
8
8
  require "herdst_servicecall/middleware"
9
9
  require "herdst_servicecall/request"
10
10
  require "herdst_servicecall/response"
11
+ require "herdst_servicecall/response_error"
11
12
  require "herdst_servicecall/responder"
12
13
  require "herdst_servicecall/responder_error"
13
14
  require "herdst_servicecall/mocker" if (ENV["RAILS_ENV"] == "test") || (ENV["WORKER_ENV"] == "test")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: herdst_servicecall
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Herd.St
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-04 00:00:00.000000000 Z
11
+ date: 2021-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -87,6 +87,7 @@ files:
87
87
  - lib/herdst_servicecall/responder.rb
88
88
  - lib/herdst_servicecall/responder_error.rb
89
89
  - lib/herdst_servicecall/response.rb
90
+ - lib/herdst_servicecall/response_error.rb
90
91
  - lib/herdst_servicecall/version.rb
91
92
  - lib/tasks/servicecall_tasks.rake
92
93
  homepage: https://herd.st