Fetch user's favourites
parent
8016eaf6eb
commit
9b8d7b4778
54
README.md
54
README.md
|
@ -134,6 +134,59 @@ iex(9)> Hunter.statuses(conn, 8039, [limit: 1])
|
|||
url: "https://social.lou.lt/@milmazz/59144", visibility: "public"}]
|
||||
```
|
||||
|
||||
### Fetching a user's favourites
|
||||
|
||||
```
|
||||
iex(10)> Hunter.favourites(conn)
|
||||
[]
|
||||
```
|
||||
|
||||
### Favouriting/unfavouriting a status
|
||||
|
||||
```elixir
|
||||
iex(11)> Hunter.favourite(conn, 442)
|
||||
%Hunter.Status{account: %{"acct" => "FriendlyPootis",
|
||||
"avatar" => "https://social.lou.lt/system/accounts/avatars/000/000/034/original/565da0399c2c26cf.jpg?1491228302",
|
||||
"created_at" => "2017-04-03T13:50:06.485Z",
|
||||
"display_name" => "FriendlyPootis 🚉", "followers_count" => 61,
|
||||
"following_count" => 52,
|
||||
"header" => "https://social.lou.lt/system/accounts/headers/000/000/034/original/b009ddb5a8ce41c1.jpg?1491228302",
|
||||
"id" => 34, "locked" => false,
|
||||
"note" => "fermé comme un carré, Vladimir Pootin sur YT (<a href=\"https://www.youtube.com/VladimirPootin\" rel=\"nofollow noopener\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"\">youtube.com/VladimirPootin</span><span class=\"invisible\"></span></a>)",
|
||||
"statuses_count" => 252, "url" => "https://social.lou.lt/@FriendlyPootis",
|
||||
"username" => "FriendlyPootis"},
|
||||
application: %{"name" => "Web", "website" => nil},
|
||||
content: "<p>les gens pensez à migrer d'instance pour en aller sur une moins chargée tant que vous pouvez, plus vous attendrez plus vous aurez la flemme</p>",
|
||||
created_at: "2017-04-03T16:22:04.286Z", favourited: true, favourites_count: 5,
|
||||
id: 442, in_reply_to_account_id: nil, in_reply_to_id: nil,
|
||||
media_attachments: [], mentions: [], reblog: nil, reblogged: false,
|
||||
reblogs_count: 4, sensitive: false, spoiler_text: "", tags: [],
|
||||
uri: "tag:social.lou.lt,2017-04-03:objectId=442:objectType=Status",
|
||||
url: "https://social.lou.lt/@FriendlyPootis/442", visibility: "public"}
|
||||
```
|
||||
|
||||
```elixir
|
||||
iex(12)> Hunter.unfavourite(conn, 442)
|
||||
%Hunter.Status{account: %{"acct" => "FriendlyPootis",
|
||||
"avatar" => "https://social.lou.lt/system/accounts/avatars/000/000/034/original/565da0399c2c26cf.jpg?1491228302",
|
||||
"created_at" => "2017-04-03T13:50:06.485Z",
|
||||
"display_name" => "FriendlyPootis 🚉", "followers_count" => 61,
|
||||
"following_count" => 52,
|
||||
"header" => "https://social.lou.lt/system/accounts/headers/000/000/034/original/b009ddb5a8ce41c1.jpg?1491228302",
|
||||
"id" => 34, "locked" => false,
|
||||
"note" => "fermé comme un carré, Vladimir Pootin sur YT (<a href=\"https://www.youtube.com/VladimirPootin\" rel=\"nofollow noopener\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"\">youtube.com/VladimirPootin</span><span class=\"invisible\"></span></a>)",
|
||||
"statuses_count" => 252, "url" => "https://social.lou.lt/@FriendlyPootis",
|
||||
"username" => "FriendlyPootis"},
|
||||
application: %{"name" => "Web", "website" => nil},
|
||||
content: "<p>les gens pensez à migrer d'instance pour en aller sur une moins chargée tant que vous pouvez, plus vous attendrez plus vous aurez la flemme</p>",
|
||||
created_at: "2017-04-03T16:22:04.286Z", favourited: true, favourites_count: 5,
|
||||
id: 442, in_reply_to_account_id: nil, in_reply_to_id: nil,
|
||||
media_attachments: [], mentions: [], reblog: nil, reblogged: false,
|
||||
reblogs_count: 4, sensitive: false, spoiler_text: "", tags: [],
|
||||
uri: "tag:social.lou.lt,2017-04-03:objectId=442:objectType=Status",
|
||||
url: "https://social.lou.lt/@FriendlyPootis/442", visibility: "public"}
|
||||
```
|
||||
|
||||
## TODO
|
||||
|
||||
* OAuth2 authentication
|
||||
|
@ -143,7 +196,6 @@ iex(9)> Hunter.statuses(conn, 8039, [limit: 1])
|
|||
* Getting an account's relationship
|
||||
* Register an application
|
||||
* Fetching a user's blocks
|
||||
* Fetching a user's favourites
|
||||
* Fetching a list of follow requests
|
||||
* Authorizing or rejecting follow requests
|
||||
* Support arrays as parameter types
|
||||
|
|
|
@ -295,6 +295,17 @@ defmodule Hunter do
|
|||
@spec unfavourite(Hunter.Client.t, non_neg_integer) :: Hunter.Status.t
|
||||
def unfavourite(conn, id), do: Hunter.Status.unfavourite(conn, id)
|
||||
|
||||
@doc """
|
||||
Fetch a user's favourites
|
||||
|
||||
## Parameters
|
||||
|
||||
* `conn` - connection credentials
|
||||
|
||||
"""
|
||||
@spec favourites(Hunter.Client.t) :: [Hunter.Status.t]
|
||||
def favourites(conn), do: Hunter.Status.favourites(conn)
|
||||
|
||||
@doc """
|
||||
Get a list of statuses by a user
|
||||
|
||||
|
|
|
@ -261,6 +261,16 @@ defmodule Hunter.Api do
|
|||
"""
|
||||
@callback unfavourite(conn :: Hunter.Client.t, id :: non_neg_integer) :: Hunter.Status.t
|
||||
|
||||
@doc """
|
||||
Fetch a user's favourites
|
||||
|
||||
## Parameters
|
||||
|
||||
* `conn` - connection credentials
|
||||
|
||||
"""
|
||||
@callback favourites(conn :: Hunter.Client.t) :: [Hunter.Status.t]
|
||||
|
||||
@doc """
|
||||
Get a list of statuses by a user
|
||||
|
||||
|
|
|
@ -158,6 +158,11 @@ defmodule Hunter.Api.HTTPClient do
|
|||
Poison.decode!(body, as: %Hunter.Status{})
|
||||
end
|
||||
|
||||
def favourites(%Hunter.Client{base_url: base_url} = conn) do
|
||||
{:ok, %HTTPoison.Response{body: body, status_code: 200}} = HTTPoison.get(base_url <> "/api/v1/favourites", get_headers(conn))
|
||||
Poison.decode!(body, as: [%Hunter.Status{}])
|
||||
end
|
||||
|
||||
def statuses(%Hunter.Client{base_url: base_url} = conn, account_id, options) do
|
||||
{:ok, %HTTPoison.Response{body: body, status_code: 200}} = HTTPoison.get(base_url <> "/api/v1/accounts/#{account_id}/statuses", get_headers(conn), options)
|
||||
Poison.decode!(body, as: [%Hunter.Status{}])
|
||||
|
|
|
@ -171,6 +171,19 @@ defmodule Hunter.Status do
|
|||
@hunter_api.unfavourite(conn, id)
|
||||
end
|
||||
|
||||
@doc """
|
||||
Fetch a user's favourites
|
||||
|
||||
## Parameters
|
||||
|
||||
* `conn` - connection credentials
|
||||
|
||||
"""
|
||||
@spec favourites(Hunter.Client.t) :: [Hunter.Status.t]
|
||||
def favourites(conn) do
|
||||
@hunter_api.favourites(conn)
|
||||
end
|
||||
|
||||
@doc """
|
||||
Get a list of statuses by a user
|
||||
|
||||
|
|
|
@ -86,6 +86,10 @@ defmodule Hunter.Api.InMemory do
|
|||
%Hunter.Status{}
|
||||
end
|
||||
|
||||
def favourites(_) do
|
||||
[%Hunter.Status{}]
|
||||
end
|
||||
|
||||
def statuses(_, _, _) do
|
||||
[%Hunter.Status{}]
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue