hasura_handler 0.1.9 → 0.1.10

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: b476da389358677671ebee56a1d014dc90779a73ade92eaf6d17f894192d0f4c
4
- data.tar.gz: 1aef41672a1832e2abe57e78b260fdef87a0e0147c470898ccb17dfb3b05c791
3
+ metadata.gz: 7b01723297328faafe5a3fe05dc318f9eb6f611c735965a66286d4a90237182f
4
+ data.tar.gz: 6506cb63028380f6d40927c9c39061a13a2797485e260d1292d7cb86d8b11464
5
5
  SHA512:
6
- metadata.gz: 466c57748a94c57040c9d963af6982f4796370c30c582c0c3a306b5d4bc0573f3d3989d6a4e3702f7c162c8e5ad659ee50b032aecc7ac606003dddafca9ffe1a
7
- data.tar.gz: 921d0f38484c4d6f127660e7a999ef5af1a0bce82013aeccace3abf1ca6d4468c567d11355dc35691c97480056ad88829cba2dd0984ba9b6208679f62ff2b02b
6
+ metadata.gz: 80d74bbb492e11fdfb99b841f3eb9c90435b7fbd1c349b93deb2dfda16afb0a27ee129e084a0b74e89cdb2108f2e43e7005dc51ba797b97f43501b0c1b3c3fbf
7
+ data.tar.gz: 78278bf45d18e595445177d2f42bd79103e5131571e352d603bad61fac5fae6aea8486a43463e8b39afe6356d657d71f0bc69129ffd2faf86a88ec2c1dfdcb35
@@ -29,7 +29,6 @@ module HasuraHandler
29
29
  private
30
30
 
31
31
  def error_response(errors)
32
- response.set_header('Retry-After', HasuraHandler.retry_after)
33
32
  render json: { success: false, errors: errors }, status: 400
34
33
  end
35
34
  end
@@ -16,8 +16,7 @@ module HasuraHandler
16
16
  :event_job_queue,
17
17
  :event_handler_job_queue,
18
18
  :async_events,
19
- :fanout_events,
20
- :retry_after
19
+ :fanout_events
21
20
 
22
21
  self.auth_header = 'HTTP_X_HASURA_SERVICE_KEY'
23
22
  self.authentication_enabled = false
@@ -28,7 +27,6 @@ module HasuraHandler
28
27
  self.actions_enabled = true
29
28
  self.event_job_queue = :hasura_event
30
29
  self.event_handler_job_queue = :hasura_event
31
- self.retry_after = 5
32
30
  end
33
31
 
34
32
  def self.setup(&block)
@@ -2,17 +2,18 @@ module HasuraHandler
2
2
  class Event
3
3
  attr_reader :id,
4
4
  :table,
5
+ :schema,
5
6
  :trigger,
6
7
  :event,
7
8
  :op,
8
9
  :created_at,
9
10
  :raw_event,
10
- :errors,
11
- :valid
11
+ :errors
12
12
 
13
13
  def initialize(event)
14
14
  @id = event['id']
15
15
  @table = event['table']['name']
16
+ @schema = event['table']['schema']
16
17
  @trigger = event['trigger']['name']
17
18
  @event = event['event']
18
19
  @op = event['event']['op']
@@ -49,7 +50,7 @@ module HasuraHandler
49
50
  return
50
51
  end
51
52
 
52
- string_fields?(@raw_event['table'], 'table', [:schema, :name])
53
+ string_fields?(@raw_event['table'], 'table', ['schema', 'name'])
53
54
  end
54
55
 
55
56
  def validate_trigger
@@ -58,7 +59,7 @@ module HasuraHandler
58
59
  return
59
60
  end
60
61
 
61
- string_fields?(@raw_event['trigger'], 'trigger', [:name])
62
+ string_fields?(@raw_event['trigger'], 'trigger', ['name'])
62
63
  end
63
64
 
64
65
  def validate_event
@@ -68,7 +69,7 @@ module HasuraHandler
68
69
  end
69
70
 
70
71
  @errors['event.session_variables'] = 'not a hash' unless @event['session_variables'].is_a?(Hash)
71
- string_fields?(@event, 'event', [:op])
72
+ string_fields?(@event, 'event', ['op'])
72
73
 
73
74
  [:new, :old].each do |field|
74
75
  unless @event[field].nil? || @event[field].is_a?(Hash)
@@ -7,10 +7,20 @@ module HasuraHandler
7
7
  end
8
8
 
9
9
  def process_later
10
+ unless event_handlers.present?
11
+ log_missing_handler
12
+ return
13
+ end
14
+
10
15
  HasuraHandler::EventJob.perform_later(@event.raw_event)
11
16
  end
12
17
 
13
18
  def process
19
+ unless event_handlers.present?
20
+ log_missing_handler
21
+ return
22
+ end
23
+
14
24
  event_handlers.each do |handler_class|
15
25
  if HasuraHandler.fanout_events
16
26
  HasuraHandler::EventHandlerJob.perform_later(handler_class.to_s, @event.raw_event)
@@ -19,20 +29,20 @@ module HasuraHandler
19
29
  handler.run
20
30
  end
21
31
  end
22
-
23
- if event_handlers.size == 0
24
- Rails.logger.debug('[HasuraHandler] Received event with no matching handlers.')
25
- end
26
32
  end
27
33
 
28
34
  private
29
35
 
36
+ def log_missing_handler
37
+ Rails.logger.debug('[HasuraHandler] Received event with no matching handlers.')
38
+ end
39
+
30
40
  def event_handlers
31
41
  HasuraHandler::EventHandler.
32
42
  descendants.
33
43
  map{ |klass| [klass, klass.hasura_matchers] }.
34
44
  to_h.
35
- select{ |klass, matchers| matchers.present? }.
45
+ select{ |klass,matchers| matchers.present? }.
36
46
  map{ |klass,matchers| [klass, check_matchers(matchers)] }.
37
47
  to_h.
38
48
  select{ |klass,match| match }.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hasura_handler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kaz Walker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-06 00:00:00.000000000 Z
11
+ date: 2020-09-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails