rooftop-spektrix_sync 0.0.3 → 0.0.3.2
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 +4 -4
- data/lib/rooftop/spektrix_sync/lib/event_sync.rb +10 -10
- data/lib/rooftop/spektrix_sync/lib/instance_sync.rb +4 -4
- data/lib/rooftop/spektrix_sync/lib/price_list_sync.rb +10 -10
- data/lib/rooftop/spektrix_sync/lib/sync_task.rb +20 -22
- data/lib/rooftop/spektrix_sync/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d5a7934bd34481b83649a71e99d0a7e76371d34c
|
4
|
+
data.tar.gz: 8a896cb877434ea00994a55c19bc80858b417b82
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55f9d502f3dc7e27f3695150b77ae29cdb5f45d1ee4150a06f03b6a0a41fe1bfff14cf113667137866c3a3931e3cd8ce0d84da1a2d4c49f95ed380aca3c9893e
|
7
|
+
data.tar.gz: 44840a229619f9ee869fb988c88ad3e2ebcac887000dc86147712b8a7e5d2dac437dd8338451c7f1ecd06b16bffd09275633bcf071e9ec22ad5253a44156bd7e
|
@@ -15,7 +15,7 @@ module Rooftop
|
|
15
15
|
@rooftop_event = @rooftop_events.find {|e| e.meta_attributes[:spektrix_id].try(:to_i) == @spektrix_event.id.to_i}
|
16
16
|
@rooftop_price_lists = sync_task.rooftop_price_lists
|
17
17
|
@sync_task = sync_task
|
18
|
-
@logger.info("Fetching all instance statuses for event")
|
18
|
+
@logger.info("[spektrix] Fetching all instance statuses for event")
|
19
19
|
@spektrix_instance_statuses = Spektrix::Events::InstanceStatus.where(event_id: @spektrix_event.id, all: true).to_a
|
20
20
|
end
|
21
21
|
|
@@ -34,7 +34,7 @@ module Rooftop
|
|
34
34
|
})
|
35
35
|
sync()
|
36
36
|
rescue => e
|
37
|
-
@logger.fatal(e
|
37
|
+
@logger.fatal("[spektrix] #{e}")
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
@@ -60,12 +60,12 @@ module Rooftop
|
|
60
60
|
end
|
61
61
|
|
62
62
|
if @rooftop_event.save!
|
63
|
-
@logger.info("#{new_event ? 'Created' : 'Saved'} event: #{rooftop_event_title} #{@rooftop_event.id}")
|
63
|
+
@logger.info("[spektrix] #{new_event ? 'Created' : 'Saved'} event: #{rooftop_event_title} #{@rooftop_event.id}")
|
64
64
|
else
|
65
65
|
sync_event_instances = false
|
66
66
|
end
|
67
67
|
else
|
68
|
-
@logger.info("Skipping event update")
|
68
|
+
@logger.info("[spektrix] Skipping event update")
|
69
69
|
end
|
70
70
|
|
71
71
|
sync_instances if sync_event_instances
|
@@ -102,7 +102,7 @@ module Rooftop
|
|
102
102
|
def sync_instances
|
103
103
|
@rooftop_instances = @rooftop_event.instances.to_a
|
104
104
|
@spektrix_instances = @spektrix_event.instances.to_a
|
105
|
-
@logger.info("
|
105
|
+
@logger.info("[spektrix] Checking #{@rooftop_instances.size} instances..")
|
106
106
|
|
107
107
|
synced_to_rooftop = [] # array of event instance id's that were updated/created on RT
|
108
108
|
|
@@ -113,21 +113,21 @@ module Rooftop
|
|
113
113
|
delete_instances = @rooftop_instances.select{|i| delete_instance_ids.include?(i.meta_attributes[:spektrix_id])}
|
114
114
|
# before we can call .destroy on an instance, we need to mutate the object so it has an :event_id to hit the proper destroy method endpoint...
|
115
115
|
delete_instances.each do |instance|
|
116
|
-
@logger.info("Deleting Rooftop Instance #{instance.id}")
|
116
|
+
@logger.info("[spektrix] Deleting Rooftop Instance #{instance.id}")
|
117
117
|
instance.tap{|i| i.event_id = @rooftop_event.meta_attributes[:spektrix_id]}.destroy
|
118
118
|
end
|
119
119
|
|
120
120
|
@spektrix_instances.each_with_index do |instance, i|
|
121
|
-
@logger.info("Instance #{instance.id}")
|
121
|
+
@logger.info("[spektrix] Instance #{instance.id}")
|
122
122
|
begin
|
123
123
|
tries ||= 2
|
124
124
|
instance_sync = Rooftop::SpektrixSync::InstanceSync.new(instance, self)
|
125
125
|
synced_to_rooftop << instance_sync.sync
|
126
126
|
rescue => e
|
127
127
|
if (tries -= 1).zero?
|
128
|
-
@logger.fatal("Not retrying... #{e}")
|
128
|
+
@logger.fatal("[spektrix] Not retrying... #{e}")
|
129
129
|
else
|
130
|
-
@logger.warn("Retrying... #{e}")
|
130
|
+
@logger.warn("[spektrix] Retrying... #{e}")
|
131
131
|
retry
|
132
132
|
end
|
133
133
|
end
|
@@ -141,7 +141,7 @@ module Rooftop
|
|
141
141
|
end
|
142
142
|
|
143
143
|
def update_event_metadata
|
144
|
-
@logger.info("Saved event instances. Updating event metadata")
|
144
|
+
@logger.info("[spektrix] Saved event instances. Updating event metadata")
|
145
145
|
Rooftop::Events::Event.post("#{@rooftop_event.class.collection_path}/#{@rooftop_event.id}/update_metadata")
|
146
146
|
end
|
147
147
|
end
|
@@ -20,7 +20,7 @@ module Rooftop
|
|
20
20
|
end
|
21
21
|
update_price
|
22
22
|
if @rooftop_instance.price_list_id.nil?
|
23
|
-
@logger.error("No price list for Spektrix instance id #{@spektrix_instance.id}")
|
23
|
+
@logger.error("[spektrix] No price list for Spektrix instance id #{@spektrix_instance.id}")
|
24
24
|
return
|
25
25
|
end
|
26
26
|
update_meta_attributes
|
@@ -31,13 +31,13 @@ module Rooftop
|
|
31
31
|
@rooftop_instance.meta_attributes[:spektrix_hash] = generate_spektrix_hash(@spektrix_instance)
|
32
32
|
|
33
33
|
if @rooftop_instance.save!
|
34
|
-
@logger.info("#{instance_updated ? "Updated" : "Created"} Rooftop instance #{@rooftop_instance.id}")
|
34
|
+
@logger.info("[spektrix] #{instance_updated ? "Updated" : "Created"} Rooftop instance #{@rooftop_instance.id}")
|
35
35
|
return @rooftop_instance.id
|
36
36
|
else
|
37
|
-
@logger.
|
37
|
+
@logger.error("[spektrix] Couldn't save Rooftop instance #{@rooftop_instance.id}")
|
38
38
|
end
|
39
39
|
else
|
40
|
-
@logger.info("Skipping event instance save - computed hash matched")
|
40
|
+
@logger.info("[spektrix] Skipping event instance save - computed hash matched")
|
41
41
|
return nil
|
42
42
|
end
|
43
43
|
end
|
@@ -23,11 +23,11 @@ module Rooftop
|
|
23
23
|
@spektrix_price_lists.each do |spektrix_price_list|
|
24
24
|
# Don't bother syncing a price list where none of the prices have bands.
|
25
25
|
if spektrix_price_list.prices.nil?
|
26
|
-
@logger.error("Spektrix price list ID #{spektrix_price_list.id} has no prices at all")
|
26
|
+
@logger.error("[spektrix] Spektrix price list ID #{spektrix_price_list.id} has no prices at all")
|
27
27
|
next
|
28
28
|
end
|
29
29
|
if spektrix_price_list.prices.select {|p| !p.band.nil?}.empty?
|
30
|
-
@logger.error("Spektrix price list ID #{spektrix_price_list.id} has prices with missing bands.")
|
30
|
+
@logger.error("[spektrix] Spektrix price list ID #{spektrix_price_list.id} has prices with missing bands.")
|
31
31
|
end
|
32
32
|
|
33
33
|
# find or create a price list
|
@@ -37,7 +37,7 @@ module Rooftop
|
|
37
37
|
new_price_list = @rooftop_price_list.new?
|
38
38
|
# save the price list to rooftop
|
39
39
|
if @rooftop_price_list.save!
|
40
|
-
@logger.info("#{new_price_list ? "Created" : "Updated"} price list #{spektrix_price_list.id}")
|
40
|
+
@logger.info("[spektrix] #{new_price_list ? "Created" : "Updated"} price list #{spektrix_price_list.id}")
|
41
41
|
sync_prices(spektrix_price_list, @rooftop_price_list)
|
42
42
|
end
|
43
43
|
end
|
@@ -49,10 +49,10 @@ module Rooftop
|
|
49
49
|
def sync_prices(spektrix_price_list, rooftop_price_list)
|
50
50
|
# begin
|
51
51
|
spektrix_price_list.prices.each_with_index do |spektrix_price, i |
|
52
|
-
@logger.info("syncing price #{i+1} / #{spektrix_price_list.prices.count}")
|
52
|
+
@logger.info("[spektrix] syncing price #{i+1} / #{spektrix_price_list.prices.count}")
|
53
53
|
# skip ones without a band
|
54
54
|
if spektrix_price.band.nil?
|
55
|
-
@logger.error("Spektrix price list ID: #{spektrix_price_list.id}: Price #{spektrix_price.price} with ticket type #{spektrix_price.ticket_type.name} does not have a band")
|
55
|
+
@logger.error("[spektrix] Spektrix price list ID: #{spektrix_price_list.id}: Price #{spektrix_price.price} with ticket type #{spektrix_price.ticket_type.name} does not have a band")
|
56
56
|
next
|
57
57
|
end
|
58
58
|
current_rooftop_price = find_rooftop_price(rooftop_price_list, spektrix_price)
|
@@ -65,12 +65,12 @@ module Rooftop
|
|
65
65
|
ticket_type_id = find_rooftop_ticket_type(spektrix_price).try(:id)
|
66
66
|
price_band_id = find_rooftop_price_band(spektrix_price).try(:id)
|
67
67
|
if ticket_type_id.nil?
|
68
|
-
@logger.error("Ticket type for spektrix price #{spektrix_price.price} with ticket type #{spektrix_price.ticket_type.name} is nil")
|
68
|
+
@logger.error("[spektrix] Ticket type for spektrix price #{spektrix_price.price} with ticket type #{spektrix_price.ticket_type.name} is nil")
|
69
69
|
next
|
70
70
|
end
|
71
71
|
|
72
72
|
if price_band_id.nil?
|
73
|
-
@logger.error("Price band for spektrix price #{spektrix_price.price} with ticket type #{spektrix_price.ticket_type.name} is nil")
|
73
|
+
@logger.error("[spektrix] Price band for spektrix price #{spektrix_price.price} with ticket type #{spektrix_price.ticket_type.name} is nil")
|
74
74
|
next
|
75
75
|
end
|
76
76
|
|
@@ -83,7 +83,7 @@ module Rooftop
|
|
83
83
|
|
84
84
|
new_price.title = "#{spektrix_price.band.name} (£#{new_price.meta_attributes[:ticket_price]})"
|
85
85
|
if new_price.save!
|
86
|
-
@logger.error("Spektrix price list ID: #{spektrix_price_list.id}: Saved price £#{new_price.meta_attributes[:ticket_price]} with ticket type #{spektrix_price.ticket_type.name} for price band #{spektrix_price.band.name}")
|
86
|
+
@logger.error("[spektrix] Spektrix price list ID: #{spektrix_price_list.id}: Saved price £#{new_price.meta_attributes[:ticket_price]} with ticket type #{spektrix_price.ticket_type.name} for price band #{spektrix_price.band.name}")
|
87
87
|
end
|
88
88
|
end
|
89
89
|
# rescue => e
|
@@ -101,11 +101,11 @@ module Rooftop
|
|
101
101
|
end
|
102
102
|
Rooftop::Events::PriceList.where(post__in: rooftop_ids_to_remove).each do |pricelist|
|
103
103
|
if pricelist.destroy
|
104
|
-
@logger.info("Removed rooftop price list #{id} which didn't exist in spektrix")
|
104
|
+
@logger.info("[spektrix] Removed rooftop price list #{id} which didn't exist in spektrix")
|
105
105
|
end
|
106
106
|
end
|
107
107
|
rescue => e
|
108
|
-
@logger.fatal(e
|
108
|
+
@logger.fatal("[spektrix] #{e}")
|
109
109
|
end
|
110
110
|
end
|
111
111
|
|
@@ -35,40 +35,38 @@ module Rooftop
|
|
35
35
|
import_spektrix_description: true
|
36
36
|
}
|
37
37
|
@options = default_opts.merge!(opts)
|
38
|
-
@logger.info("
|
39
|
-
@logger.info("Running with options: #{@options.select {|k,v| k if v}.keys.join(", ")}")
|
40
|
-
@logger.info("*************************************************************************")
|
38
|
+
@logger.info("[spektrix] Running with options: #{@options.select {|k,v| k if v}.keys.join("[spektrix] , ")}")
|
41
39
|
rescue => e
|
42
|
-
@logger.fatal("Couldn't start sync: #{e}")
|
40
|
+
@logger.fatal("[spektrix] Couldn't start sync: #{e}")
|
43
41
|
end
|
44
42
|
end
|
45
43
|
|
46
44
|
def fetch_rooftop_and_spektrix_data
|
47
45
|
@spektrix_events = @spektrix_events.present? ? @spektrix_events : Spektrix::Events::Event.all(instance_start_from: @starting_at.iso8601).to_a
|
48
46
|
if @options[:spektrix_event_id]
|
49
|
-
@logger.info("Selecting single Spektrix event")
|
47
|
+
@logger.info("[spektrix] Selecting single Spektrix event")
|
50
48
|
@spektrix_events = @spektrix_events.select {|e| e.id == @options[:spektrix_event_id].to_s}
|
51
49
|
else
|
52
|
-
@logger.info("Fetching all Spektrix events")
|
50
|
+
@logger.info("[spektrix] Fetching all Spektrix events")
|
53
51
|
end
|
54
52
|
|
55
|
-
@logger.info("Fetching all Rooftop events")
|
53
|
+
@logger.info("[spektrix] Fetching all Rooftop events")
|
56
54
|
@rooftop_events = Rooftop::Events::Event.all.to_a
|
57
55
|
unless @options[:accept_empty_rooftop_events]
|
58
|
-
@logger.info("No Rooftop events")
|
56
|
+
@logger.info("[spektrix] No Rooftop events")
|
59
57
|
raise StandardError, "Rooftop returned an empty set of events which is probably wrong" if @rooftop_events.empty?
|
60
58
|
end
|
61
|
-
@logger.info("Fetching all Spektrix price lists")
|
59
|
+
@logger.info("[spektrix] Fetching all Spektrix price lists")
|
62
60
|
@spektrix_price_lists = @spektrix_price_lists.present? ? @spektrix_price_lists : Spektrix::Tickets::PriceList.all.to_a
|
63
|
-
@logger.info("Fetching all Rooftop Price lists")
|
61
|
+
@logger.info("[spektrix] Fetching all Rooftop Price lists")
|
64
62
|
@rooftop_price_lists = Rooftop::Events::PriceList.all.to_a
|
65
63
|
|
66
64
|
if @options[:import_price_bands] || @options[:import_ticket_types] || @options[:import_prices]
|
67
|
-
@logger.info("Fetching all Spektrix price lists")
|
65
|
+
@logger.info("[spektrix] Fetching all Spektrix price lists")
|
68
66
|
@spektrix_price_lists = @spektrix_price_lists.present? ? @spektrix_price_lists : Spektrix::Tickets::PriceList.all.to_a
|
69
|
-
@logger.info("Fetching all Rooftop ticket types")
|
67
|
+
@logger.info("[spektrix] Fetching all Rooftop ticket types")
|
70
68
|
@rooftop_ticket_types = Rooftop::Events::TicketType.all.to_a
|
71
|
-
@logger.info("Fetching all Rooftop price bands")
|
69
|
+
@logger.info("[spektrix] Fetching all Rooftop price bands")
|
72
70
|
@rooftop_price_bands = Rooftop::Events::PriceBand.all.to_a
|
73
71
|
end
|
74
72
|
end
|
@@ -138,7 +136,7 @@ module Rooftop
|
|
138
136
|
# delete_orphan_spektrix_events
|
139
137
|
# end
|
140
138
|
rescue => e
|
141
|
-
@logger.fatal(e)
|
139
|
+
@logger.fatal("[spektrix] #{e}")
|
142
140
|
end
|
143
141
|
|
144
142
|
end
|
@@ -149,15 +147,15 @@ module Rooftop
|
|
149
147
|
begin
|
150
148
|
tries ||= 2
|
151
149
|
@spektrix_events.each_with_index do |event, i|
|
152
|
-
@logger.info("Sync #{i+1} / #{@spektrix_events.length}: #{event.title}")
|
150
|
+
@logger.info("[spektrix] Sync #{i+1} / #{@spektrix_events.length}: #{event.title}")
|
153
151
|
item = EventSync.new(event, self)
|
154
152
|
item.sync_to_rooftop
|
155
153
|
end
|
156
154
|
rescue => e
|
157
155
|
if (tries -= 1).zero?
|
158
|
-
@logger.fatal("Not retrying...#{e.to_s}")
|
156
|
+
@logger.fatal("[spektrix] Not retrying...#{e.to_s}")
|
159
157
|
else
|
160
|
-
@logger.error("Retrying...#{e.to_s}")
|
158
|
+
@logger.error("[spektrix] Retrying...#{e.to_s}")
|
161
159
|
retry
|
162
160
|
end
|
163
161
|
end
|
@@ -176,7 +174,7 @@ module Rooftop
|
|
176
174
|
Rooftop::Events::Event.where(post__in: rooftop_ids_to_delete).each do |rooftop_event|
|
177
175
|
title = rooftop_event.title
|
178
176
|
if rooftop_event.destroy
|
179
|
-
@logger.info("Removed Rooftop event #{title} which doesn't exist in Spektrix")
|
177
|
+
@logger.info("[spektrix] Removed Rooftop event #{title} which doesn't exist in Spektrix")
|
180
178
|
end
|
181
179
|
end
|
182
180
|
end
|
@@ -187,7 +185,7 @@ module Rooftop
|
|
187
185
|
spektrix_bands = Spektrix::Tickets::Band.all.to_a
|
188
186
|
# create or update existing
|
189
187
|
spektrix_bands.each do |band|
|
190
|
-
@logger.info("Updating band #{band.name}")
|
188
|
+
@logger.info("[spektrix] Updating band #{band.name}")
|
191
189
|
rooftop_band = rooftop_bands.find {|b| b.title == band.name} || Rooftop::Events::PriceBand.new
|
192
190
|
rooftop_band.title = band.name
|
193
191
|
rooftop_band.save!
|
@@ -200,7 +198,7 @@ module Rooftop
|
|
200
198
|
rooftop_bands.find {|b| b.title == title}.destroy
|
201
199
|
end
|
202
200
|
rescue => e
|
203
|
-
@logger.fatal(e
|
201
|
+
@logger.fatal("[spektrix] #{e}")
|
204
202
|
end
|
205
203
|
|
206
204
|
|
@@ -212,7 +210,7 @@ module Rooftop
|
|
212
210
|
spektrix_ticket_types = Spektrix::Tickets::Type.all.to_a
|
213
211
|
# create or update exiting
|
214
212
|
spektrix_ticket_types.each do |type|
|
215
|
-
@logger.info("Updating ticket type #{type.name}")
|
213
|
+
@logger.info("[spektrix] Updating ticket type #{type.name}")
|
216
214
|
rooftop_ticket_type = rooftop_ticket_types.find {|t| t.title == type.name} || Rooftop::Events::TicketType.new
|
217
215
|
rooftop_ticket_type.title = type.name
|
218
216
|
rooftop_ticket_type.save!
|
@@ -225,7 +223,7 @@ module Rooftop
|
|
225
223
|
rooftop_ticket_types.find {|b| b.title == title}.destroy
|
226
224
|
end
|
227
225
|
rescue => e
|
228
|
-
@logger.fatal(e
|
226
|
+
@logger.fatal("[spektrix] #{e}")
|
229
227
|
end
|
230
228
|
end
|
231
229
|
|