# Unsplash [![Build Status](]( [![Hex pm](](

[Unsplash]( API wrapper in Elixir.

## Exmaple Usage

* `, query: "Austin", catgeroy: "2") |> Enum.take(1)`
* `Unsplash.categories |> Enum.take(1)`
* And more. All [API endpoints]( are supported. See [documentation]( for full list.

Each API call that is paginated returns a stream. You can resolve the stream by calling any Enum function, this way you don't have to think about pagination. For example to get one random photo: ` |> Enum.take(1)` or to get 100 random photos ` |> Enum.take(100)`.

## Configuration

See the `secrets.exs` file on what configuration variables need to be configured.

## Authorization

Get Auth code by directing user to the url generated by this command (replace the scope with what you would like):
`Unsplash.OAuth.authorize_url! scope: "public read_user write_user read_photos write_photos write_likes read_collections write_collections"`

After the user grants access, she will be redirected back to your redirect_uri whith a `code` query paramater, which you then set like this:
`Unsplash.OAuth.authorize!(code: auth_code_from_the_callback)`

Now every API call will use the access_code gerenated in the above step automatically.

## Installation

  1. Add unsplash to your list of dependencies in `mix.exs`:

        def deps do
          [{:unsplash, "~> 0.4.0"}]

  2. Ensure unsplash is started before your application:

        def application do
          [applications: [:unsplash]]