multiwoven-integrations 0.1.48 → 0.1.49
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: 96d535997b9e775eb4f677ba0be5722ee3aaa88f3226a6fa3b4aef24fb949ffe
|
4
|
+
data.tar.gz: a1c0be33b6c70efadb6c4bed8016a8b8c65cbb66ef430194d50cd0220b325559
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 406892b62ca959ec83fd237568a6d5475f51656d1083b54ac87ff1c08a4cbb49ffc5eca436694e30514c6280cbb943ad8b66f894cb549d4241bacb6e10895fd3
|
7
|
+
data.tar.gz: bc3bf83c198472ef8af07f6763a02e31b8abc7742bf3b5f0fff3483094526870f88ad5f88df6291301eec3e207541e62a84d249f6c5df861ffc7debdea35db18
|
@@ -47,10 +47,10 @@ module Multiwoven
|
|
47
47
|
# To overcome this, we need a cursor-based pagination strategy instead of relying on OFFSET.
|
48
48
|
# query = batched_query(query, sync_config.limit, sync_config.offset) unless sync_config.limit.nil? && sync_config.offset.nil?
|
49
49
|
query = sync_config.model.query
|
50
|
-
|
50
|
+
query = batched_query(query, sync_config.limit, sync_config.offset) unless sync_config.limit.nil? && sync_config.offset.nil?
|
51
51
|
queried_data = @client.query(query)
|
52
52
|
results = queried_data.map do |record|
|
53
|
-
record
|
53
|
+
flatten_nested_hash(record)
|
54
54
|
end
|
55
55
|
results.map do |row|
|
56
56
|
RecordMessage.new(data: row, emitted_at: Time.now.to_i).to_multiwoven_message
|
@@ -62,16 +62,27 @@ module Multiwoven
|
|
62
62
|
private
|
63
63
|
|
64
64
|
def query(connection, query)
|
65
|
-
exclude_keys = ["attributes"]
|
66
65
|
queried_data = connection.query(query)
|
66
|
+
|
67
67
|
results = queried_data.map do |record|
|
68
|
-
record
|
68
|
+
flatten_nested_hash(record)
|
69
69
|
end
|
70
70
|
results.map do |row|
|
71
71
|
RecordMessage.new(data: row, emitted_at: Time.now.to_i).to_multiwoven_message
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
75
|
+
def flatten_nested_hash(record, prefix = nil)
|
76
|
+
record = record.reject { |key, _| key == "attributes" }
|
77
|
+
record.flat_map do |key, value|
|
78
|
+
if value.is_a?(Hash)
|
79
|
+
flatten_nested_hash(value, prefix ? "#{prefix}_#{key}" : key)
|
80
|
+
else
|
81
|
+
{ prefix ? "#{prefix}_#{key}" : key => value }
|
82
|
+
end
|
83
|
+
end.reduce({}, :merge)
|
84
|
+
end
|
85
|
+
|
75
86
|
def create_connection(connection_config)
|
76
87
|
initialize_client(connection_config)
|
77
88
|
end
|