Sha256: a95aec940f97fe91afc35eb8fa6fe93d705eb444ab9acb57028e4e2d0f96d446
Contents?: true
Size: 1.31 KB
Versions: 2
Compression:
Stored size: 1.31 KB
Contents
# frozen_string_literal: true module Geoserver module Publish class Connection attr_reader :config def initialize(config = nil) @config = config || Geoserver::Publish.config["geoserver"] end def delete(path:) response = faraday_connection.delete do |req| req.url path req.params["recurse"] = "true" end return true if response.status == 200 raise Geoserver::Publish::Error, response.reason_phrase end def get(path:) response = faraday_connection.get do |req| req.url path req.headers["Accept"] = "application/json" end response.body if response.status == 200 end def post(path:, payload:) response = faraday_connection.post do |req| req.url path req.headers["Content-Type"] = "application/json" req.body = payload end return true if response.status == 201 || response.status == 401 raise Geoserver::Publish::Error, response.reason_phrase end private def faraday_connection Faraday.new(url: config["url"]) do |conn| conn.adapter Faraday.default_adapter conn.basic_auth(config["user"], config["password"]) if config["user"] end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
geoserver-publish-0.2.1 | lib/geoserver/publish/connection.rb |
geoserver-publish-0.2.0 | lib/geoserver/publish/connection.rb |