Sha256: 229724a9ed6b2cfffccf5224f68ff322682d756996c3da6a77e188119e7f2f49
Contents?: true
Size: 1.86 KB
Versions: 2
Compression:
Stored size: 1.86 KB
Contents
# frozen_string_literal: true module Geoserver module Publish class DataStore attr_reader :connection def initialize(conn = nil) @connection = conn || Geoserver::Publish::Connection.new end def delete(workspace_name:, data_store_name:) path = data_store_url(workspace_name: workspace_name, data_store_name: data_store_name) connection.delete(path: path) end def find(workspace_name:, data_store_name:) path = data_store_url(workspace_name: workspace_name, data_store_name: data_store_name) out = connection.get(path: path) JSON.parse(out) if out end def create(workspace_name:, data_store_name:, url:) path = data_store_url(workspace_name: workspace_name, data_store_name: nil) payload = payload_new(data_store_name: data_store_name, url: url) connection.post(path: path, payload: payload) end private def data_store_url(workspace_name:, data_store_name:) last_path_component = data_store_name ? "/#{data_store_name}" : "" "workspaces/#{workspace_name}/datastores#{last_path_component}" end # rubocop:disable Metrics/MethodLength def payload_new(data_store_name:, url:) { dataStore: { name: data_store_name, connectionParameters: { entry: [ { "@key": "create spatial index", "$": "true" }, { "@key": "url", "$": url }, { "@key": "cache and reuse memory maps", "$": "false" } ] } } }.to_json end # rubocop:enable Metrics/MethodLength end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
geoserver-publish-0.2.1 | lib/geoserver/publish/data_store.rb |
geoserver-publish-0.2.0 | lib/geoserver/publish/data_store.rb |