amplify_syndication 0.1.1 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1e358033fc0c9fcb6425cd506509dfaf76347de8c1b83ec82fb36c294d2d3ebe
4
- data.tar.gz: f3fbf71ab860d4aa2dcb4c6f5d07c0123d8879d5a7fa3f9f12c03373a73db4f8
3
+ metadata.gz: f19a5f0b0bfaeddf06d2fe4fc996fb063e54191eb7c931ea5cd5ea7f24bca8e1
4
+ data.tar.gz: 30de329b329545de13dd8204fcf366618fafb946aef50b7cf1471d4b7c51fe47
5
5
  SHA512:
6
- metadata.gz: 599a8ef6b78335a7c0cbda47af06e45e16343a211b3126e5e871691731ffd874a97244d813a027f3c4548ed69db401b340fe4e038b1c746564da64b1b61e1ea9
7
- data.tar.gz: fe9c628b9d876fcb5e9894f30a547be623e619800ffabc451f1d101a07fbb6524ec24c3321a22bea053b9e84d030391f743f0ee5b35bfa38bc4ec96876efc108
6
+ metadata.gz: 1bd03226d37a65478ab72819c739d5a698931d59ee0a255ba53c69affd6bc9382d81b40737712befe01bb37bebc9fa8f3df0d7315c6e2d6342be5baa8378722c
7
+ data.tar.gz: b9143037445bcdc9207f0ddc2ba76674fc00fbd60736329be53876b5dce367f2a3ed2cfc24e370a9a7cfb652b3a4901525631a1a843fd12831cbfc92ef1dc67b
@@ -9,6 +9,89 @@ module AmplifySyndication
9
9
  @client.get("$metadata?$format=json")
10
10
  end
11
11
 
12
+ # Fetch property fields
13
+ def fetch_property_fields(batch_size: 50, sleep_seconds: 10)
14
+ offset = 0
15
+ fields = []
16
+
17
+ loop do
18
+ query_options = {
19
+ "$filter" => "ResourceName eq 'Property'",
20
+ "$top" => batch_size,
21
+ "$skip" => offset
22
+ }.compact
23
+ response = fetch_with_options("Field", query_options)
24
+ batch = response["value"]
25
+ break if batch.empty?
26
+
27
+ fields.concat(batch)
28
+
29
+ offset += batch_size
30
+
31
+ # Safety sleep between API calls
32
+ sleep(sleep_seconds) if sleep_seconds.positive?
33
+ end
34
+
35
+ fields
36
+ end
37
+
38
+ def fetch_all_lookups(batch_size: 50, sleep_seconds: 10, filter: nil)
39
+ offset = 0
40
+ values = []
41
+
42
+ loop do
43
+ query_options = {
44
+ "$top" => batch_size,
45
+ "$skip" => offset
46
+ }
47
+
48
+ # Apply filter only when provided
49
+ if filter.present?
50
+ combined_filter =
51
+ filter.is_a?(Array) ? filter.join(" and ") : filter
52
+ query_options["$filter"] = combined_filter
53
+ end
54
+
55
+ response = fetch_with_options("Lookup", query_options)
56
+ batch = response["value"] || []
57
+ break if batch.empty?
58
+
59
+ values.concat(batch)
60
+
61
+ offset += batch_size
62
+
63
+ # Safety sleep between API calls
64
+ sleep(sleep_seconds) if sleep_seconds.positive?
65
+ end
66
+
67
+ values
68
+ end
69
+
70
+ # get lookup name values
71
+ def lookup(lookup_name, batch_size: 50, sleep_seconds: 10)
72
+ offset = 0
73
+ values = []
74
+
75
+ loop do
76
+ query_options = {
77
+ "$filter" => "LookupName eq '#{lookup_name}'",
78
+ "$top" => batch_size,
79
+ "$skip" => offset
80
+ }.compact
81
+ response = fetch_with_options("Lookup", query_options)
82
+ batch = response["value"]
83
+ break if batch.empty?
84
+
85
+ values.concat(batch)
86
+ offset += batch_size
87
+
88
+ # Safety sleep between API calls
89
+ sleep(sleep_seconds) if sleep_seconds.positive?
90
+ end
91
+
92
+ values
93
+ end
94
+
12
95
  # Fetch basic property data
13
96
  def fetch_property_data(limit = 1)
14
97
  @client.get("Property", "$top" => limit)
@@ -45,6 +128,7 @@ module AmplifySyndication
45
128
  batch_size: 100,
46
129
  fields: ["ModificationTimestamp", "ListingKey"],
47
130
  filter: nil,
131
+ sleep_seconds: 10,
48
132
  checkpoint: { last_timestamp: "1970-01-01T00:00:00Z", last_key: 0 }
49
133
  )
50
134
  puts "Starting initial download..."
@@ -86,6 +170,9 @@ module AmplifySyndication
86
170
 
87
171
  # Stop if the number of records is less than the batch size
88
172
  break if records.size < batch_size
173
+
174
+ # Safety sleep between API calls
175
+ sleep(sleep_seconds) if sleep_seconds.positive?
89
176
  end
90
177
 
91
178
  puts "Initial download complete."
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AmplifySyndication
4
- VERSION = "0.1.1"
4
+ VERSION = "0.2.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amplify_syndication
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen Higgins
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-12-09 00:00:00.000000000 Z
11
+ date: 2025-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient