disco_app 0.9.6 → 0.9.7

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: 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