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

camatcode / basenji / 26fc1c833b682075d2323b7787796d94d89d8af4

12 Jul 2025 02:33PM UTC coverage: 74.51% (+0.9%) from 73.621%
26fc1c833b682075d2323b7787796d94d89d8af4

Pull #39

github

camatcode
feat: comic records have optimization logic
Pull Request #39: WIP: chore: stashing

31 of 34 new or added lines in 2 files covered. (91.18%)

23 existing lines in 6 files now uncovered.

646 of 867 relevant lines covered (74.51%)

544.59 hits per line

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

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

5
  alias Basenji.Comics
6
  alias BasenjiWeb.API.Utils
7
  alias BasenjiWeb.Plugs.JSONAPIPlug, as: BasenjiJSONAPIPlug
8

9
  plug BasenjiJSONAPIPlug, api: BasenjiWeb.API, path: "comics", resource: Basenji.Comic
10

11
  def index(%{private: %{jsonapi_plug: jsonapi_plug}} = conn, _params) do
12
    comics = Comics.list_comics(Utils.to_opts(jsonapi_plug))
65✔
13
    render(conn, "index.json", %{data: comics})
65✔
14
  end
15

16
  def create(%{private: %{jsonapi_plug: jsonapi_plug}} = conn, params) do
17
    # validate params!
18
    attrs = params["data"]["attributes"] |> Utils.atomize()
1✔
19

20
    Comics.from_resource(params["data"]["attributes"]["resource_location"], attrs, Utils.to_opts(jsonapi_plug))
21
    |> case do
1✔
22
      {:ok, comic} -> render(conn, "create.json", %{data: comic})
1✔
UNCOV
23
      error -> Utils.bad_request_handler(conn, error)
×
24
    end
25
  end
26

27
  def show(%{private: %{jsonapi_plug: %{} = jsonapi_plug}} = conn, params) do
28
    Comics.get_comic(params["id"], Utils.to_opts(jsonapi_plug))
29
    |> case do
2✔
30
      {:ok, comic} ->
31
        render(conn, "create.json", %{data: comic})
2✔
32

33
      _ ->
UNCOV
34
        Utils.bad_request_handler(conn, {:error, :not_found})
×
35
    end
36
  end
37

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

41
    Comics.update_comic(id, params["data"]["attributes"])
42
    |> case do
1✔
43
      {:ok, comic} -> render(conn, "update.json", %{data: comic})
1✔
UNCOV
44
      e -> Utils.bad_request_handler(conn, e)
×
45
    end
46
  end
47

48
  def delete(conn, params) do
49
    {:ok, deleted} = Comics.delete_comic(params["id"])
1✔
50
    render(conn, "show.json", %{data: deleted})
1✔
51
  end
52
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