[![Build Status](https://travis-ci.org/trenpixster/asanaficator.png)](https://travis-ci.org/trenpixster/asanaficator)
# Asanaficator
Simple Elixir wrapper for the [Asana API](https://asana.com/developers/api-reference).
Based on [Tentacat](https://github.com/edgurgel/tentacat).
Documentation can be found [here](http://hexdocs.pm/asanaficator/).
## Features
* Users
* Tasks
* Projects
## Quickstart
Fetching dependencies and running on elixir console:
```console
mix deps.get
iex -S mix
```
You will see something like this:
```
Erlang/OTP 17 [erts-6.0] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]
Interactive Elixir (0.13.3) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>
```
Now you can run the examples!
## Examples
Every call to Asana need a client.
Getting info from a user using a client
```iex
iex> client = Asanaficator.Client.new(%{access_token: "1234567890"})
Asanaficator.Client{auth: %{access_token: "1234567890"}, endpoint: "https://app.asana.com/api/1.0/"}
iex> Asanaficator.Users.me client
%{"data" => %{"email" => "john.doe@example.com", "id" => 123,
"name" => "John Doe",
"photo" => %{"image_128x128" => "https://s3.amazonaws.com/profile_photos/123.abc_128x128.png",
"image_21x21" => "https://s3.amazonaws.com/profile_photos/123.abc_21x21.png",
"image_27x27" => "https://s3.amazonaws.com/profile_photos/123.abc_27x27.png",
"image_36x36" => "https://s3.amazonaws.com/profile_photos/123.abc_36x36.png",
"image_60x60" => "https://s3.amazonaws.com/profile_photos/123.abc_60x60.png"},
"workspaces" => [%{"id" => 456, "name" => "example.com"},
%{"id" => 789, "name" => "Personal Projects"}]}}
```
Getting a task
```iex
iex> Asanaficator.Tasks.find(12345, client)
%{"data" => %{"assignee" => nil, "assignee_status" => "upcoming",
"completed" => false, "completed_at" => nil,
"created_at" => "2015-06-30T00:40:30.971Z", "due_at" => nil,
"due_on" => nil,
"followers" => [%{"id" => 123, "name" => "John Doe"}], "hearted" => false,
"hearts" => [], "id" => 456,
"memberships" => [%{"project" => %{"id" => 456,
"name" => "That Awesome Project"}, "section" => nil}],
"modified_at" => "2015-06-30T11:11:37.472Z",
"name" => "This is an example task",
"notes" => "Some really great descriptive notes",
"num_hearts" => 0, "parent" => nil,
"projects" => [%{"id" => 456,
"name" => "That Awesome Project"}], "tags" => [],
"workspace" => %{"id" => 456, "name" => "example.com"}}}
```
## Contributing
Start by forking this repo
Then run this command to fetch dependencies and run tests:
```console
MIX_ENV=test mix do deps.get, test
```
Pull requests are greatly appreciated