-
Notifications
You must be signed in to change notification settings - Fork 8
/
instance.ex
53 lines (41 loc) · 1.53 KB
/
instance.ex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
defmodule Hunter.Instance do
@moduledoc """
Instance entity
This module defines a `Hunter.Instance` struct and the main functions
for working with Instances.
## Fields
* `uri` - URI of the current instance
* `title` - The instance's title
* `description` - A description for the instance
* `email` - An email address which can be used to contact the instance administrator
* `version` - The Mastodon version used by instance.
* `urls` - `streaming_api`
"""
alias Hunter.Config
@type t :: %__MODULE__{
uri: String.t(),
title: String.t(),
description: String.t(),
email: String.t(),
version: String.t(),
urls: String.t()
}
@derive [Poison.Encoder]
defstruct [:uri, :title, :description, :email, :version, :urls]
@doc """
Retrieve instance information
## Parameters
* `conn` - connection credentials
## Examples
iex> conn = Hunter.new([base_url: "https://social.lou.lt", bearer_token: "123456"])
%Hunter.Client{base_url: "https://social.lou.lt", bearer_token: "123456"}
iex> Hunter.Instance.instance_info(conn)
%Hunter.Instance{description: "Mostly French instance - <a href=\\"/about/more#rules\\">Read full description</a> for rules.",
email: "maxime+mastodon@melinon.fr", title: "Loultstodon",
uri: "social.lou.lt"}
"""
@spec instance_info(Hunter.Client.t()) :: Hunter.Instance.t()
def instance_info(conn) do
Config.hunter_api().instance_info(conn)
end
end