Sha256: ebc695f363dc3923d335e386fe676770390496b84dea052ad2ba7053e263e360

Contents?: true

Size: 654 Bytes

Versions: 4

Compression:

Stored size: 654 Bytes

Contents

require 'json/ld'

module Fediverse
  class Request
    BASE_HEADERS = {
      'Content-Type' => 'application/json',
      'Accept'       => 'application/json',
    }.freeze

    def initialize(id)
      @id = id
    end

    def get
      Rails.logger.debug { "GET #{@id}" }
      @response = Faraday.get(@id, nil, BASE_HEADERS)
      response_to_json
    end

    class << self
      def get(id)
        new(id).get
      end
    end

    private

    def response_to_json
      begin
        body = JSON.parse @response.body
      rescue JSON::ParserError
        return
      end

      JSON::LD::API.compact body, body['@context']
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
federails-0.4.0 lib/fediverse/request.rb
federails-0.3.0 lib/fediverse/request.rb
federails-0.2.0 lib/fediverse/request.rb
federails-0.1.0 lib/fediverse/request.rb