govtrack v0.6.0 Govtrack

Wrapper for the Govtrack.us API that provides programmatic access to information about the U.S. Congress

Summary

Functions

Get information about a specific bill

Example

Govtrack.bill(12700)

More info at: https://www.govtrack.us/developers/api#endpoint_bill

Get a list of all bills

Example

Govtrack.bills

More info at: https://www.govtrack.us/developers/api#endpoint_bill

Get information about a specific committee

Example

Govtrack.committee(2650)

More info at: https://www.govtrack.us/developers/api#endpoint_committee

Get information about a specific committee member

Example

Govtrack.committee_member(207975)

More info at: https://www.govtrack.us/developers/api#endpoint_committee_member

Get a list of all committee members

Example

Govtrack.committee_members

More info at: https://www.govtrack.us/developers/api#endpoint_committee_member

Get a list of all committees

Example

Govtrack.committees

More info at: https://www.govtrack.us/developers/api#endpoint_committee

Get information about a specific cosponsorship

Example

Govtrack.cosponsorship(3291427)

More info at: https://www.govtrack.us/developers/api#endpoint_cosponsorship

Get a list of all cosponsorships

Example

Govtrack.cosponsorships

More info at: https://www.govtrack.us/developers/api#endpoint_cosponsorship

Issues a DELETE request to the given url

Issues a DELETE request to the given url, raising an exception in case of failure

Issues a GET request to the given url

Issues a GET request to the given url, raising an exception in case of failure

Issues a HEAD request to the given url

Issues a HEAD request to the given url, raising an exception in case of failure

Issues an OPTIONS request to the given url

Issues a OPTIONS request to the given url, raising an exception in case of failure

Issues a PATCH request to the given url

Issues a PATCH request to the given url, raising an exception in case of failure

Get information about a specific person in U.S. Congress

Example

Govtrack.person(400629)

More info at: https://www.govtrack.us/developers/api#endpoint_person

Get a list of all persons in U.S. Congress

Example

Govtrack.persons

More info at: https://www.govtrack.us/developers/api#endpoint_person

Issues a POST request to the given url

Issues a POST request to the given url, raising an exception in case of failure

Issues a PUT request to the given url

Issues a PUT request to the given url, raising an exception in case of failure

Issues an HTTP request with the given method to the given url

Issues an HTTP request with the given method to the given url, raising an exception in case of failure

Get information about a specific role

Example

Govtrack.role(42929)

More info at: https://www.govtrack.us/developers/api#endpoint_role

Get a list of all roles

Example

Govtrack.roles

More info at: https://www.govtrack.us/developers/api#endpoint_role

Starts HTTPoison and its dependencies

Get information about a specific vote

Example

Govtrack.vote(13969)

More info at: https://www.govtrack.us/developers/api#endpoint_vote

Get information about how a specific voter voted on a roll call vote

Example

Govtrack.vote_voter(31425718)

More info at: https://www.govtrack.us/developers/api#endpoint_vote_voter

Get a list of all voters in all roll call votes

Example

Govtrack.vote_voter(31425718)

More info at: https://www.govtrack.us/developers/api#endpoint_vote_voter

Get a list of all votes

Example

Govtrack.votes

More info at: https://www.govtrack.us/developers/api#endpoint_vote

Types

body ::
  binary |
  {:form, [{atom, any}]} |
  {:file, binary}
headers ::
  [{binary, binary}] |
  %{optional(binary) => binary}

Functions

bill(id, query \\ [])

Get information about a specific bill

Example

Govtrack.bill(12700)

More info at: https://www.govtrack.us/developers/api#endpoint_bill

bills(query \\ [])

Get a list of all bills

Example

Govtrack.bills

More info at: https://www.govtrack.us/developers/api#endpoint_bill

committee(id, query \\ [])

Get information about a specific committee

Example

Govtrack.committee(2650)

More info at: https://www.govtrack.us/developers/api#endpoint_committee

committee_member(id, query \\ [])

Get information about a specific committee member

Example

Govtrack.committee_member(207975)

More info at: https://www.govtrack.us/developers/api#endpoint_committee_member

committee_members(query \\ [])

Get a list of all committee members

Example

Govtrack.committee_members

More info at: https://www.govtrack.us/developers/api#endpoint_committee_member

committees(query \\ [])

Get a list of all committees

Example

Govtrack.committees

More info at: https://www.govtrack.us/developers/api#endpoint_committee

cosponsorship(id, query \\ [])

Get information about a specific cosponsorship

Example

Govtrack.cosponsorship(3291427)

More info at: https://www.govtrack.us/developers/api#endpoint_cosponsorship

cosponsorships(query \\ [])

Get a list of all cosponsorships

Example

Govtrack.cosponsorships

More info at: https://www.govtrack.us/developers/api#endpoint_cosponsorship

delete(url, headers \\ [], options \\ [])

Specs

delete(binary, headers, Keyword.t) ::
  {:ok, HTTPoison.Response.t | HTTPoison.AsyncResponse.t} |
  {:error, HTTPoison.Error.t}

Issues a DELETE request to the given url.

Returns {:ok, response} if the request is successful, {:error, reason} otherwise.

See request/5 for more detailed information.

delete!(url, headers \\ [], options \\ [])

Specs

delete!(binary, headers, Keyword.t) ::
  HTTPoison.Response.t |
  HTTPoison.AsyncResponse.t

Issues a DELETE request to the given url, raising an exception in case of failure.

If the request does not fail, the response is returned.

See request!/5 for more detailed information.

get(url, headers \\ [], options \\ [])

Specs

get(binary, headers, Keyword.t) ::
  {:ok, HTTPoison.Response.t | HTTPoison.AsyncResponse.t} |
  {:error, HTTPoison.Error.t}

Issues a GET request to the given url.

Returns {:ok, response} if the request is successful, {:error, reason} otherwise.

See request/5 for more detailed information.

get!(url, headers \\ [], options \\ [])

Specs

get!(binary, headers, Keyword.t) ::
  HTTPoison.Response.t |
  HTTPoison.AsyncResponse.t

Issues a GET request to the given url, raising an exception in case of failure.

If the request does not fail, the response is returned.

See request!/5 for more detailed information.

head(url, headers \\ [], options \\ [])

Specs

head(binary, headers, Keyword.t) ::
  {:ok, HTTPoison.Response.t | HTTPoison.AsyncResponse.t} |
  {:error, HTTPoison.Error.t}

Issues a HEAD request to the given url.

Returns {:ok, response} if the request is successful, {:error, reason} otherwise.

See request/5 for more detailed information.

head!(url, headers \\ [], options \\ [])

Specs

head!(binary, headers, Keyword.t) ::
  HTTPoison.Response.t |
  HTTPoison.AsyncResponse.t

Issues a HEAD request to the given url, raising an exception in case of failure.

If the request does not fail, the response is returned.

See request!/5 for more detailed information.

options(url, headers \\ [], options \\ [])

Specs

options(binary, headers, Keyword.t) ::
  {:ok, HTTPoison.Response.t | HTTPoison.AsyncResponse.t} |
  {:error, HTTPoison.Error.t}

Issues an OPTIONS request to the given url.

Returns {:ok, response} if the request is successful, {:error, reason} otherwise.

See request/5 for more detailed information.

options!(url, headers \\ [], options \\ [])

Specs

options!(binary, headers, Keyword.t) ::
  HTTPoison.Response.t |
  HTTPoison.AsyncResponse.t

Issues a OPTIONS request to the given url, raising an exception in case of failure.

If the request does not fail, the response is returned.

See request!/5 for more detailed information.

patch(url, body, headers \\ [], options \\ [])

Specs

patch(binary, body, headers, Keyword.t) ::
  {:ok, HTTPoison.Response.t | HTTPoison.AsyncResponse.t} |
  {:error, HTTPoison.Error.t}

Issues a PATCH request to the given url.

Returns {:ok, response} if the request is successful, {:error, reason} otherwise.

See request/5 for more detailed information.

patch!(url, body, headers \\ [], options \\ [])

Specs

patch!(binary, body, headers, Keyword.t) ::
  HTTPoison.Response.t |
  HTTPoison.AsyncResponse.t

Issues a PATCH request to the given url, raising an exception in case of failure.

If the request does not fail, the response is returned.

See request!/5 for more detailed information.

person(id, query \\ [])

Get information about a specific person in U.S. Congress

Example

Govtrack.person(400629)

More info at: https://www.govtrack.us/developers/api#endpoint_person

persons(query \\ [])

Get a list of all persons in U.S. Congress

Example

Govtrack.persons

More info at: https://www.govtrack.us/developers/api#endpoint_person

post(url, body, headers \\ [], options \\ [])

Specs

post(binary, body, headers, Keyword.t) ::
  {:ok, HTTPoison.Response.t | HTTPoison.AsyncResponse.t} |
  {:error, HTTPoison.Error.t}

Issues a POST request to the given url.

Returns {:ok, response} if the request is successful, {:error, reason} otherwise.

See request/5 for more detailed information.

post!(url, body, headers \\ [], options \\ [])

Specs

post!(binary, body, headers, Keyword.t) ::
  HTTPoison.Response.t |
  HTTPoison.AsyncResponse.t

Issues a POST request to the given url, raising an exception in case of failure.

If the request does not fail, the response is returned.

See request!/5 for more detailed information.

process_response_body(body)
process_url(url)
put(url, body, headers \\ [], options \\ [])

Specs

put(binary, body, headers, Keyword.t) ::
  {:ok, HTTPoison.Response.t | HTTPoison.AsyncResponse.t} |
  {:error, HTTPoison.Error.t}

Issues a PUT request to the given url.

Returns {:ok, response} if the request is successful, {:error, reason} otherwise.

See request/5 for more detailed information.

put!(url, body, headers \\ [], options \\ [])

Specs

put!(binary, body, headers, Keyword.t) ::
  HTTPoison.Response.t |
  HTTPoison.AsyncResponse.t

Issues a PUT request to the given url, raising an exception in case of failure.

If the request does not fail, the response is returned.

See request!/5 for more detailed information.

request(method, url, body \\ "", headers \\ [], options \\ [])

Specs

request(atom, binary, body, headers, Keyword.t) ::
  {:ok, HTTPoison.Response.t | HTTPoison.AsyncResponse.t} |
  {:error, HTTPoison.Error.t}

Issues an HTTP request with the given method to the given url.

This function is usually used indirectly by get/3, post/4, put/4, etc

Args:

  • method - HTTP method as an atom (:get, :head, :post, :put, :delete, etc.)
  • url - target url as a binary string or char list
  • body - request body. See more below
  • headers - HTTP headers as an orddict (e.g., [{"Accept", "application/json"}])
  • options - Keyword list of options

Body:

  • binary, char list or an iolist
  • {:form, [{K, V}, ...]} - send a form url encoded
  • {:file, "/path/to/file"} - send a file

Options:

  • :timeout - timeout to establish a connection, in milliseconds. Default is 8000
  • :recv_timeout - timeout used when receiving a connection. Default is 5000
  • :stream_to - a PID to stream the response to
  • :proxy - a proxy to be used for the request; it can be a regular url or a {Host, Proxy} tuple
  • :proxy_auth - proxy authentication {User, Password} tuple
  • :ssl - SSL options supported by the ssl erlang module
  • :follow_redirect - a boolean that causes redirects to be followed
  • :max_redirect - an integer denoting the maximum number of redirects to follow
  • :params - an enumerable consisting of two-item tuples that will be appended to the url as query string parameters

Timeouts can be an integer or :infinity

This function returns {:ok, response} or {:ok, async_response} if the request is successful, {:error, reason} otherwise.

Examples

request(:post, "https://my.website.com", "{\"foo\": 3}", [{"Accept", "application/json"}])
request!(method, url, body \\ "", headers \\ [], options \\ [])

Specs

request!(atom, binary, body, headers, Keyword.t) :: HTTPoison.Response.t

Issues an HTTP request with the given method to the given url, raising an exception in case of failure.

request!/5 works exactly like request/5 but it returns just the response in case of a successful request, raising an exception in case the request fails.

role(id, query \\ [])

Get information about a specific role

Example

Govtrack.role(42929)

More info at: https://www.govtrack.us/developers/api#endpoint_role

roles(query \\ [])

Get a list of all roles

Example

Govtrack.roles

More info at: https://www.govtrack.us/developers/api#endpoint_role

start()

Starts HTTPoison and its dependencies.

vote(id, query \\ [])

Get information about a specific vote

Example

Govtrack.vote(13969)

More info at: https://www.govtrack.us/developers/api#endpoint_vote

vote_voter(id, query \\ [])

Get information about how a specific voter voted on a roll call vote

Example

Govtrack.vote_voter(31425718)

More info at: https://www.govtrack.us/developers/api#endpoint_vote_voter

vote_voters(query \\ [])

Get a list of all voters in all roll call votes

Example

Govtrack.vote_voter(31425718)

More info at: https://www.govtrack.us/developers/api#endpoint_vote_voter

votes(query \\ [])

Get a list of all votes

Example

Govtrack.votes

More info at: https://www.govtrack.us/developers/api#endpoint_vote