class Geoserver::Publish::CoverageStore

Attributes

connection[R]

Public Class Methods

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

Public Instance Methods

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

Private Instance Methods

coverage_store_url(workspace_name:, coverage_store_name:) click to toggle source
# File lib/geoserver/publish/coverage_store.rb, line 36
def coverage_store_url(workspace_name:, coverage_store_name:)
  last_path_component = coverage_store_name ? "/#{coverage_store_name}" : ""
  "workspaces/#{workspace_name}/coveragestores#{last_path_component}"
end
payload_new(workspace_name:, coverage_store_name:, type:, url:, payload:) click to toggle source
# File lib/geoserver/publish/coverage_store.rb, line 41
def payload_new(workspace_name:, coverage_store_name:, type:, url:, payload:)
  {
    coverageStore: {
      name: coverage_store_name,
      url: url,
      enabled: true,
      workspace: {
        name: workspace_name
      },
      type: type,
      _default: false
    }.merge(payload.to_h)
  }.to_json
end