• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

camatcode / basenji / f0d66ebcace7bdd9fff9a334785bd1c840457cd0

02 Jul 2025 04:22PM UTC coverage: 57.965% (+1.2%) from 56.813%
f0d66ebcace7bdd9fff9a334785bd1c840457cd0

Pull #16

github

camatcode
feat(comics): search and sort
Pull Request #16: feat(comics): search and sort

16 of 19 new or added lines in 1 file covered. (84.21%)

13 existing lines in 3 files now uncovered.

262 of 452 relevant lines covered (57.96%)

117.91 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

50.0
/lib/basenji_web/controllers/api/comics_controller.ex
1
defmodule BasenjiWeb.ComicsController do
2
  @moduledoc false
3
  use BasenjiWeb, :controller
4

5
  alias Basenji.Comics
6
  alias BasenjiWeb.API.Utils
7

8
  def create(conn, params) do
9
    params = Utils.atomize(params)
1✔
10

11
    Comics.from_resource(params.resource_location, params)
1✔
12
    |> case do
1✔
13
      {:ok, comic} -> render(conn, "show.json", %{comic: comic})
1✔
14
      error -> Utils.bad_request_handler(conn, error)
×
15
    end
16
  end
17

18
  def list(conn, _params) do
19
    comics = Comics.list_comics()
1✔
20

21
    render(conn, "list.json", %{comics: comics})
1✔
22
  end
23

24
  def get(conn, params) do
25
    id = params["id"]
1✔
26

27
    Comics.get_comic(id)
28
    |> case do
1✔
29
      {:ok, comic} ->
30
        render(conn, "show.json", %{comic: comic})
1✔
31

32
      error ->
UNCOV
33
        Utils.bad_request_handler(conn, error)
×
34
    end
35
  end
36

37
  def update(conn, params) do
38
    id = params["id"]
1✔
39

40
    Comics.update_comic(id, params)
41
    |> case do
1✔
42
      {:ok, comic} -> render(conn, "show.json", %{comic: comic})
1✔
UNCOV
43
      error -> Utils.bad_request_handler(conn, error)
×
44
    end
45
  end
46

47
  def delete(conn, params) do
48
    id = params["id"]
1✔
49

50
    Comics.delete_comic(id)
51
    |> case do
1✔
52
      {:ok, comic} -> render(conn, "show.json", %{comic: comic})
1✔
UNCOV
53
      error -> Utils.bad_request_handler(conn, error)
×
54
    end
55
  end
56

57
  def get_page(conn, params) do
UNCOV
58
    id = params["id"]
×
59
    page = params["page"]
×
60

UNCOV
61
    with {:ok, page_num} <- Utils.safe_to_int(page),
×
62
         {:ok, page_stream, mime} <- Comics.get_page(id, page_num) do
×
63
      binary = page_stream |> Enum.to_list()
×
64
      {:ok, binary, mime}
×
65
    end
UNCOV
66
    |> case do
×
67
      {:ok, binary, mime} ->
UNCOV
68
        length = Enum.count(binary)
×
69

70
        conn
71
        |> merge_resp_headers([{"access-control-allow-origin", "*"}])
72
        |> merge_resp_headers([{"content-type", mime}])
UNCOV
73
        |> merge_resp_headers([{"content-length", "#{length}"}])
×
74
        |> merge_resp_headers([{"content-disposition", "attachment"}])
UNCOV
75
        |> send_resp(200, binary)
×
76

77
      error ->
UNCOV
78
        Utils.bad_request_handler(conn, error)
×
79
    end
80
  end
81
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc