module Fizzy module Api module Endpoints class RenderGraphSynchronous < Endpoint string :dossier_id string :protocol_subscription_id string :path hash :options, default: {} def execute response = Api.basic_auth_session.get("/dossier/#{dossier_id}"\ "/protocol_subscriptions/#{protocol_subscription_id}" \ "/render_sync/#{path}", options) process_response(response) end private def invalid_response(response) case response.code when 202 raise Errors::OutcomeNotAvailableError, select_measurement_text(response, 'The results have not yet been calculated.') when 204 raise Errors::TooFewMeasurementsError, select_measurement_text(response, 'Not enough measurements available.') when 404 raise Errors::GraphNotFoundError, select_measurement_text(response, 'Graph not found.') when 405 raise Errors::MethodNotAllowedError, select_measurement_text(response, 'Current image path not eligible for'\ ' synchronous rendering') else raise Errors::UnexpectedStatusError, "Status code #{response.code} not expected." end end end end end end