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

camatcode / basenji / 51b0bae9d6037c17ec2bfe36f697b4e09c663021

13 Jul 2025 03:28AM UTC coverage: 74.346% (+0.7%) from 73.621%
51b0bae9d6037c17ec2bfe36f697b4e09c663021

push

github

web-flow
Merge pull request #39 from camatcode/work/optimize-jobs

Optimization storage and jobs

157 of 198 new or added lines in 17 files covered. (79.29%)

739 of 994 relevant lines covered (74.35%)

602.98 hits per line

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

78.95
/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
    opts = Utils.to_opts(jsonapi_plug)
65✔
13
    # Default to prefer_optimized unless explicitly set to false
14
    opts =
65✔
15
      if Keyword.has_key?(opts, :prefer_optimized) do
NEW
16
        opts
×
17
      else
18
        Keyword.put(opts, :prefer_optimized, true)
65✔
19
      end
20

21
    comics = Comics.list_comics(opts)
65✔
22
    render(conn, "index.json", %{data: comics})
65✔
23
  end
24

25
  def create(%{private: %{jsonapi_plug: jsonapi_plug}} = conn, params) do
26
    # validate params!
27
    attrs = params["data"]["attributes"] |> Utils.atomize()
1✔
28

29
    Comics.from_resource(params["data"]["attributes"]["resource_location"], attrs, Utils.to_opts(jsonapi_plug))
30
    |> case do
1✔
31
      {:ok, comic} -> render(conn, "create.json", %{data: comic})
1✔
32
      error -> Utils.bad_request_handler(conn, error)
×
33
    end
34
  end
35

36
  def show(%{private: %{jsonapi_plug: %{} = jsonapi_plug}} = conn, params) do
37
    Comics.get_comic(params["id"], Utils.to_opts(jsonapi_plug))
38
    |> case do
2✔
39
      {:ok, comic} ->
40
        render(conn, "create.json", %{data: comic})
2✔
41

42
      _ ->
43
        Utils.bad_request_handler(conn, {:error, :not_found})
×
44
    end
45
  end
46

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

50
    Comics.update_comic(id, params["data"]["attributes"])
51
    |> case do
1✔
52
      {:ok, comic} -> render(conn, "update.json", %{data: comic})
1✔
53
      e -> Utils.bad_request_handler(conn, e)
×
54
    end
55
  end
56

57
  def delete(conn, params) do
58
    {:ok, deleted} = Comics.delete_comic(params["id"])
1✔
59
    render(conn, "show.json", %{data: deleted})
1✔
60
  end
61
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