class Geoserver::Publish::Coverage

Attributes

connection[R]

Public Class Methods

new(conn = nil) click to toggle source
# File lib/geoserver/publish/coverage.rb, line 7
def initialize(conn = nil)
  @connection = conn || Geoserver::Publish::Connection.new
end

Public Instance Methods

create(workspace_name:, coverage_store_name:, coverage_name:, title:, additional_payload: nil) click to toggle source
# File lib/geoserver/publish/coverage.rb, line 22
def create(workspace_name:, coverage_store_name:, coverage_name:, title:, additional_payload: nil)
  path = coverage_url(workspace_name: workspace_name, coverage_store_name: coverage_store_name, coverage_name: nil)
  payload = payload_new(coverage_name: coverage_name, title: title, payload: additional_payload)
  connection.post(path: path, payload: payload)
end
delete(workspace_name:, coverage_store_name:, coverage_name:) click to toggle source
# File lib/geoserver/publish/coverage.rb, line 11
def delete(workspace_name:, coverage_store_name:, coverage_name:)
  path = coverage_url(workspace_name: workspace_name, coverage_store_name: coverage_store_name, coverage_name: coverage_name)
  connection.delete(path: path)
end
find(workspace_name:, coverage_store_name:, coverage_name:) click to toggle source
# File lib/geoserver/publish/coverage.rb, line 16
def find(workspace_name:, coverage_store_name:, coverage_name:)
  path = coverage_url(workspace_name: workspace_name, coverage_store_name: coverage_store_name, coverage_name: coverage_name)
  out = connection.get(path: path)
  JSON.parse(out) if out
end
update(workspace_name:, coverage_store_name:, coverage_name:, title:, additional_payload: nil) click to toggle source
# File lib/geoserver/publish/coverage.rb, line 28
def update(workspace_name:, coverage_store_name:, coverage_name:, title:, additional_payload: nil)
  path = coverage_url(workspace_name: workspace_name, coverage_store_name: coverage_store_name, coverage_name: coverage_name)
  payload = payload_new(coverage_name: coverage_name, title: title, payload: additional_payload)
  connection.put(path: path, payload: payload, content_type: "application/json")
end

Private Instance Methods

coverage_url(workspace_name:, coverage_store_name:, coverage_name:) click to toggle source
# File lib/geoserver/publish/coverage.rb, line 36
def coverage_url(workspace_name:, coverage_store_name:, coverage_name:)
  last_path_component = coverage_name ? "/#{coverage_name}" : ""
  "workspaces/#{workspace_name}/coveragestores/#{coverage_store_name}/coverages#{last_path_component}"
end
payload_new(coverage_name:, title:, payload: nil) click to toggle source
# File lib/geoserver/publish/coverage.rb, line 41
def payload_new(coverage_name:, title:, payload: nil)
  {
    coverage: {
      enabled: true,
      name: coverage_name,
      title: title
    }.merge(payload.to_h)
  }.to_json
end