class Ecoportal::API::V2::Pages::Stages

This API Integration level has been added due to relative permissions

- a **user** with api access may have access to a specific `stage` but not to the full `page`

@attr_reader client [Common::Client] a `Common::Client` object that holds the configuration of the api connection.

Attributes

client[R]

Public Class Methods

new(client) click to toggle source

@param client [Common::Client] a `Common::Client` object that holds the configuration of the api connection. @return [Schemas] an instance object ready to make schema api requests.

# File lib/ecoportal/api/v2/pages/stages.rb, line 19
def initialize(client)
  @client = client
end

Public Instance Methods

get(id:, stage_id:) click to toggle source

Gets a stage via api. @note if the request has `success?` the returned `object.result` gives an object with that `Stage`. @param id [String, Hash, Stage] the `id` of the target page. @param stage_id [String] the `id` of the target stage. @return [Ecoportal::API::V2::Stage, Ecoportal::API::V2::Pages::PageStage] the target stage.

# File lib/ecoportal/api/v2/pages/stages.rb, line 28
def get(id:, stage_id:)
  id       = get_id(id)
  response = client.get("/pages/#{CGI.escape(id)}/stages/#{CGI.escape(stage_id)}/")
  wrapped  = Common::Content::WrappedResponse.new(response, page_stage_class)

  return wrapped.result if wrapped.success?
  raise "Could not get stage {#{id}} of page #{stage_id} - Error #{response.status}: #{response.body}"
end
update(doc, id: nil, stage_id:) click to toggle source

Requests to update an existing stage via api. @param doc [Hash, Stage] data that at least contains an `id` (internal or external) of the target stage. @param id [String, nil] the `id` of the target page. @param stage_id [String] the `id` of the target stage. @return [Response] an object with the api response.

# File lib/ecoportal/api/v2/pages/stages.rb, line 42
def update(doc, id: nil, stage_id:)
  body = get_body(doc)
  id   = id || get_id(doc)
  path = "/pages/#{CGI.escape(id)}/stages/#{CGI.escape(stage_id)}/"
  client.patch(path, data: body)
end