multiwoven-integrations 0.7.2 → 0.7.4

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: 77c1f29e452cbeee226a06909b5bf589061063a051bc3c73ac73ec1d2748b159
4
- data.tar.gz: d4b47377d27c931947cf15589723ba397d4a2e500c600ada8fad308f3a82e0d6
3
+ metadata.gz: 37b545ee313b4f088f5978fc8332e12506b2c964919a4a1a6599c7549c968ba0
4
+ data.tar.gz: b8a089e677f9726a7ef2b432a6b6334a5e40e96b3190c216a133b6eef5cb6a09
5
5
  SHA512:
6
- metadata.gz: 6d81300b2ed2fa1dc066b29a3af4096ef5a85045e18f84d708bec9f7f12182fbd2ee013c7bb797de6a2dfa23494a7e07fbb802498e6c2426e6ee714bc8465508
7
- data.tar.gz: 2f65fd9330887945df04375914b8dddfe1170c40c16fb5575cba642ffae943d36223c42c2e85f50f89796e5f2e9cc82df5878bb1923936f54c544ee725f58535
6
+ metadata.gz: 8e1563c35fdf1db6451ce8c53231a2b7aba4a1eaf050d264817e3c4d63be2c46c30691b7b08007c74af76a4d91b01bcd256b370f4c2fefe6e23e617adf8e1f85
7
+ data.tar.gz: 9fbe9e662993a134224d1ee03aff8ec6124ce7f59cc545b4beb3efba98407bfa42a19a846b4ebdb8d0c9a80ef4e9a58e82a4cc20219cc959a19ff3f16a98f926
@@ -153,13 +153,15 @@ module Multiwoven
153
153
 
154
154
  # Batch has a limit of sending 2MB data. So creating a chunk of records to meet that limit
155
155
  def process_record_chunks(records, sync_config)
156
+ log_message_array = []
156
157
  write_success = 0
157
158
  write_failure = 0
158
159
 
159
160
  records.each_slice(MAX_CHUNK_SIZE) do |chunk|
160
161
  values = prepare_chunk_values(chunk, sync_config.stream)
161
- update_sheet_values(values, sync_config.stream.name)
162
+ request, response = *update_sheet_values(values, sync_config.stream.name)
162
163
  write_success += values.size
164
+ log_message_array << log_request_response("info", request, response)
163
165
  rescue StandardError => e
164
166
  handle_exception(e, {
165
167
  context: "GOOGLE_SHEETS:RECORD:WRITE:EXCEPTION",
@@ -168,9 +170,9 @@ module Multiwoven
168
170
  sync_run_id: sync_config.sync_run_id
169
171
  })
170
172
  write_failure += chunk.size
173
+ log_message_array << log_request_response("error", request, e.message)
171
174
  end
172
-
173
- tracking_message(write_success, write_failure)
175
+ tracking_message(write_success, write_failure, log_message_array)
174
176
  end
175
177
 
176
178
  # We need to format the data to adhere to google sheets API format. This converts the sync mapped data to 2D array format expected by google sheets API
@@ -199,19 +201,14 @@ module Multiwoven
199
201
  )
200
202
 
201
203
  # TODO: Remove & this is added for the test to pass we need
202
- @client&.batch_update_values(@spreadsheet_id, batch_update_request)
204
+ response = @client&.batch_update_values(@spreadsheet_id, batch_update_request)
205
+ [batch_update_request, response]
203
206
  end
204
207
 
205
208
  def load_catalog
206
209
  read_json(CATALOG_SPEC_PATH)
207
210
  end
208
211
 
209
- def tracking_message(success, failure)
210
- Multiwoven::Integrations::Protocol::TrackingMessage.new(
211
- success: success, failed: failure
212
- ).to_multiwoven_message
213
- end
214
-
215
212
  def delete_extra_sheets(sheet_ids)
216
213
  # Leave one sheet intact as a spreadsheet must have at least one sheet.
217
214
  # Delete all other sheets.
@@ -57,11 +57,13 @@ module Multiwoven
57
57
  end
58
58
 
59
59
  def process_records(records, stream)
60
+ log_message_array = []
60
61
  write_success = 0
61
62
  write_failure = 0
62
63
  records.each do |record_object|
63
- process_record(stream, record_object.with_indifferent_access)
64
+ request, response = *process_record(stream, record_object.with_indifferent_access)
64
65
  write_success += 1
66
+ log_message_array << log_request_response("info", request, response)
65
67
  rescue StandardError => e
66
68
  write_failure += 1
67
69
  handle_exception(e, {
@@ -70,8 +72,9 @@ module Multiwoven
70
72
  sync_id: @sync_config.sync_id,
71
73
  sync_run_id: @sync_config.sync_run_id
72
74
  })
75
+ log_message_array << log_request_response("error", request, e.message)
73
76
  end
74
- tracking_message(write_success, write_failure)
77
+ tracking_message(write_success, write_failure, log_message_array)
75
78
  end
76
79
 
77
80
  def process_record(stream, record)
@@ -80,7 +83,8 @@ module Multiwoven
80
83
 
81
84
  def send_data_to_slack(stream_name, record = {})
82
85
  args = build_args(stream_name, record)
83
- @client.send(stream_name, **args)
86
+ response = @client.send(stream_name, **args)
87
+ [args, response]
84
88
  end
85
89
 
86
90
  def build_args(stream_name, record)
@@ -114,12 +118,6 @@ module Multiwoven
114
118
  def load_catalog
115
119
  read_json(CATALOG_SPEC_PATH)
116
120
  end
117
-
118
- def tracking_message(success, failure)
119
- Multiwoven::Integrations::Protocol::TrackingMessage.new(
120
- success: success, failed: failure
121
- ).to_multiwoven_message
122
- end
123
121
  end
124
122
  end
125
123
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Multiwoven
4
4
  module Integrations
5
- VERSION = "0.7.2"
5
+ VERSION = "0.7.4"
6
6
 
7
7
  ENABLED_SOURCES = %w[
8
8
  Snowflake
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: multiwoven-integrations
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
4
+ version: 0.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Subin T P
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-08-06 00:00:00.000000000 Z
11
+ date: 2024-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport