disco_app 0.9.6 → 0.9.7

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: d035f8b1439fcfce3409281206fb5c7491d184732b6ae470dd39e9a687bc1cf2
4
- data.tar.gz: 5a59b8325edc3fc9f497689752e6a43d26073191b6bdc65721f46b4b650d0e1e
3
+ metadata.gz: f2373fa9e2e7941ce1844f9a39013d2b8d776d14286e72bed6df579f106f6e9a
4
+ data.tar.gz: 6c81ea01b83d76672f51351ac3ce48b306544b4009105fa00ab9221725c1146e
5
5
  SHA512:
6
- metadata.gz: bbf3ba9e91a16e369e194029da37bb3999189b042be2a2cd39d2e3826dda975ddfc60655863165a742e0992a214953b1996da0e7ec7e8d41d8e6e123b9f35e38
7
- data.tar.gz: 1e7c6492bde9f652dc376423e4787b83267e8b3ab05609c5501d1bf334aedf28cbe156b817ea86da9ea750f7bb820d72d6977d06ff38b35ff21c8ac995b9ec6e
6
+ metadata.gz: 1372f63725960c73e1b04f175a391c3c231c2fbb51ccdf2d8ad378bf95f3e276d7ad6b5395d2e2ae48a4c84bddf6bb0acfbe8ffb28fe4fe46e203554e172ca65
7
+ data.tar.gz: d3903b077abe35f53643bfde624d7448d64775b1e84bb4ec80f7f940b5aaba093670f0104b4623091a3a3b5a9654d648da42053dd59ccec5f9ea5a609b6edc46
@@ -0,0 +1,12 @@
1
+ module DiscoApp::Concerns::SynchroniseResourcesJob
2
+ extend ActiveSupport::Concern
3
+
4
+ def perform(shop, class_name, params)
5
+ klass = class_name.constantize
6
+
7
+ klass::SHOPIFY_API_CLASS.find(:all, params: params).map do |shopify_resource|
8
+ klass.synchronise(@shop, shopify_resource.serializable_hash)
9
+ end
10
+ end
11
+
12
+ end
@@ -0,0 +1,3 @@
1
+ class DiscoApp::SynchroniseResourcesJob < DiscoApp::ShopJob
2
+ include DiscoApp::Concerns::SynchroniseResourcesJob
3
+ end
@@ -3,6 +3,9 @@ module DiscoApp::Concerns::Synchronises
3
3
 
4
4
  class_methods do
5
5
 
6
+ # Define the number of resources per page to fetch.
7
+ SYNCHRONISES_PAGE_LIMIT = 250
8
+
6
9
  def should_synchronise?(shop, data)
7
10
  true
8
11
  end
@@ -34,6 +37,14 @@ module DiscoApp::Concerns::Synchronises
34
37
  self.destroy_all(shop: shop, id: data[:id])
35
38
  end
36
39
 
40
+ def synchronise_all(shop, params = {})
41
+ resource_count = shop.temp { self::SHOPIFY_API_CLASS.count(params) }
42
+
43
+ (1..(resource_count / SYNCHRONISES_PAGE_LIMIT.to_f).ceil).each do |page|
44
+ DiscoApp::SynchroniseResourcesJob.perform_later(shop, self.name, params.merge(page: page, limit: SYNCHRONISES_PAGE_LIMIT))
45
+ end
46
+ end
47
+
37
48
  end
38
49
 
39
50
  end
@@ -0,0 +1,16 @@
1
+ module DiscoApp::Concerns::Taggable
2
+ extend ActiveSupport::Concern
3
+
4
+ def tags
5
+ data['tags'].split(',').map(&:strip)
6
+ end
7
+
8
+ def add_tag(tag)
9
+ data['tags'] = (tags + [tag]).uniq.join(',')
10
+ end
11
+
12
+ def remove_tag(tag)
13
+ data['tags'] = (tags - [tag]).uniq.join(',')
14
+ end
15
+
16
+ end
@@ -1,3 +1,3 @@
1
1
  module DiscoApp
2
- VERSION = '0.9.6'
2
+ VERSION = '0.9.7'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: disco_app
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.6
4
+ version: 0.9.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gavin Ballard
@@ -428,12 +428,14 @@ files:
428
428
  - app/jobs/disco_app/concerns/shop_update_job.rb
429
429
  - app/jobs/disco_app/concerns/subscription_changed_job.rb
430
430
  - app/jobs/disco_app/concerns/synchronise_carrier_service_job.rb
431
+ - app/jobs/disco_app/concerns/synchronise_resources_job.rb
431
432
  - app/jobs/disco_app/concerns/synchronise_webhooks_job.rb
432
433
  - app/jobs/disco_app/render_asset_group_job.rb
433
434
  - app/jobs/disco_app/shop_job.rb
434
435
  - app/jobs/disco_app/shop_update_job.rb
435
436
  - app/jobs/disco_app/subscription_changed_job.rb
436
437
  - app/jobs/disco_app/synchronise_carrier_service_job.rb
438
+ - app/jobs/disco_app/synchronise_resources_job.rb
437
439
  - app/jobs/disco_app/synchronise_webhooks_job.rb
438
440
  - app/models/disco_app/app_settings.rb
439
441
  - app/models/disco_app/application_charge.rb
@@ -444,6 +446,7 @@ files:
444
446
  - app/models/disco_app/concerns/shop.rb
445
447
  - app/models/disco_app/concerns/subscription.rb
446
448
  - app/models/disco_app/concerns/synchronises.rb
449
+ - app/models/disco_app/concerns/taggable.rb
447
450
  - app/models/disco_app/plan.rb
448
451
  - app/models/disco_app/plan_code.rb
449
452
  - app/models/disco_app/recurring_application_charge.rb