Sha256: 73eaa3543fddd24cb7eff1640e80f339a731c106ed1a43a2df7ec2eb8be680d0

Contents?: true

Size: 910 Bytes

Versions: 2

Compression:

Stored size: 910 Bytes

Contents

module CollectionSpace

  class Client
    include DeepFind
    include Helpers
    attr_reader :config

    def initialize(config = Configuration.new)
      raise "Invalid configuration object" unless config.kind_of? CollectionSpace::Configuration
      @config = config
    end

    def get(path, options = {})
      request 'GET', path, options
    end

    def post(path, payload)
      raise PayloadError.new if Nokogiri::XML(payload).errors.any?
      request 'POST', path, { body: payload }
    end

    def put(path, payload)
      raise PayloadError.new if Nokogiri::XML(payload).errors.any?
      request 'PUT', path, { body: payload }
    end

    def delete(path)
      request 'DELETE', path
    end

    private

    def request(method, path, options = {})
      sleep config.throttle
      result = Request.new(config, method, path, options).execute
      Response.new result
    end

  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
collectionspace-client-0.1.1 lib/collectionspace/client/client.rb
collectionspace-client-0.1.0 lib/collectionspace/client/client.rb