module GdsApi::TestHelpers::SupportApi

def stub_problem_report_daily_totals_for(date, expected_results = nil)

def stub_problem_report_daily_totals_for(date, expected_results = nil)
  date_string = date.strftime("%Y-%m-%d")
  get_stub = stub_http_request(:get, "#{SUPPORT_API_ENDPOINT}/anonymous-feedback/problem-reports/#{date_string}/totals")
  response = { status: 200 }
  response[:body] = expected_results if expected_results
  get_stub.to_return(response)
end

def stub_support_api_problem_report_creation(request_details = nil)

def stub_support_api_problem_report_creation(request_details = nil)
  post_stub = stub_http_request(:post, "#{SUPPORT_API_ENDPOINT}/anonymous-feedback/problem-reports")
  post_stub.with(:body => { problem_report: request_details }) unless request_details.nil?
  post_stub.to_return(:status => 202)
end

def stub_support_api_service_feedback_creation(feedback_details = nil)

def stub_support_api_service_feedback_creation(feedback_details = nil)
  post_stub = stub_http_request(:post, "#{SUPPORT_API_ENDPOINT}/anonymous-feedback/service-feedback")
  post_stub.with(:body => { service_feedback: feedback_details }) unless feedback_details.nil?
  post_stub.to_return(:status => 201)
end

def stub_support_long_form_anonymous_contact_creation(request_details = nil)

def stub_support_long_form_anonymous_contact_creation(request_details = nil)
  post_stub = stub_http_request(:post, "#{SUPPORT_API_ENDPOINT}/anonymous-feedback/long-form-contacts")
  post_stub.with(:body => { long_form_contact: request_details }) unless request_details.nil?
  post_stub.to_return(:status => 202)
end

def support_api_isnt_available

def support_api_isnt_available
  stub_request(:post, /#{SUPPORT_API_ENDPOINT}\/.*/).to_return(:status => 503)
end