module Resources class AssessmentRequest < BaseResource include ThirdPartyPrompter include ServiceDefinitionPrompter include ConfiguredAccountPrompter include SltcProviderPrompter def list provider_id = sltc_provider_id(true) result = get("services/assessment_requests?provider_id=#{provider_id}#{status_prompt}") puts "\nSLTC Assessment Requests:" table = Terminal::Table.new headings: [ 'Provider ID', 'Request ID', 'From', 'To', 'Status', 'Created', 'Updated' ] do |t| result.each do | assessment_request | t << [ assessment_request['facility_code'], assessment_request['request_id'], assessment_request['pull_from'], assessment_request['pull_to'], assessment_request['status'], assessment_request['created_at'], assessment_request['updated_at'] ] end end prompter.say table.to_s puts end def create tp_id = third_party_id sd_id = service_definition_id ca_id = configured_account_id provider_id = sltc_provider_id uploaded_after = prompter.ask("\nStart date for the requested assessments (YYYY-MM-DD(THH:MM:SS)?): ") { |q| q.validate = lambda { |a| is_valid_date?(a) }; q.responses[:ask_on_error] = :question; q.responses[:not_valid] = "\nInvalid date" } uploaded_before = prompter.ask("\nEnd date for the requested assessments (YYYY-MM-DD(THH:MM:SS)?): ") { |q| q.validate = lambda { |a| is_valid_date?(a) }; q.responses[:ask_on_error] = :question; q.responses[:not_valid] = "\nInvalid date" } result = post("services/assessment_requests", { configured_account_id: ca_id, provider_id: provider_id, uploaded_after: uploaded_after, uploaded_before: uploaded_before }) list end private def status_prompt puts status = prompter.choose do | menu | menu.prompt = "Select the status to filter the results with: " menu.choice("Do not filter by status") { -1 } menu.choice("Available") { 0x00 } menu.choice("Downloaded") { 0x01 } menu.choice("Empty") { 0x02 } menu.choice("Error") { 0x03 } menu.choice("Not Downloaded") { 0x11 } end status < 0 ? "" : "&status=#{status}" end end end