multiwoven-integrations 0.8.2 → 0.8.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: 150cea6d10255927e0dd613009ec413734caf62b710ca6d804adcba446a60445
4
- data.tar.gz: 3ab02e6bf9c2796078d8e83d6ea9ed9646765d74ed7b978315171bcf1bbd6f4a
3
+ metadata.gz: cdbc8318433dfa2cce91c25e1f32719508862392853bf55bc53d6ae8e69053d9
4
+ data.tar.gz: a1015a21ff091fe9ad21dd1fb6fb4812b3e14de5a7ac8a3dcac85d6af87717aa
5
5
  SHA512:
6
- metadata.gz: b507d56cc8c96241caf483c7d2e8b2d7e04fdfe2e433a3f6cd4fede2a764f1787959d8689419ae2a43971c1ae86bb396bda82fdb82ee9921d8f32146ffca107a
7
- data.tar.gz: 6b85d8ebbc608da63ba165a65b99d0c8dd663560be01a0c32d1ec3bc30907ff515bc0ed2a151d2b943108a18405f9b8cb7c5555c473e1d1be8653013e7ddf150
6
+ metadata.gz: ac89988c3b671ba1c537ea4adb21fa44b479a6a13b68a7d83f1250bd60e7552a95054af7acdcff5c9c1b3f1e55247df217b1a440b71449b3f4b1fd69afa8eaac
7
+ data.tar.gz: 2fc03b10bb99d452939a4ddc3f60af052ba0e2fa5e95461b9bb4af9a60544535068ff220423a6e538f21f01f3754f752dc56039735e2787fae604dd14c87baae
@@ -40,7 +40,7 @@ module Multiwoven
40
40
  MS_EXCEL_TABLE_ROW_WRITE_API = "https://graph.microsoft.com/v1.0/drives/%<drive_id>s/items/%<item_id>s/"\
41
41
  "workbook/worksheets/%<sheet_name>s/tables/%<table_name>s/rows"
42
42
  MS_EXCEL_TABLE_API = "https://graph.microsoft.com/v1.0/drives/%<drive_id>s/items/%<item_id>s/workbook/"\
43
- "worksheets/sheet/tables?$select=name"
43
+ "worksheets/%<sheet_name>s/tables?$select=name"
44
44
  MS_EXCEL_FILES_API = "https://graph.microsoft.com/v1.0/drives/%<drive_id>s/root/children"
45
45
  MS_EXCEL_WORKSHEETS_API = "https://graph.microsoft.com/v1.0/drives/%<drive_id>s/items/%<item_id>s/"\
46
46
  "workbook/worksheets"
@@ -55,13 +55,15 @@ module Multiwoven
55
55
  end
56
56
 
57
57
  def process_records(records, stream)
58
+ log_message_array = []
58
59
  write_success = 0
59
60
  write_failure = 0
60
61
  properties = stream.json_schema.with_indifferent_access[:properties]
61
62
  records.each do |record_object|
62
63
  record = extract_data(record_object, properties)
63
- send_data_to_hubspot(stream.name, record)
64
+ request, response = *send_data_to_hubspot(stream.name, record)
64
65
  write_success += 1
66
+ log_message_array << log_request_response("info", request, response)
65
67
  rescue StandardError => e
66
68
  handle_exception(e, {
67
69
  context: "HUBSPOT:CRM:WRITE:EXCEPTION",
@@ -70,15 +72,17 @@ module Multiwoven
70
72
  sync_run_id: @sync_config.sync_run_id
71
73
  })
72
74
  write_failure += 1
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 send_data_to_hubspot(stream_name, record = {})
78
81
  args = build_args(@action, stream_name, record)
79
82
  hubspot_stream = @client.crm.send(stream_name)
80
83
  hubspot_data = { simple_public_object_input_for_create: args }
81
- hubspot_stream.basic_api.send(@action, hubspot_data)
84
+ response = hubspot_stream.basic_api.send(@action, hubspot_data)
85
+ [args, response]
82
86
  end
83
87
 
84
88
  def build_args(action, stream_name, record)
@@ -108,12 +112,6 @@ module Multiwoven
108
112
  read_json(CATALOG_SPEC_PATH)
109
113
  end
110
114
 
111
- def tracking_message(success, failure)
112
- Multiwoven::Integrations::Protocol::TrackingMessage.new(
113
- success: success, failed: failure
114
- ).to_multiwoven_message
115
- end
116
-
117
115
  def log_debug(message)
118
116
  Multiwoven::Integrations::Service.logger.debug(message)
119
117
  end
@@ -49,8 +49,7 @@ module Multiwoven::Integrations::Destination
49
49
  excel_files = get_file(token, drive_id)
50
50
  worksheet = excel_files.find { |file| file[:name] == file_name }
51
51
  item_id = worksheet[:id]
52
-
53
- table = get_table(token, drive_id, item_id)
52
+ table = get_table(token, drive_id, item_id, sheet_name)
54
53
  write_url = format(MS_EXCEL_TABLE_ROW_WRITE_API, drive_id: drive_id, item_id: item_id, sheet_name: sheet_name,
55
54
  table_name: table["name"])
56
55
  payload = { values: records.map(&:values) }
@@ -69,8 +68,8 @@ module Multiwoven::Integrations::Destination
69
68
  JSON.parse(response.body)["id"]
70
69
  end
71
70
 
72
- def get_table(token, drive_id, item_id)
73
- table_url = format(MS_EXCEL_TABLE_API, drive_id: drive_id, item_id: item_id)
71
+ def get_table(token, drive_id, item_id, sheet_name)
72
+ table_url = format(MS_EXCEL_TABLE_API, drive_id: drive_id, item_id: item_id, sheet_name: sheet_name)
74
73
  response = Multiwoven::Integrations::Core::HttpClient.request(
75
74
  table_url,
76
75
  HTTP_GET,
@@ -114,9 +113,14 @@ module Multiwoven::Integrations::Destination
114
113
  headers: auth_headers(token)
115
114
  )
116
115
  sheets_data = JSON.parse(sheet_response.body)
116
+ column_names = if sheets_data.key?("error")
117
+ ["Column A"]
118
+ else
119
+ sheets_data["values"].first
120
+ end
117
121
  result << {
118
122
  sheet_name: sheet_name,
119
- column_names: sheets_data["values"].first
123
+ column_names: column_names
120
124
  }
121
125
  end
122
126
  result
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "request_rate_limit": 6000,
3
3
  "request_rate_limit_unit": "minute",
4
- "request_rate_concurrency": 10,
4
+ "request_rate_concurrency": 1,
5
5
  "streams": []
6
6
  }
7
7
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Multiwoven
4
4
  module Integrations
5
- VERSION = "0.8.2"
5
+ VERSION = "0.8.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.8.2
4
+ version: 0.8.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-13 00:00:00.000000000 Z
11
+ date: 2024-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport