Sha256: a7c8e9591d2ad3caec515210b198e2e856b7660d593a45211644db1c27e27f5d

Contents?: true

Size: 1000 Bytes

Versions: 9

Compression:

Stored size: 1000 Bytes

Contents

require 'addressable/uri'
require 'json'

module FirebaseAdmin
  # Defines HTTP request methods
  module Request
    # Perform an HTTP GET request
    def get(path, options = {})
      request(:get, path, options)
    end

    # Perform an HTTP POST request
    def post(path, options = {})
      request(:post, path, options)
    end

    # Perform an HTTP PUT request
    def put(path, options = {})
      request(:put, path, options)
    end

    # Perform an HTTP DELETE request
    def delete(path, options = {})
      request(:delete, path, options)
    end

    private

    # Perform an HTTP request
    def request(method, path, options)
      response = connection.send(method) do |request|
        case method
        when :post, :put
          request.path = Addressable::URI.escape(path)
          request.body = options.to_json unless options.empty?

        else
          request.url(Addressable::URI.escape(path), options)
        end
      end
      response.body
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
firebase-admin-0.3.0 lib/firebase-admin/request.rb
firebase-admin-0.2.0 lib/firebase-admin/request.rb
firebase-admin-0.1.6 lib/firebase-admin/request.rb
firebase-admin-0.1.5 lib/firebase-admin/request.rb
firebase-admin-0.1.4 lib/firebase-admin/request.rb
firebase-admin-0.1.3 lib/firebase-admin/request.rb
firebase-admin-0.1.2 lib/firebase-admin/request.rb
firebase-admin-0.1.1 lib/firebase-admin/request.rb
firebase-admin-0.1.0 lib/firebase-admin/request.rb