pvdgm_services 0.1.0
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 +7 -0
- data/README.md +29 -0
- data/Rakefile +40 -0
- data/app/contexts/services/accept_hl7_message_context.rb +32 -0
- data/app/contexts/services/application_mds_context.rb +21 -0
- data/app/contexts/services/complete_sltc_registration_process_context.rb +23 -0
- data/app/contexts/services/create_account_mapping_context.rb +23 -0
- data/app/contexts/services/create_configured_account_context.rb +26 -0
- data/app/contexts/services/create_configured_facility_context.rb +26 -0
- data/app/contexts/services/create_credential_context.rb +23 -0
- data/app/contexts/services/create_facility_mapping_context.rb +23 -0
- data/app/contexts/services/create_public_key_context.rb +22 -0
- data/app/contexts/services/create_service_context.rb +22 -0
- data/app/contexts/services/create_service_definition_context.rb +26 -0
- data/app/contexts/services/create_sltc_registration_context.rb +24 -0
- data/app/contexts/services/create_third_party_context.rb +22 -0
- data/app/contexts/services/hl7_message_trimming_context.rb +19 -0
- data/app/contexts/services/invoke_service_context.rb +21 -0
- data/app/contexts/services/list_sltc_providers_context.rb +22 -0
- data/app/contexts/services/mds_file_processing_context.rb +27 -0
- data/app/contexts/services/mds_file_upload_context.rb +25 -0
- data/app/contexts/services/mds_pull_context.rb +21 -0
- data/app/contexts/services/monthly_service_table_cleanup_context.rb +19 -0
- data/app/contexts/services/notify_new_registration_context.rb +22 -0
- data/app/contexts/services/notify_sltc_provider_change_context.rb +19 -0
- data/app/contexts/services/request_sltc_baseline_context.rb +23 -0
- data/app/contexts/services/update_account_mapping_context.rb +23 -0
- data/app/contexts/services/update_configured_account_context.rb +26 -0
- data/app/contexts/services/update_configured_facility_context.rb +26 -0
- data/app/contexts/services/update_credential_context.rb +23 -0
- data/app/contexts/services/update_facility_mapping_context.rb +23 -0
- data/app/contexts/services/update_public_key_context.rb +23 -0
- data/app/contexts/services/update_service_context.rb +23 -0
- data/app/contexts/services/update_service_definition_context.rb +26 -0
- data/app/contexts/services/update_third_party_context.rb +23 -0
- data/app/controllers/services/account_mappings_controller.rb +54 -0
- data/app/controllers/services/adts_controller.rb +35 -0
- data/app/controllers/services/application_controller.rb +17 -0
- data/app/controllers/services/assessment_requests_controller.rb +48 -0
- data/app/controllers/services/available_files_controller.rb +19 -0
- data/app/controllers/services/configured_account_base_controller.rb +17 -0
- data/app/controllers/services/configured_accounts_controller.rb +59 -0
- data/app/controllers/services/configured_facilities_controller.rb +65 -0
- data/app/controllers/services/facility_mappings_controller.rb +58 -0
- data/app/controllers/services/mds_files_controller.rb +75 -0
- data/app/controllers/services/mds_pull_accounts_controller.rb +57 -0
- data/app/controllers/services/public_keys_controller.rb +50 -0
- data/app/controllers/services/service_base_controller.rb +18 -0
- data/app/controllers/services/service_definition_base_controller.rb +31 -0
- data/app/controllers/services/service_definitions_controller.rb +59 -0
- data/app/controllers/services/services_controller.rb +56 -0
- data/app/controllers/services/sltc_providers_controller.rb +15 -0
- data/app/controllers/services/sltc_registrations_controller.rb +74 -0
- data/app/controllers/services/status_masking.rb +17 -0
- data/app/controllers/services/third_parties_controller.rb +47 -0
- data/app/controllers/services/third_party_base_controller.rb +17 -0
- data/app/controllers/services/validation_controller.rb +17 -0
- data/app/helpers/services/application_helper.rb +8 -0
- data/app/helpers/services/assessment_request_helper.rb +19 -0
- data/app/helpers/services/available_files_helper.rb +27 -0
- data/app/helpers/services/mds_pull_accounts_helper.rb +27 -0
- data/app/helpers/services/sltc_registrations_helper.rb +15 -0
- data/app/mailers/services_mailer.rb +57 -0
- data/app/models/services/abaqis_mds_push.rb +51 -0
- data/app/models/services/account_mapping.rb +10 -0
- data/app/models/services/application_api.rb +19 -0
- data/app/models/services/assessment_request.rb +18 -0
- data/app/models/services/available_file.rb +73 -0
- data/app/models/services/configured_account.rb +26 -0
- data/app/models/services/configured_facility.rb +16 -0
- data/app/models/services/credential.rb +9 -0
- data/app/models/services/facility_mapping.rb +12 -0
- data/app/models/services/ftp_server.rb +69 -0
- data/app/models/services/hl7_inbound_service.rb +47 -0
- data/app/models/services/hl7_message.rb +27 -0
- data/app/models/services/isc_code.rb +15 -0
- data/app/models/services/isc_code_lookup.rb +75 -0
- data/app/models/services/mds_assessment.rb +371 -0
- data/app/models/services/mds_content.rb +55 -0
- data/app/models/services/mds_pull.rb +41 -0
- data/app/models/services/mds_pull_account.rb +192 -0
- data/app/models/services/mds_push.rb +24 -0
- data/app/models/services/mds_upload.rb +64 -0
- data/app/models/services/mds_upload_content.rb +148 -0
- data/app/models/services/mds_ws_response.rb +21 -0
- data/app/models/services/mds_ws_response_handler.rb +31 -0
- data/app/models/services/pcc_mds_pull.rb +77 -0
- data/app/models/services/provider_change.rb +26 -0
- data/app/models/services/public_key.rb +11 -0
- data/app/models/services/service.rb +20 -0
- data/app/models/services/service_definition.rb +37 -0
- data/app/models/services/service_implementation.rb +29 -0
- data/app/models/services/sltc_api.rb +179 -0
- data/app/models/services/sltc_api_exception.rb +54 -0
- data/app/models/services/sltc_mds_pull.rb +230 -0
- data/app/models/services/sltc_registration.rb +23 -0
- data/app/models/services/third_party.rb +18 -0
- data/app/roles/services/account_mapping_creator.rb +13 -0
- data/app/roles/services/account_mapping_updator.rb +12 -0
- data/app/roles/services/configured_account_creator.rb +13 -0
- data/app/roles/services/configured_account_updater.rb +12 -0
- data/app/roles/services/configured_facility_creator.rb +13 -0
- data/app/roles/services/configured_facility_updater.rb +12 -0
- data/app/roles/services/credential_creator.rb +11 -0
- data/app/roles/services/credential_updater.rb +20 -0
- data/app/roles/services/facility_mapping_creator.rb +13 -0
- data/app/roles/services/facility_mapping_updater.rb +11 -0
- data/app/roles/services/hl7_adt_message_saver.rb +15 -0
- data/app/roles/services/hl7_message_trimmer.rb +14 -0
- data/app/roles/services/mds_assessment_categorizer.rb +71 -0
- data/app/roles/services/mds_file_processor.rb +86 -0
- data/app/roles/services/mds_notifications.rb +44 -0
- data/app/roles/services/monthly_service_table_cleaner.rb +19 -0
- data/app/roles/services/new_registration_notifier.rb +11 -0
- data/app/roles/services/public_key_creator.rb +14 -0
- data/app/roles/services/public_key_updater.rb +12 -0
- data/app/roles/services/service_creator.rb +13 -0
- data/app/roles/services/service_definition_creator.rb +13 -0
- data/app/roles/services/service_definition_updater.rb +12 -0
- data/app/roles/services/service_invoker.rb +25 -0
- data/app/roles/services/service_updater.rb +11 -0
- data/app/roles/services/sltc_baseline_requestor.rb +19 -0
- data/app/roles/services/sltc_provider_change_notifier.rb +25 -0
- data/app/roles/services/sltc_provider_lister.rb +13 -0
- data/app/roles/services/sltc_registration_completer.rb +81 -0
- data/app/roles/services/sltc_registration_saver.rb +13 -0
- data/app/roles/services/submit_mds_file_for_processing.rb +28 -0
- data/app/roles/services/third_party_creator.rb +13 -0
- data/app/roles/services/third_party_updater.rb +12 -0
- data/app/utils/services/file_upload_handler.rb +33 -0
- data/app/utils/services/mds_upload_filters.rb +26 -0
- data/app/utils/services/mds_xml_file_parser.rb +104 -0
- data/app/utils/services/upload_file.rb +13 -0
- data/app/validators/isc_code_validator.rb +42 -0
- data/app/validators/mds_birthdate_validator.rb +37 -0
- data/app/validators/mds_date_validator.rb +8 -0
- data/app/validators/mds_integer_validator.rb +15 -0
- data/app/validators/mds_version_validator.rb +16 -0
- data/app/validators/state_code_validator.rb +9 -0
- data/app/views/layouts/services/application.html.erb +14 -0
- data/app/views/services/account_mappings/index.json.jbuilder +9 -0
- data/app/views/services/account_mappings/show.json.jbuilder +7 -0
- data/app/views/services/assessment_requests/index.json.jbuilder +11 -0
- data/app/views/services/available_files/index.json.jbuilder +13 -0
- data/app/views/services/configured_accounts/index.json.jbuilder +13 -0
- data/app/views/services/configured_accounts/show.json.jbuilder +11 -0
- data/app/views/services/configured_facilities/index.json.jbuilder +13 -0
- data/app/views/services/configured_facilities/show.json.jbuilder +11 -0
- data/app/views/services/facility_mappings/index.json.jbuilder +10 -0
- data/app/views/services/facility_mappings/show.json.jbuilder +8 -0
- data/app/views/services/mds_files/create.builder +10 -0
- data/app/views/services/mds_pull_accounts/index.json.jbuilder +11 -0
- data/app/views/services/public_keys/index.json.jbuilder +8 -0
- data/app/views/services/public_keys/show.json.jbuilder +6 -0
- data/app/views/services/service_definitions/index.json.jbuilder +17 -0
- data/app/views/services/service_definitions/show.json.jbuilder +16 -0
- data/app/views/services/services/index.json.jbuilder +6 -0
- data/app/views/services/services/show.json.jbuilder +4 -0
- data/app/views/services/sltc_providers/index.json.jbuilder +10 -0
- data/app/views/services/sltc_registrations/index.json.jbuilder +10 -0
- data/app/views/services/third_parties/index.json.jbuilder +7 -0
- data/app/views/services/third_parties/show.json.jbuilder +5 -0
- data/app/views/services_mailer/burying_job.html.erb +20 -0
- data/app/views/services_mailer/delaying_job.html.erb +20 -0
- data/app/views/services_mailer/notify_sltc_client_registration.html.erb +39 -0
- data/app/views/services_mailer/notify_sltc_client_registration_invalid_request_type.html.erb +8 -0
- data/app/views/services_mailer/notify_sltc_client_registration_request_invalid.html.erb +10 -0
- data/app/views/services_mailer/notify_sltc_client_registration_validation_errors.html.erb +13 -0
- data/app/views/services_mailer/notify_sltc_provider_changes.html.erb +26 -0
- data/app/views/services_mailer/notify_support_about_no_mds_pull.html.erb +6 -0
- data/config/routes.rb +48 -0
- data/db/migrate/20140102000000_create_services_engine_tables.rb +131 -0
- data/db/migrate/20140517184450_new_services_columns.rb +24 -0
- data/db/migrate/20140525142842_new_configured_provider_table.rb +18 -0
- data/db/migrate/20140714172442_add_error_column_to_hl7_messages.rb +5 -0
- data/db/migrate/20140730164152_mds_upload_tables.rb +78 -0
- data/db/sql_data/service_data_setup.sql +24 -0
- data/lib/services/engine.rb +40 -0
- data/lib/services/version.rb +3 -0
- data/lib/services.rb +4 -0
- data/lib/tasks/services_tasks.rake +40 -0
- data/spec/dummy/README.rdoc +261 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/javascripts/application.js +15 -0
- data/spec/dummy/app/assets/stylesheets/application.css +13 -0
- data/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/config/application.rb +60 -0
- data/spec/dummy/config/boot.rb +10 -0
- data/spec/dummy/config/database.yml +29 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +35 -0
- data/spec/dummy/config/environments/production.rb +68 -0
- data/spec/dummy/config/environments/test.rb +32 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/email.rb +1 -0
- data/spec/dummy/config/initializers/inflections.rb +15 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/routes.rb +4 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/db/schema.rb +237 -0
- data/spec/dummy/db/sql_data/services_isc_codes.sql +878 -0
- data/spec/dummy/log/test.log +3498 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +25 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/models/abaqis_mds_push_spec.rb +120 -0
- data/spec/models/available_file_spec.rb +234 -0
- data/spec/models/configured_account_spec.rb +39 -0
- data/spec/models/ftp_server_spec.rb +221 -0
- data/spec/models/isc_code_lookup_spec.rb +125 -0
- data/spec/models/isc_code_spec.rb +5 -0
- data/spec/models/mds_assessment_spec.rb +1070 -0
- data/spec/models/mds_pull_account_spec.rb +468 -0
- data/spec/models/mds_pull_spec.rb +48 -0
- data/spec/models/mds_push_spec.rb +43 -0
- data/spec/models/mds_ws_response_spec.rb +54 -0
- data/spec/models/pcc_mds_pull_spec.rb +273 -0
- data/spec/models/service_implementation_spec.rb +88 -0
- data/spec/models/sltc_api_exception_spec.rb +136 -0
- data/spec/models/sltc_api_spec.rb +192 -0
- data/spec/models/sltc_mds_pull_spec.rb +776 -0
- data/spec/roles/account_mapping_creator_spec.rb +40 -0
- data/spec/roles/account_mapping_updator_spec.rb +16 -0
- data/spec/roles/configured_account_creator_spec.rb +40 -0
- data/spec/roles/configured_account_updater_spec.rb +16 -0
- data/spec/roles/configured_facility_creator_spec.rb +40 -0
- data/spec/roles/configured_facility_updater_spec.rb +16 -0
- data/spec/roles/credential_creator_spec.rb +23 -0
- data/spec/roles/credential_updater_spec.rb +38 -0
- data/spec/roles/facility_mapping_creator_spec.rb +40 -0
- data/spec/roles/facility_mapping_updater_spec.rb +16 -0
- data/spec/roles/hl7_adt_message_saver_spec.rb +35 -0
- data/spec/roles/hl7_message_trimmer_spec.rb +31 -0
- data/spec/roles/monthly_service_table_cleaner_spec.rb +27 -0
- data/spec/roles/new_registration_notifier_spec.rb +18 -0
- data/spec/roles/service_ceator_spec.rb +34 -0
- data/spec/roles/service_definition_creator_spec.rb +40 -0
- data/spec/roles/service_definition_updater_spec.rb +16 -0
- data/spec/roles/service_invoker_spec.rb +22 -0
- data/spec/roles/service_updater_spec.rb +17 -0
- data/spec/roles/sltc_baseline_requestor_spec.rb +30 -0
- data/spec/roles/sltc_provider_lister_spec.rb +27 -0
- data/spec/roles/sltc_registration_completer_spec.rb +187 -0
- data/spec/roles/sltc_registration_saver_spec.rb +34 -0
- data/spec/roles/third_party_creator_spec.rb +34 -0
- data/spec/roles/third_party_updater_spec.rb +17 -0
- data/spec/spec_helper.rb +72 -0
- metadata +581 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: a3a2f56c0586f9c4f1b6a8acc4bf954a703383ec
|
|
4
|
+
data.tar.gz: acc46ef43ac04080b1f167b0b811037b6651ac32
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 0ca70c8e6a3001f8392e0d996d55b774256cbdeb95e5f2cb7b5a0106550390331a84aad2b7ffb0e74a4219b93fdc9712b170ecd7dd37bdf828807b12b9f81228
|
|
7
|
+
data.tar.gz: 4ca1182b2c3308ac03e2f552fd03773b26f8c4f9d07af47d71a2ba80967da74d87c33bc852af297eaa298945e4aada3ad962f546460dbbc84c55612228a02161
|
data/README.md
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
Services
|
|
2
|
+
========
|
|
3
|
+
|
|
4
|
+
This Rails engine provides a number of services that can be added to
|
|
5
|
+
a Rails application:
|
|
6
|
+
|
|
7
|
+
1. MDS Uploads - Exposes a web services to handle automated uploads.
|
|
8
|
+
2. MDS Push - Registration of an MDS Push web service
|
|
9
|
+
3. MDS Pull - Support for a variety of sources from which MDS files can be pulled. (SFTP, SLTC).
|
|
10
|
+
4. SLTC Registration/Management
|
|
11
|
+
5. HL7 Message receipt
|
|
12
|
+
|
|
13
|
+
Most of the services can be easily augmented to support additional data sources.
|
|
14
|
+
|
|
15
|
+
Have fun.
|
|
16
|
+
|
|
17
|
+
Testing
|
|
18
|
+
-------
|
|
19
|
+
|
|
20
|
+
There are approximately 267 unit tests available for this engine. To set up and
|
|
21
|
+
run the tests:
|
|
22
|
+
|
|
23
|
+
1. cd <parent_path>/services
|
|
24
|
+
2. rake db:create
|
|
25
|
+
3. rake db:migrate RAILS_ENV=test
|
|
26
|
+
4. rake app:db:static RAILS_ENV=test # Loads the isc_code tables.
|
|
27
|
+
5. rspec spec
|
|
28
|
+
|
|
29
|
+
Boom.
|
data/Rakefile
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#!/usr/bin/env rake
|
|
2
|
+
require 'foreigner'
|
|
3
|
+
begin
|
|
4
|
+
require 'bundler/setup'
|
|
5
|
+
rescue LoadError
|
|
6
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
|
|
10
|
+
load 'rails/tasks/engine.rake'
|
|
11
|
+
# load 'lib/tasks/services_tasks.rake'
|
|
12
|
+
|
|
13
|
+
Dir[File.join(File.dirname(__FILE__), 'tasks/**/*.rake')].each {|f| load f }
|
|
14
|
+
|
|
15
|
+
begin
|
|
16
|
+
require 'rdoc/task'
|
|
17
|
+
rescue LoadError
|
|
18
|
+
require 'rdoc/rdoc'
|
|
19
|
+
require 'rake/rdoctask'
|
|
20
|
+
RDoc::Task = Rake::RDocTask
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
|
24
|
+
rdoc.rdoc_dir = 'rdoc'
|
|
25
|
+
rdoc.title = 'Services'
|
|
26
|
+
rdoc.options << '--line-numbers'
|
|
27
|
+
rdoc.rdoc_files.include('README.rdoc')
|
|
28
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
Bundler::GemHelper.install_tasks
|
|
35
|
+
|
|
36
|
+
require 'rspec/core'
|
|
37
|
+
require 'rspec/core/rake_task'
|
|
38
|
+
desc "Run all specs in spec directory (excluding plugin specs)"
|
|
39
|
+
RSpec::Core::RakeTask.new(:spec => 'app:db:test:prepare')
|
|
40
|
+
task :default => :spec
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class AcceptHl7MessageContext
|
|
4
|
+
|
|
5
|
+
class << self
|
|
6
|
+
attr_accessor :message_processing_context_class
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
attr_accessor :message_type, :message_body
|
|
10
|
+
|
|
11
|
+
def self.call(message_type, body)
|
|
12
|
+
raise "No message processing context class specified" if self.message_processing_context_class.nil?
|
|
13
|
+
AcceptHl7MessageContext.new(message_type, body).call
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def initialize(message_type, body)
|
|
17
|
+
@message_type = message_type
|
|
18
|
+
@message_body = body
|
|
19
|
+
self.extend Services::Hl7AdtMessageSaver
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def call
|
|
23
|
+
# Save the raw message information
|
|
24
|
+
persist(message_type, message_body).tap do | msg |
|
|
25
|
+
# Then drop a message on beanstalk to process it
|
|
26
|
+
self.class.message_processing_context_class.ayl_send(:call, msg) if msg.valid?
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class ApplicationMdsContext
|
|
4
|
+
|
|
5
|
+
TIME_TO_RUN = 36000
|
|
6
|
+
PRIORITY = 500
|
|
7
|
+
ASYNC_SEND_OPTIONS = { :priority => PRIORITY, :time_to_run => TIME_TO_RUN }
|
|
8
|
+
|
|
9
|
+
class << self
|
|
10
|
+
attr_accessor :mds_processing_context
|
|
11
|
+
|
|
12
|
+
def call(mds_upload)
|
|
13
|
+
raise "Must configure an MDS Processing context!" unless mds_processing_context.present?
|
|
14
|
+
mds_processing_context.ayl_send_opts(:call, ASYNC_SEND_OPTIONS, mds_upload)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class CompleteSltcRegistrationProcessContext
|
|
4
|
+
|
|
5
|
+
attr_accessor :registration, :params
|
|
6
|
+
|
|
7
|
+
def self.call(registration, params)
|
|
8
|
+
CompleteSltcRegistrationProcessContext.new(registration, params).call
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize(registration, params)
|
|
12
|
+
@registration = registration
|
|
13
|
+
@params = params
|
|
14
|
+
@registration.extend Services::SltcRegistrationCompleter
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def call
|
|
18
|
+
registration.complete(params)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class CreateAccountMappingContext
|
|
4
|
+
|
|
5
|
+
attr_accessor :third_party, :params
|
|
6
|
+
|
|
7
|
+
def self.call(third_party, params)
|
|
8
|
+
CreateAccountMappingContext.new(third_party, params).call
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize(third_party, params)
|
|
12
|
+
@third_party = third_party
|
|
13
|
+
@params = params
|
|
14
|
+
@third_party.extend Services::AccountMappingCreator
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def call
|
|
18
|
+
third_party.create(params)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class CreateConfiguredAccountContext
|
|
4
|
+
|
|
5
|
+
attr_accessor :service_definition, :ca_params, :cred_params
|
|
6
|
+
|
|
7
|
+
def self.call(service_definition, ca_params, cred_params)
|
|
8
|
+
CreateConfiguredAccountContext.new(service_definition, ca_params, cred_params).call
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize(service_definition, ca_params, cred_params)
|
|
12
|
+
@service_definition = service_definition
|
|
13
|
+
@ca_params = ca_params
|
|
14
|
+
@cred_params = cred_params
|
|
15
|
+
@service_definition.extend Services::ConfiguredAccountCreator
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def call
|
|
19
|
+
service_definition.create(ca_params).tap do | configured_account |
|
|
20
|
+
CreateCredentialContext.call(configured_account, cred_params) if cred_params.present?
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class CreateConfiguredFacilityContext
|
|
4
|
+
|
|
5
|
+
attr_accessor :service_definition, :cf_params, :cred_params
|
|
6
|
+
|
|
7
|
+
def self.call(service_definition, cf_params, cred_params)
|
|
8
|
+
CreateConfiguredFacilityContext.new(service_definition, cf_params, cred_params).call
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize(service_definition, cf_params, cred_params)
|
|
12
|
+
@service_definition = service_definition
|
|
13
|
+
@cf_params = cf_params
|
|
14
|
+
@cred_params = cred_params
|
|
15
|
+
@service_definition.extend Services::ConfiguredFacilityCreator
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def call
|
|
19
|
+
service_definition.create(cf_params).tap do | configured_facility |
|
|
20
|
+
CreateCredentialContext.call(configured_facility, cred_params) if cred_params.present?
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class CreateCredentialContext
|
|
4
|
+
|
|
5
|
+
attr_accessor :credentialled_object, :params
|
|
6
|
+
|
|
7
|
+
def self.call(credentialled_object, params)
|
|
8
|
+
CreateCredentialContext.new(credentialled_object, params).call
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize(credentialled_object, params)
|
|
12
|
+
@credentialled_object = credentialled_object
|
|
13
|
+
@params = params
|
|
14
|
+
@credentialled_object.extend Services::CredentialCreator
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def call
|
|
18
|
+
credentialled_object.add_credential(params)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class CreateFacilityMappingContext
|
|
4
|
+
|
|
5
|
+
attr_accessor :third_party, :params
|
|
6
|
+
|
|
7
|
+
def self.call(third_party, params)
|
|
8
|
+
CreateFacilityMappingContext.new(third_party, params).call
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize(third_party, params)
|
|
12
|
+
@third_party = third_party
|
|
13
|
+
@params = params
|
|
14
|
+
@third_party.extend Services::FacilityMappingCreator
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def call
|
|
18
|
+
third_party.create(params)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class CreatePublicKeyContext
|
|
4
|
+
|
|
5
|
+
attr_accessor :params
|
|
6
|
+
|
|
7
|
+
def self.call(params)
|
|
8
|
+
CreatePublicKeyContext.new(params).call
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize(params)
|
|
12
|
+
@params = params
|
|
13
|
+
self.extend Services::PublicKeyCreator
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def call
|
|
17
|
+
create(params)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class CreateServiceContext
|
|
4
|
+
|
|
5
|
+
attr_accessor :params
|
|
6
|
+
|
|
7
|
+
def self.call(params)
|
|
8
|
+
CreateServiceContext.new(params).call
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize(params)
|
|
12
|
+
@params = params
|
|
13
|
+
self.extend Services::ServiceCreator
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def call
|
|
17
|
+
create(params)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class CreateServiceDefinitionContext
|
|
4
|
+
|
|
5
|
+
attr_accessor :owner, :sd_params, :cred_params
|
|
6
|
+
|
|
7
|
+
def self.call(owner, sd_params, cred_params)
|
|
8
|
+
CreateServiceDefinitionContext.new(owner, sd_params, cred_params).call
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize(owner, sd_params, cred_params)
|
|
12
|
+
@owner = owner
|
|
13
|
+
@sd_params = sd_params
|
|
14
|
+
@cred_params = cred_params
|
|
15
|
+
@owner.extend Services::ServiceDefinitionCreator
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def call
|
|
19
|
+
owner.create(sd_params).tap do | service_definition |
|
|
20
|
+
CreateCredentialContext.call(service_definition, cred_params) if cred_params.present?
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class CreateSltcRegistrationContext
|
|
4
|
+
|
|
5
|
+
attr_accessor :params
|
|
6
|
+
|
|
7
|
+
def self.call(params)
|
|
8
|
+
CreateSltcRegistrationContext.new(params).call
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize(params)
|
|
12
|
+
@params = params
|
|
13
|
+
self.extend Services::SltcRegistrationSaver
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def call
|
|
17
|
+
save_registration(params).tap do | registration |
|
|
18
|
+
NotifyNewRegistrationContext.call(registration) if registration.errors.blank?
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class CreateThirdPartyContext
|
|
4
|
+
|
|
5
|
+
attr_accessor :params
|
|
6
|
+
|
|
7
|
+
def self.call(params)
|
|
8
|
+
CreateThirdPartyContext.new(params).call
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize(params)
|
|
12
|
+
@params = params
|
|
13
|
+
self.extend Services::ThirdPartyCreator
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def call
|
|
17
|
+
create(params)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class InvokeServiceContext
|
|
4
|
+
attr_reader :service
|
|
5
|
+
|
|
6
|
+
def self.call(service)
|
|
7
|
+
InvokeServiceContext.new(service).call
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def initialize(service)
|
|
11
|
+
@service = service
|
|
12
|
+
@service.extend Services::ServiceInvoker
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def call
|
|
16
|
+
service.invoke
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class ListSltcProvidersContext
|
|
4
|
+
|
|
5
|
+
attr_accessor :configured_account
|
|
6
|
+
|
|
7
|
+
def self.call(configured_account)
|
|
8
|
+
ListSltcProvidersContext.new(configured_account).call
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize(configured_account)
|
|
12
|
+
@configured_account = configured_account
|
|
13
|
+
configured_account.extend Services::SltcProviderLister
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def call
|
|
17
|
+
configured_account.list_providers
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class MdsFileProcessingContext
|
|
4
|
+
|
|
5
|
+
attr_reader :mds_upload
|
|
6
|
+
|
|
7
|
+
def self.call(mds_upload)
|
|
8
|
+
MdsFileProcessingContext.new(mds_upload).call
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize(mds_upload)
|
|
12
|
+
@mds_upload = mds_upload
|
|
13
|
+
|
|
14
|
+
@mds_upload.extend MdsFileProcessor
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def call
|
|
18
|
+
mds_upload.process
|
|
19
|
+
|
|
20
|
+
# Now tell the application to do its thing
|
|
21
|
+
Services::ApplicationMdsContext.call mds_upload
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end
|
|
27
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class MdsFileUploadContext
|
|
4
|
+
|
|
5
|
+
attr_reader :uploaded_file, :upload_user, :account, :notify_uploader
|
|
6
|
+
|
|
7
|
+
def self.call(account, upload_user, uploaded_file, notify_uploader=false)
|
|
8
|
+
MdsFileUploadContext.new(account, upload_user, uploaded_file, notify_uploader).call
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize(account, upload_user, uploaded_file, notify_uploader=false)
|
|
12
|
+
@uploaded_file = uploaded_file
|
|
13
|
+
@upload_user = upload_user
|
|
14
|
+
@account = account
|
|
15
|
+
@notify_uploader = notify_uploader
|
|
16
|
+
|
|
17
|
+
self.extend SubmitMdsFileForProcessing
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def call
|
|
21
|
+
self.submit_uploaded_file
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class MdsPullContext
|
|
4
|
+
attr_reader :service
|
|
5
|
+
|
|
6
|
+
def self.call
|
|
7
|
+
MdsPullContext.new.call
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def initialize
|
|
11
|
+
@service = Services::Service.where(key: Services::Service::MDS_PULL).first
|
|
12
|
+
@service.extend Services::ServiceInvoker
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def call
|
|
16
|
+
service.invoke
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class MonthlyServiceTableCleanupContext
|
|
4
|
+
|
|
5
|
+
def self.call
|
|
6
|
+
MonthlyServiceTableCleanupContext.new.call
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def initialize
|
|
10
|
+
self.extend MonthlyServiceTableCleaner
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def call
|
|
14
|
+
clean_up_service_tables
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class NotifyNewRegistrationContext
|
|
4
|
+
|
|
5
|
+
attr_accessor :registration
|
|
6
|
+
|
|
7
|
+
def self.call(registration)
|
|
8
|
+
NotifyNewRegistrationContext.new(registration).call
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize(registration)
|
|
12
|
+
@registration = registration
|
|
13
|
+
@registration.extend Services::NewRegistrationNotifier
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def call
|
|
17
|
+
registration.notify
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class NotifySltcProviderChangeContext
|
|
4
|
+
|
|
5
|
+
def self.call
|
|
6
|
+
NotifySltcProviderChangeContext.new.call
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def initialize
|
|
10
|
+
self.extend Services::SltcProviderChangeNotifier
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def call
|
|
14
|
+
self.notify
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class RequestSltcBaselineContext
|
|
4
|
+
|
|
5
|
+
attr_accessor :configured_account, :params
|
|
6
|
+
|
|
7
|
+
def self.call(configured_account, params)
|
|
8
|
+
RequestSltcBaselineContext.new(configured_account, params).call
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize(configured_account, params)
|
|
12
|
+
@configured_account = configured_account
|
|
13
|
+
@params = params
|
|
14
|
+
@configured_account.extend Services::SltcBaselineRequestor
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def call
|
|
18
|
+
configured_account.request_baseline(params)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class UpdateAccountMappingContext
|
|
4
|
+
|
|
5
|
+
attr_accessor :account_mapping, :params
|
|
6
|
+
|
|
7
|
+
def self.call(account_mapping, params)
|
|
8
|
+
UpdateAccountMappingContext.new(account_mapping, params).call
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize(account_mapping, params)
|
|
12
|
+
@account_mapping = account_mapping
|
|
13
|
+
@params = params
|
|
14
|
+
@account_mapping.extend Services::AccountMappingUpdator
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def call
|
|
18
|
+
account_mapping.update(params)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Services
|
|
2
|
+
|
|
3
|
+
class UpdateConfiguredAccountContext
|
|
4
|
+
|
|
5
|
+
attr_accessor :configured_account, :ca_params, :cred_params
|
|
6
|
+
|
|
7
|
+
def self.call(configured_account, ca_params, cred_params)
|
|
8
|
+
UpdateConfiguredAccountContext.new(configured_account, ca_params, cred_params).call
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize(configured_account, ca_params, cred_params)
|
|
12
|
+
@configured_account = configured_account
|
|
13
|
+
@ca_params = ca_params
|
|
14
|
+
@cred_params = cred_params
|
|
15
|
+
@configured_account.extend Services::ConfiguredAccountUpdater
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def call
|
|
19
|
+
configured_account.update(ca_params).tap do | configured_account |
|
|
20
|
+
UpdateCredentialContext.call(configured_account, cred_params)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end
|