README.md

[![Build Status](https://travis-ci.org/roperzh/medium-sdk-elixir.svg?branch=master)](https://travis-ci.org/roperzh/medium-sdk-elixir)
[![Coverage Status](https://coveralls.io/repos/github/roperzh/medium-sdk-elixir/badge.svg?branch=master)](https://coveralls.io/github/roperzh/medium-sdk-elixir?branch=master)

# Medium SDK for Elixir

An Elixir SDK for the Medium.com [API](https://github.com/Medium/medium-api-docs).

## Installation

If [available in Hex](https://hex.pm/docs/publish), the package can be installed as:

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

    ```elixir
    def deps do
      [{:medium, "~> 0.1.0"}]
    end
    ```

  2. Ensure `medium` is started before your application:

    ```elixir
    def application do
      [applications: [:medium]]
    end
    ```

## Usage

Since all Medium requests must be made with an integration token, you need
to create a new client associated with that token in order to perform requests:

```elixir
client = Medium.client("my-access-token")
```

With our client at hand, we can start making requests to the API! :boom:

```elixir
# We can perform all GET requests described on the API:
user = Medium.me(client)
user_publications = Medium.publications(client, user.id)

# And we can also publish:
post = %{
  title: "Liverpool FC",
  content_format: "html",
  content: "<h1>Liverpool FC</h1><p>You’ll never walk alone.</p>",
  canonical_url: "http://jamietalbot.com/posts/liverpool-fc",
  tags: ["football", "sport", "Liverpool"],
  publish_status: "public"
}

response = Medium.publish(client, user.id, post)
```

Don't forget to check the Medium [API](https://github.com/Medium/medium-api-docs)
or the [module](https://github.com/roperzh/medium-sdk-elixir/blob/master/lib/medium.ex)
to see all available methods.


## Roadmap

- [ ] Add endpoints related to authentication.
- [x] Add endpoints to consume and publish data.
- [x] Add tests
- [ ] Add doctests
- [x] Add documentation


## Licence

All the code contained in this repository, unless explicitly stated, is licensed under an MIT license.

A copy of the license can be found in the [LICENSE](LICENSE) file.