class Geoserver::Publish::DataStore
Attributes
connection[R]
Public Class Methods
new(conn = nil)
click to toggle source
# File lib/geoserver/publish/data_store.rb, line 7 def initialize(conn = nil) @connection = conn || Geoserver::Publish::Connection.new end
Public Instance Methods
create(workspace_name:, data_store_name:, url:)
click to toggle source
# File lib/geoserver/publish/data_store.rb, line 22 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
delete(workspace_name:, data_store_name:)
click to toggle source
# File lib/geoserver/publish/data_store.rb, line 11 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
find(workspace_name:, data_store_name:)
click to toggle source
# File lib/geoserver/publish/data_store.rb, line 16 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
upload(workspace_name:, data_store_name:, file:)
click to toggle source
# File lib/geoserver/publish/data_store.rb, line 28 def upload(workspace_name:, data_store_name:, file:) content_type = 'application/zip' path = upload_url(workspace: workspace_name, data_store: data_store_name) connection.put(path: path, payload: file, content_type: content_type) end
Private Instance Methods
data_store_url(workspace_name:, data_store_name:)
click to toggle source
# File lib/geoserver/publish/data_store.rb, line 36 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
payload_new(data_store_name:, url:)
click to toggle source
rubocop:disable Metrics/MethodLength
# File lib/geoserver/publish/data_store.rb, line 46 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
upload_url(workspace:, data_store:)
click to toggle source
# File lib/geoserver/publish/data_store.rb, line 41 def upload_url(workspace:, data_store:) "workspaces/#{workspace}/datastores/#{data_store}/file.shp" end