# frozen_string_literal: true module Fizzy module Api module Endpoints class CalculateOutcome < Endpoint string :dossier_id string :protocol_subscription_id def execute response = Api.basic_auth_session.post("/dossier/#{dossier_id}"\ "/protocol_subscriptions/#{protocol_subscription_id}"\ '/calculate') process_response(response) end private def invalid_response(response) case response.code when 202 raise(Errors::OutcomeNotAvailableError, select_measurement_text(response, 'The results are currently being calculated.')) when 404 raise Errors::GraphNotFoundError, select_measurement_text(response, 'Participant not found, or graph not supported.') else raise Errors::UnexpectedStatusError, "Status code #{response.code} not expected." end end end end end end