hasura_handler 0.1.9 → 0.1.10

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: 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