disco_app 0.14.4 → 0.15.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/PULL_REQUEST_TEMPLATE.md +18 -0
- data/app/controllers/disco_app/concerns/webhooks_controller.rb +48 -0
- data/app/controllers/disco_app/webhooks_controller.rb +2 -46
- data/lib/disco_app/version.rb +1 -1
- data/lib/generators/disco_app/templates/root/.gitignore +4 -0
- metadata +123 -121
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5c891183749c2628841d04af2b7ba9aea55105e298c455007f0fe27e443267ec
|
4
|
+
data.tar.gz: b525b930e8e3e3282c297b9c2ac8754a0cd5629deb51584d5823aef0f3ec0008
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be4061a4dc377bdd9b9b2271899e5cca283d8503f31281a8741ce14387d1064ee251f1bf11d3c68c20a776ab9339114a50369ccb35f61b5b933f569fa1263979
|
7
|
+
data.tar.gz: 894629b3f1747cbe6cb2417ebf369e83e6a8817d352328d3513423d8aae9fa283b0a0a3a4995cc40647da482a96c6ce7da40f0515ae3f91858b05e3522822e5d
|
@@ -0,0 +1,18 @@
|
|
1
|
+
Forecast: [C-XXX](https://app.forecast.it/project/P-X/workflow/C-XXX)
|
2
|
+
|
3
|
+
### Description
|
4
|
+
A brief overview of the work done. Be sure to provide some context to the issue/feature, so that the reviewer can jump right on in and review your sweet, sweet code.
|
5
|
+
|
6
|
+
Highlight any interesting design decisions that you may have taken.
|
7
|
+
|
8
|
+
### Notes
|
9
|
+
* A bulleted list of any secondary information that you feel would be useful to the reviewer.
|
10
|
+
* Gotchas, new dependencies, unusual data migrations, etc., would all live here.
|
11
|
+
|
12
|
+
### Checklist
|
13
|
+
|
14
|
+
- [ ] Updated README and any other relevant documentation.
|
15
|
+
- [ ] Tested changes locally.
|
16
|
+
- [ ] Updated test suite and made sure that it all passes.
|
17
|
+
- [ ] Ensured that Rubocop and friends are happy.
|
18
|
+
- [ ] Checked that this PR is referencing the correct base.
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module DiscoApp::Concerns::WebhooksController
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
|
4
|
+
included do
|
5
|
+
before_action :verify_webhook
|
6
|
+
protect_from_forgery with: :null_session
|
7
|
+
end
|
8
|
+
|
9
|
+
def process_webhook
|
10
|
+
# Get the topic and domain for this webhook.
|
11
|
+
topic = request.headers['HTTP_X_SHOPIFY_TOPIC']
|
12
|
+
shopify_domain = request.headers['HTTP_X_SHOPIFY_SHOP_DOMAIN']
|
13
|
+
|
14
|
+
# Ensure a domain was provided in the headers.
|
15
|
+
unless shopify_domain
|
16
|
+
head :bad_request
|
17
|
+
end
|
18
|
+
|
19
|
+
# Try to find a matching background job task for the given topic using class name.
|
20
|
+
job_class = DiscoApp::WebhookService.find_job_class(topic)
|
21
|
+
|
22
|
+
# Return bad request if we couldn't match a job class.
|
23
|
+
unless job_class.present?
|
24
|
+
head :bad_request
|
25
|
+
end
|
26
|
+
|
27
|
+
# Decode the body data and enqueue the appropriate job.
|
28
|
+
data = ActiveSupport::JSON::decode(request.body.read).with_indifferent_access
|
29
|
+
job_class.perform_later(shopify_domain, data)
|
30
|
+
|
31
|
+
render body: nil
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
def verify_webhook
|
37
|
+
unless webhook_is_valid?
|
38
|
+
head :unauthorized
|
39
|
+
end
|
40
|
+
request.body.rewind
|
41
|
+
end
|
42
|
+
|
43
|
+
def webhook_is_valid?
|
44
|
+
return true if Rails.env.development? and DiscoApp.configuration.skip_webhook_verification?
|
45
|
+
DiscoApp::WebhookService.is_valid_hmac?(request.body.read.to_s, ShopifyApp.configuration.secret, request.headers['HTTP_X_SHOPIFY_HMAC_SHA256'])
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
@@ -1,47 +1,3 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
before_action :verify_webhook
|
5
|
-
protect_from_forgery with: :null_session
|
6
|
-
|
7
|
-
def process_webhook
|
8
|
-
# Get the topic and domain for this webhook.
|
9
|
-
topic = request.headers['HTTP_X_SHOPIFY_TOPIC']
|
10
|
-
shopify_domain = request.headers['HTTP_X_SHOPIFY_SHOP_DOMAIN']
|
11
|
-
|
12
|
-
# Ensure a domain was provided in the headers.
|
13
|
-
unless shopify_domain
|
14
|
-
head :bad_request
|
15
|
-
end
|
16
|
-
|
17
|
-
# Try to find a matching background job task for the given topic using class name.
|
18
|
-
job_class = DiscoApp::WebhookService.find_job_class(topic)
|
19
|
-
|
20
|
-
# Return bad request if we couldn't match a job class.
|
21
|
-
unless job_class.present?
|
22
|
-
head :bad_request
|
23
|
-
end
|
24
|
-
|
25
|
-
# Decode the body data and enqueue the appropriate job.
|
26
|
-
data = ActiveSupport::JSON::decode(request.body.read).with_indifferent_access
|
27
|
-
job_class.perform_later(shopify_domain, data)
|
28
|
-
|
29
|
-
render body: nil
|
30
|
-
end
|
31
|
-
|
32
|
-
private
|
33
|
-
|
34
|
-
def verify_webhook
|
35
|
-
unless webhook_is_valid?
|
36
|
-
head :unauthorized
|
37
|
-
end
|
38
|
-
request.body.rewind
|
39
|
-
end
|
40
|
-
|
41
|
-
def webhook_is_valid?
|
42
|
-
return true if Rails.env.development? and DiscoApp.configuration.skip_webhook_verification?
|
43
|
-
DiscoApp::WebhookService.is_valid_hmac?(request.body.read.to_s, ShopifyApp.configuration.secret, request.headers['HTTP_X_SHOPIFY_HMAC_SHA256'])
|
44
|
-
end
|
45
|
-
|
46
|
-
end
|
1
|
+
class DiscoApp::WebhooksController < ActionController::Base
|
2
|
+
include DiscoApp::Concerns::WebhooksController
|
47
3
|
end
|
data/lib/disco_app/version.rb
CHANGED
@@ -19,7 +19,9 @@ pickle-email-*.html
|
|
19
19
|
## Environment normalisation:
|
20
20
|
/.bundle
|
21
21
|
/vendor/bundle
|
22
|
+
/vendor/ruby
|
22
23
|
/.env.local
|
24
|
+
.envrc
|
23
25
|
|
24
26
|
# these should all be checked in to normalise the environment:
|
25
27
|
# Gemfile.lock, .ruby-version, .ruby-gemset
|
@@ -37,3 +39,5 @@ bower.json
|
|
37
39
|
|
38
40
|
# Editors
|
39
41
|
.idea
|
42
|
+
.vscode
|
43
|
+
TAGS
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: disco_app
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.15.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gavin Ballard
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-08-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -485,6 +485,7 @@ executables: []
|
|
485
485
|
extensions: []
|
486
486
|
extra_rdoc_files: []
|
487
487
|
files:
|
488
|
+
- ".github/PULL_REQUEST_TEMPLATE.md"
|
488
489
|
- Rakefile
|
489
490
|
- app/assets/components/disco_app/buttons/model-destroy-button.es6.jsx
|
490
491
|
- app/assets/components/disco_app/forms/model-form.es6.jsx
|
@@ -584,6 +585,7 @@ files:
|
|
584
585
|
- app/controllers/disco_app/concerns/authenticated_controller.rb
|
585
586
|
- app/controllers/disco_app/concerns/carrier_request_controller.rb
|
586
587
|
- app/controllers/disco_app/concerns/user_authenticated_controller.rb
|
588
|
+
- app/controllers/disco_app/concerns/webhooks_controller.rb
|
587
589
|
- app/controllers/disco_app/frame_controller.rb
|
588
590
|
- app/controllers/disco_app/install_controller.rb
|
589
591
|
- app/controllers/disco_app/subscriptions_controller.rb
|
@@ -899,164 +901,164 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
899
901
|
version: '0'
|
900
902
|
requirements: []
|
901
903
|
rubyforge_project:
|
902
|
-
rubygems_version: 2.7.
|
904
|
+
rubygems_version: 2.7.7
|
903
905
|
signing_key:
|
904
906
|
specification_version: 4
|
905
907
|
summary: Rails engine for Shopify applications.
|
906
908
|
test_files:
|
907
|
-
- test/
|
908
|
-
- test/dummy/
|
909
|
-
- test/dummy/
|
910
|
-
- test/dummy/
|
911
|
-
- test/dummy/
|
912
|
-
- test/dummy/
|
913
|
-
- test/dummy/
|
909
|
+
- test/dummy/public/500.html
|
910
|
+
- test/dummy/public/favicon.ico
|
911
|
+
- test/dummy/public/422.html
|
912
|
+
- test/dummy/public/404.html
|
913
|
+
- test/dummy/bin/rake
|
914
|
+
- test/dummy/bin/rails
|
915
|
+
- test/dummy/bin/setup
|
916
|
+
- test/dummy/bin/bundle
|
917
|
+
- test/dummy/Rakefile
|
918
|
+
- test/dummy/config.ru
|
919
|
+
- test/dummy/app/assets/stylesheets/application.scss
|
920
|
+
- test/dummy/app/assets/javascripts/application.js
|
921
|
+
- test/dummy/app/jobs/products_create_job.rb
|
922
|
+
- test/dummy/app/jobs/products_update_job.rb
|
914
923
|
- test/dummy/app/jobs/disco_app/app_installed_job.rb
|
915
924
|
- test/dummy/app/jobs/disco_app/app_uninstalled_job.rb
|
925
|
+
- test/dummy/app/jobs/application_job.rb
|
916
926
|
- test/dummy/app/jobs/products_delete_job.rb
|
917
|
-
- test/dummy/app/jobs/products_update_job.rb
|
918
|
-
- test/dummy/app/jobs/products_create_job.rb
|
919
927
|
- test/dummy/app/jobs/carts_update_job.rb
|
920
|
-
- test/dummy/app/
|
921
|
-
- test/dummy/app/controllers/application_controller.rb
|
922
|
-
- test/dummy/app/controllers/carrier_request_controller.rb
|
928
|
+
- test/dummy/app/controllers/home_controller.rb
|
923
929
|
- test/dummy/app/controllers/disco_app/admin/shops_controller.rb
|
930
|
+
- test/dummy/app/controllers/carrier_request_controller.rb
|
924
931
|
- test/dummy/app/controllers/proxy_controller.rb
|
925
|
-
- test/dummy/app/controllers/
|
926
|
-
- test/dummy/app/
|
927
|
-
- test/dummy/app/
|
932
|
+
- test/dummy/app/controllers/application_controller.rb
|
933
|
+
- test/dummy/app/helpers/application_helper.rb
|
934
|
+
- test/dummy/app/models/disco_app/shop.rb
|
935
|
+
- test/dummy/app/models/product.rb
|
936
|
+
- test/dummy/app/models/widget_configuration.rb
|
937
|
+
- test/dummy/app/models/js_configuration.rb
|
938
|
+
- test/dummy/app/models/application_record.rb
|
939
|
+
- test/dummy/app/models/cart.rb
|
940
|
+
- test/dummy/app/views/assets/script_tag.js.erb
|
928
941
|
- test/dummy/app/views/assets/widget.scss.erb
|
929
|
-
- test/dummy/app/views/assets/widget.js.erb
|
930
942
|
- test/dummy/app/views/assets/test.js.erb
|
931
|
-
- test/dummy/app/views/assets/
|
932
|
-
- test/dummy/app/
|
933
|
-
- test/dummy/app/
|
934
|
-
- test/dummy/
|
935
|
-
- test/dummy/
|
936
|
-
- test/dummy/
|
937
|
-
- test/dummy/
|
938
|
-
- test/dummy/bin/rails
|
939
|
-
- test/dummy/config/secrets.yml
|
940
|
-
- test/dummy/config/routes.rb
|
943
|
+
- test/dummy/app/views/assets/widget.js.erb
|
944
|
+
- test/dummy/app/views/snippets/widget.liquid.erb
|
945
|
+
- test/dummy/app/views/home/index.html.erb
|
946
|
+
- test/dummy/db/migrate/20161105054746_create_carts.rb
|
947
|
+
- test/dummy/db/migrate/20160530160739_create_asset_models.rb
|
948
|
+
- test/dummy/db/migrate/20160307182229_create_products.rb
|
949
|
+
- test/dummy/db/schema.rb
|
941
950
|
- test/dummy/config/locales/en.yml
|
942
|
-
- test/dummy/config/environments/production.rb
|
943
|
-
- test/dummy/config/environments/development.rb
|
944
|
-
- test/dummy/config/environments/test.rb
|
945
|
-
- test/dummy/config/environment.rb
|
946
|
-
- test/dummy/config/application.rb
|
947
|
-
- test/dummy/config/database.yml
|
948
|
-
- test/dummy/config/database.codeship.yml
|
949
|
-
- test/dummy/config/boot.rb
|
950
|
-
- test/dummy/config/initializers/shopify_app.rb
|
951
|
-
- test/dummy/config/initializers/backtrace_silencers.rb
|
952
|
-
- test/dummy/config/initializers/mime_types.rb
|
953
951
|
- test/dummy/config/initializers/filter_parameter_logging.rb
|
954
|
-
- test/dummy/config/initializers/
|
952
|
+
- test/dummy/config/initializers/assets.rb
|
955
953
|
- test/dummy/config/initializers/session_store.rb
|
954
|
+
- test/dummy/config/initializers/inflections.rb
|
955
|
+
- test/dummy/config/initializers/mime_types.rb
|
956
956
|
- test/dummy/config/initializers/wrap_parameters.rb
|
957
|
-
- test/dummy/config/initializers/assets.rb
|
958
|
-
- test/dummy/config/initializers/cookies_serializer.rb
|
959
957
|
- test/dummy/config/initializers/disco_app.rb
|
958
|
+
- test/dummy/config/initializers/shopify_app.rb
|
959
|
+
- test/dummy/config/initializers/shopify_session_repository.rb
|
960
|
+
- test/dummy/config/initializers/backtrace_silencers.rb
|
960
961
|
- test/dummy/config/initializers/omniauth.rb
|
961
|
-
- test/dummy/config/initializers/
|
962
|
-
- test/dummy/config.
|
963
|
-
- test/dummy/
|
964
|
-
- test/dummy/
|
965
|
-
- test/dummy/
|
966
|
-
- test/dummy/
|
967
|
-
- test/dummy/
|
968
|
-
- test/dummy/
|
969
|
-
- test/dummy/
|
970
|
-
- test/dummy/
|
971
|
-
- test/dummy/
|
972
|
-
- test/integration/synchronises_test.rb
|
973
|
-
- test/models/disco_app/session_test.rb
|
974
|
-
- test/models/disco_app/renders_assets_test.rb
|
975
|
-
- test/models/disco_app/has_metafields_test.rb
|
976
|
-
- test/models/disco_app/plan_test.rb
|
977
|
-
- test/models/disco_app/shop_test.rb
|
978
|
-
- test/models/disco_app/can_be_liquified_test.rb
|
979
|
-
- test/models/disco_app/subscription_test.rb
|
980
|
-
- test/disco_app_test.rb
|
981
|
-
- test/vcr/webhook_failure.yml
|
982
|
-
- test/support/test_shopify_api.rb
|
983
|
-
- test/support/test_file_fixtures.rb
|
984
|
-
- test/fixtures/products.yml
|
985
|
-
- test/fixtures/disco_app/application_charges.yml
|
986
|
-
- test/fixtures/disco_app/shops.yml
|
987
|
-
- test/fixtures/disco_app/plan_codes.yml
|
988
|
-
- test/fixtures/disco_app/subscriptions.yml
|
989
|
-
- test/fixtures/disco_app/sources.yml
|
990
|
-
- test/fixtures/disco_app/recurring_application_charges.yml
|
991
|
-
- test/fixtures/disco_app/plans.yml
|
992
|
-
- test/fixtures/widget_configurations.yml
|
962
|
+
- test/dummy/config/initializers/cookies_serializer.rb
|
963
|
+
- test/dummy/config/secrets.yml
|
964
|
+
- test/dummy/config/routes.rb
|
965
|
+
- test/dummy/config/database.codeship.yml
|
966
|
+
- test/dummy/config/environments/production.rb
|
967
|
+
- test/dummy/config/environments/test.rb
|
968
|
+
- test/dummy/config/environments/development.rb
|
969
|
+
- test/dummy/config/environment.rb
|
970
|
+
- test/dummy/config/boot.rb
|
971
|
+
- test/dummy/config/database.yml
|
972
|
+
- test/dummy/config/application.rb
|
993
973
|
- test/fixtures/liquid/model.liquid
|
974
|
+
- test/fixtures/api/subscriptions/valid_request.json
|
975
|
+
- test/fixtures/api/widget_store/users.json
|
994
976
|
- test/fixtures/api/widget_store/carrier_services.json
|
995
|
-
- test/fixtures/api/widget_store/
|
977
|
+
- test/fixtures/api/widget_store/assets/create_test_js_response.json
|
978
|
+
- test/fixtures/api/widget_store/assets/create_widget_js_response.json
|
979
|
+
- test/fixtures/api/widget_store/assets/create_test_js_request.json
|
980
|
+
- test/fixtures/api/widget_store/assets/update_script_tag_request.json
|
981
|
+
- test/fixtures/api/widget_store/assets/create_script_tag_response.json
|
982
|
+
- test/fixtures/api/widget_store/assets/create_script_tag_js_response.json
|
983
|
+
- test/fixtures/api/widget_store/assets/create_widget_scss_request.json
|
984
|
+
- test/fixtures/api/widget_store/assets/update_script_tag_response.json
|
985
|
+
- test/fixtures/api/widget_store/assets/create_widget_liquid_request.json
|
986
|
+
- test/fixtures/api/widget_store/assets/create_script_tag_js_request.json
|
987
|
+
- test/fixtures/api/widget_store/assets/create_script_tag_request.json
|
988
|
+
- test/fixtures/api/widget_store/assets/get_script_tags_preexisting_response.json
|
989
|
+
- test/fixtures/api/widget_store/assets/create_widget_scss_response.json
|
990
|
+
- test/fixtures/api/widget_store/assets/create_widget_liquid_response.json
|
991
|
+
- test/fixtures/api/widget_store/assets/get_script_tags_preexisting_request.json
|
992
|
+
- test/fixtures/api/widget_store/assets/get_script_tags_empty_response.json
|
993
|
+
- test/fixtures/api/widget_store/assets/get_script_tags_empty_request.json
|
994
|
+
- test/fixtures/api/widget_store/assets/create_widget_js_request.json
|
996
995
|
- test/fixtures/api/widget_store/products/write_metafields_single_namespace_response.json
|
996
|
+
- test/fixtures/api/widget_store/products/write_metafields_multiple_namespaces_request.json
|
997
997
|
- test/fixtures/api/widget_store/products/write_metafields_multiple_namespaces_response.json
|
998
998
|
- test/fixtures/api/widget_store/products/write_metafields_single_namespace_request.json
|
999
|
-
- test/fixtures/api/widget_store/
|
1000
|
-
- test/fixtures/api/widget_store/charges/activate_recurring_application_charge_request.json
|
1001
|
-
- test/fixtures/api/widget_store/charges/activate_application_charge_request.json
|
1002
|
-
- test/fixtures/api/widget_store/charges/get_pending_application_charge_response.json
|
1003
|
-
- test/fixtures/api/widget_store/charges/activate_recurring_application_charge_response.json
|
1004
|
-
- test/fixtures/api/widget_store/charges/create_application_charge_request.json
|
999
|
+
- test/fixtures/api/widget_store/webhooks.json
|
1005
1000
|
- test/fixtures/api/widget_store/charges/create_application_charge_response.json
|
1001
|
+
- test/fixtures/api/widget_store/charges/create_second_recurring_application_charge_response.json
|
1006
1002
|
- test/fixtures/api/widget_store/charges/activate_application_charge_response.json
|
1007
|
-
- test/fixtures/api/widget_store/charges/
|
1008
|
-
- test/fixtures/api/widget_store/charges/
|
1009
|
-
- test/fixtures/api/widget_store/charges/get_declined_recurring_application_charge_response.json
|
1003
|
+
- test/fixtures/api/widget_store/charges/create_application_charge_request.json
|
1004
|
+
- test/fixtures/api/widget_store/charges/create_recurring_application_charge_response.json
|
1010
1005
|
- test/fixtures/api/widget_store/charges/get_pending_recurring_application_charge_response.json
|
1006
|
+
- test/fixtures/api/widget_store/charges/get_declined_recurring_application_charge_response.json
|
1007
|
+
- test/fixtures/api/widget_store/charges/get_pending_application_charge_response.json
|
1008
|
+
- test/fixtures/api/widget_store/charges/activate_recurring_application_charge_response.json
|
1011
1009
|
- test/fixtures/api/widget_store/charges/get_accepted_recurring_application_charge_response.json
|
1012
|
-
- test/fixtures/api/widget_store/charges/
|
1013
|
-
- test/fixtures/api/widget_store/charges/create_second_recurring_application_charge_response.json
|
1010
|
+
- test/fixtures/api/widget_store/charges/activate_recurring_application_charge_request.json
|
1014
1011
|
- test/fixtures/api/widget_store/charges/get_accepted_application_charge_response.json
|
1015
|
-
- test/fixtures/api/widget_store/charges/
|
1016
|
-
- test/fixtures/api/widget_store/
|
1017
|
-
- test/fixtures/api/widget_store/
|
1012
|
+
- test/fixtures/api/widget_store/charges/create_recurring_application_charge_request.json
|
1013
|
+
- test/fixtures/api/widget_store/charges/get_declined_application_charge_response.json
|
1014
|
+
- test/fixtures/api/widget_store/charges/create_second_recurring_application_charge_request.json
|
1015
|
+
- test/fixtures/api/widget_store/charges/activate_application_charge_request.json
|
1018
1016
|
- test/fixtures/api/widget_store/carrier_services_create.json
|
1019
|
-
- test/fixtures/api/widget_store/
|
1020
|
-
- test/fixtures/api/widget_store/assets/create_test_js_response.json
|
1021
|
-
- test/fixtures/api/widget_store/assets/create_widget_js_request.json
|
1022
|
-
- test/fixtures/api/widget_store/assets/update_script_tag_response.json
|
1023
|
-
- test/fixtures/api/widget_store/assets/create_script_tag_js_response.json
|
1024
|
-
- test/fixtures/api/widget_store/assets/create_script_tag_response.json
|
1025
|
-
- test/fixtures/api/widget_store/assets/create_widget_scss_request.json
|
1026
|
-
- test/fixtures/api/widget_store/assets/get_script_tags_preexisting_response.json
|
1027
|
-
- test/fixtures/api/widget_store/assets/create_widget_liquid_response.json
|
1028
|
-
- test/fixtures/api/widget_store/assets/get_script_tags_preexisting_request.json
|
1029
|
-
- test/fixtures/api/widget_store/assets/create_widget_scss_response.json
|
1030
|
-
- test/fixtures/api/widget_store/assets/create_script_tag_request.json
|
1031
|
-
- test/fixtures/api/widget_store/assets/create_widget_js_response.json
|
1032
|
-
- test/fixtures/api/widget_store/assets/get_script_tags_empty_request.json
|
1033
|
-
- test/fixtures/api/widget_store/assets/update_script_tag_request.json
|
1034
|
-
- test/fixtures/api/widget_store/assets/create_script_tag_js_request.json
|
1035
|
-
- test/fixtures/api/widget_store/assets/create_test_js_request.json
|
1036
|
-
- test/fixtures/api/widget_store/assets/get_script_tags_empty_response.json
|
1037
|
-
- test/fixtures/api/subscriptions/valid_request.json
|
1038
|
-
- test/fixtures/webhooks/product_deleted.json
|
1039
|
-
- test/fixtures/webhooks/cart_updated.json
|
1040
|
-
- test/fixtures/webhooks/product_updated.json
|
1041
|
-
- test/fixtures/webhooks/product_created.json
|
1042
|
-
- test/fixtures/webhooks/app_uninstalled.json
|
1017
|
+
- test/fixtures/api/widget_store/shop.json
|
1043
1018
|
- test/fixtures/assets/test.js
|
1044
1019
|
- test/fixtures/assets/test.min.js
|
1045
|
-
- test/fixtures/
|
1020
|
+
- test/fixtures/widget_configurations.yml
|
1046
1021
|
- test/fixtures/js_configurations.yml
|
1022
|
+
- test/fixtures/disco_app/sources.yml
|
1023
|
+
- test/fixtures/disco_app/plan_codes.yml
|
1024
|
+
- test/fixtures/disco_app/shops.yml
|
1025
|
+
- test/fixtures/disco_app/application_charges.yml
|
1026
|
+
- test/fixtures/disco_app/subscriptions.yml
|
1027
|
+
- test/fixtures/disco_app/plans.yml
|
1028
|
+
- test/fixtures/disco_app/recurring_application_charges.yml
|
1029
|
+
- test/fixtures/carts.yml
|
1030
|
+
- test/fixtures/webhooks/cart_updated.json
|
1031
|
+
- test/fixtures/webhooks/app_uninstalled.json
|
1032
|
+
- test/fixtures/webhooks/product_updated.json
|
1033
|
+
- test/fixtures/webhooks/product_created.json
|
1034
|
+
- test/fixtures/webhooks/product_deleted.json
|
1035
|
+
- test/fixtures/products.yml
|
1036
|
+
- test/support/test_file_fixtures.rb
|
1037
|
+
- test/support/test_shopify_api.rb
|
1047
1038
|
- test/test_helper.rb
|
1048
|
-
- test/
|
1049
|
-
- test/jobs/disco_app/synchronise_webhooks_job_test.rb
|
1039
|
+
- test/disco_app_test.rb
|
1050
1040
|
- test/jobs/disco_app/app_uninstalled_job_test.rb
|
1051
1041
|
- test/jobs/disco_app/synchronise_carrier_service_job_test.rb
|
1042
|
+
- test/jobs/disco_app/synchronise_users_job_test.rb
|
1052
1043
|
- test/jobs/disco_app/send_subscription_job_test.rb
|
1044
|
+
- test/jobs/disco_app/synchronise_webhooks_job_test.rb
|
1053
1045
|
- test/jobs/disco_app/app_installed_job_test.rb
|
1054
|
-
- test/
|
1046
|
+
- test/vcr/webhook_failure.yml
|
1055
1047
|
- test/controllers/disco_app/install_controller_test.rb
|
1056
|
-
- test/controllers/disco_app/
|
1048
|
+
- test/controllers/disco_app/webhooks_controller_test.rb
|
1057
1049
|
- test/controllers/disco_app/admin/shops_controller_test.rb
|
1058
1050
|
- test/controllers/disco_app/subscriptions_controller_test.rb
|
1059
|
-
- test/controllers/disco_app/
|
1051
|
+
- test/controllers/disco_app/charges_controller_test.rb
|
1052
|
+
- test/controllers/proxy_controller_test.rb
|
1060
1053
|
- test/controllers/home_controller_test.rb
|
1061
|
-
- test/
|
1054
|
+
- test/integration/synchronises_test.rb
|
1055
|
+
- test/clients/disco_app/api_client_test.rb
|
1056
|
+
- test/models/disco_app/plan_test.rb
|
1057
|
+
- test/models/disco_app/has_metafields_test.rb
|
1058
|
+
- test/models/disco_app/shop_test.rb
|
1059
|
+
- test/models/disco_app/session_test.rb
|
1060
|
+
- test/models/disco_app/subscription_test.rb
|
1061
|
+
- test/models/disco_app/can_be_liquified_test.rb
|
1062
|
+
- test/models/disco_app/renders_assets_test.rb
|
1062
1063
|
- test/services/disco_app/charges_service_test.rb
|
1064
|
+
- test/services/disco_app/subscription_service_test.rb
|