module Fizzy module Api class CalculateOutcome < ActiveInteraction::Base 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 process_response(response) case response.code when 200 response when 404 fail Errors::GraphNotFoundError, 'Participant not found, or graph not supported.' else fail Errors::UnexpectedStatusError, "Status code #{response.code} not expected." end end end end end