Sha256: fbadf43ca8e037e73850798b6199bf23516b6d9161ec1d609c09f3856548cd6c

Contents?: true

Size: 992 Bytes

Versions: 2

Compression:

Stored size: 992 Bytes

Contents

module Dyndnsd
  module Responder
    class RestStyle
      def response_for_error(state)
        # general http errors
        return [405, {"Content-Type" => "text/plain"}, ["Method Not Allowed"]] if state == :method_forbidden
        return [404, {"Content-Type" => "text/plain"}, ["Not Found"]] if state == :not_found
        # specific errors
        return [422, {"Content-Type" => "text/plain"}, ["Hostname missing"]] if state == :hostname_missing
        return [403, {"Content-Type" => "text/plain"}, ["Forbidden"]] if state == :host_forbidden
        return [422, {"Content-Type" => "text/plain"}, ["Hostname malformed"]] if state == :hostname_malformed
      end

      def response_for_changes(states, ip)
        body = states.map { |state| state == :good ? "Changed to #{ip.is_a?(Array) ? ip.join(' ') : ip}" : "No change needed for #{ip.is_a?(Array) ? ip.join(' ') : ip}" }.join("\n")
        return [200, {"Content-Type" => "text/plain"}, [body]]
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dyndnsd-1.6.1 lib/dyndnsd/responder/rest_style.rb
dyndnsd-1.6.0 lib/dyndnsd/responder/rest_style.rb