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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7b01723297328faafe5a3fe05dc318f9eb6f611c735965a66286d4a90237182f
|
4
|
+
data.tar.gz: 6506cb63028380f6d40927c9c39061a13a2797485e260d1292d7cb86d8b11464
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80d74bbb492e11fdfb99b841f3eb9c90435b7fbd1c349b93deb2dfda16afb0a27ee129e084a0b74e89cdb2108f2e43e7005dc51ba797b97f43501b0c1b3c3fbf
|
7
|
+
data.tar.gz: 78278bf45d18e595445177d2f42bd79103e5131571e352d603bad61fac5fae6aea8486a43463e8b39afe6356d657d71f0bc69129ffd2faf86a88ec2c1dfdcb35
|
data/lib/hasura_handler.rb
CHANGED
@@ -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)
|
data/lib/hasura_handler/event.rb
CHANGED
@@ -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', [
|
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', [
|
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', [
|
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,
|
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.
|
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-
|
11
|
+
date: 2020-09-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|