File: key.ex

package info (click to toggle)
erlang-hex 2.0.6-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,204 kB
  • sloc: erlang: 2,950; sh: 203; makefile: 10
file content (55 lines) | stat: -rw-r--r-- 1,266 bytes parent folder | download
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
54
55
defmodule Hex.API.Key do
  @moduledoc false

  alias Hex.API

  def new(name, permissions, auth) do
    Hex.API.check_write_api()
    API.erlang_post_request(nil, "keys", %{name: name, permissions: permissions}, auth)
  end

  def get(auth) do
    API.request(:get, nil, "keys", auth)
  end

  def delete(name, auth) do
    Hex.API.check_write_api()
    API.request(:delete, nil, "keys/#{URI.encode(name)}", auth)
  end

  def delete_all(auth) do
    Hex.API.check_write_api()
    API.request(:delete, nil, "keys", auth)
  end

  defmodule Organization do
    @moduledoc false

    def new(organization, name, permissions, auth) do
      Hex.API.check_write_api()

      API.erlang_post_request(
        nil,
        "orgs/#{organization}/keys",
        %{name: name, permissions: permissions},
        auth
      )
    end

    def get(organization, auth) do
      API.request(:get, nil, "orgs/#{organization}/keys", auth)
    end

    def delete(organization, name, auth) do
      Hex.API.check_write_api()

      API.request(:delete, nil, "orgs/#{organization}/keys/#{URI.encode(name)}", auth)
    end

    def delete_all(organization, auth) do
      Hex.API.check_write_api()

      API.request(:delete, nil, "orgs/#{organization}/keys", auth)
    end
  end
end