elixir-gmail
============
[![Build Status](https://secure.travis-ci.org/craigp/elixir-gmail.png?branch=master "Build Status")](http://travis-ci.org/craigp/elixir-gmail)
[![Coverage Status](https://coveralls.io/repos/craigp/elixir-gmail/badge.svg?branch=master&service=github)](https://coveralls.io/github/craigp/elixir-gmail?branch=master)
[![hex.pm version](https://img.shields.io/hexpm/v/gmail.svg)](https://hex.pm/packages/gmail)
[![hex.pm downloads](https://img.shields.io/hexpm/dt/gmail.svg)](https://hex.pm/packages/gmail)
[![Inline docs](http://inch-ci.org/github/craigp/elixir-gmail.svg?branch=master&style=flat)](http://inch-ci.org/github/craigp/elixir-gmail)
A simple Gmail REST API client for Elixir.
You can find the hex package [here](https://hex.pm/packages/gmail), and the docs [here](http://hexdocs.pm/gmail).
You can find documentation for Gmail's API at https://developers.google.com/gmail/api/
## Usage
First, add the client to your `mix.exs` dependencies:
```elixir
def deps do
[{:gmail, "~> 0.1"}]
end
```
Then run `$ mix do deps.get, compile` to download and compile your dependencies.
Finally, add the `:gmail` application as your list of applications in `mix.exs`:
```elixir
def application do
[applications: [:logger, :gmail]]
end
```
## Notes
#### API Support
Client support is planned for:
* [x] Threads
* [x] Messages
* [x] Labels
* [ ] Drafts
* [x] `list`
* [x] `get`
* [x] `delete`
* [ ] `update`
* [ ] `create`
* [x] `send`
* [ ] `send` (with upload)
* [ ] History
* [ ] Attachments
#### Auth
As of now the library doesn't do the initial auth generation for you; you'll
need to create an app on the [Google Developer
Console](https://console.developers.google.com/) to get a client ID and secret
and authorize a user to get an authorization code, which you can trade for an
access token.
The library will however, when you supply a refresh token, use that to refresh
an expired access token for you. Take a look in the `dev.exs.sample` config
file to see what your config should look like.
### TODO
* [x] Stop mocking HTTP requests and use [Bypass](https://github.com/PSPDFKit-labs/bypass) instead
* [x] Add format option when fetching threads
* [ ] .. and messages
* [ ] .. and drafts
* [ ] Batched requests